17 lines
436 B
Zig
17 lines
436 B
Zig
const std = @import("std");
|
|
const RequestRouter = @This();
|
|
|
|
const RequestHandler = @import("RequestHandler.zig");
|
|
const Route = @import("Route.zig");
|
|
|
|
ptr: *anyopaque,
|
|
vtable: *const VTable,
|
|
|
|
pub const VTable = struct {
|
|
route: *const fn (self: *anyopaque, route: Route) anyerror!RequestHandler,
|
|
};
|
|
|
|
pub inline fn rawRoute(self: RequestRouter, route: Route) anyerror!RequestHandler {
|
|
return self.vtable.route(self.ptr, route);
|
|
}
|