const std = @import("std"); const ciutf8 = @import("util").ciutf8; const conn = @import("./conn.zig"); const response_stream = @import("./response_stream.zig"); const routing = @import("./routing.zig"); const server = @import("./server.zig"); pub const Connection = conn.Connection; pub const Method = std.http.Method; pub const ResponseStream = response_stream.ResponseStream; //pub const Router = routing.Router(Context); pub const Status = std.http.Status; pub const Headers = std.HashMap([]const u8, []const u8, struct { pub fn eql(_: @This(), a: []const u8, b: []const u8) bool { return ciutf8.eql(a, b); } pub fn hash(_: @This(), str: []const u8) u64 { return ciutf8.hash(str); } }, std.hash_map.default_max_load_percentage); pub const Request = struct { method: Method, path: []const u8, headers: Headers, body: ?[]const u8 = null, }; pub const Context = struct { arena_alloc: std.mem.Allocator, request: *const Request, connection: *const Connection, const Writer = ResponseStream(Connection.Writer); pub fn openResponse(self: *Context, headers: *const Headers, status: Status) !Writer { return try response_stream.open(self.arena_alloc, self.connection.stream.writer(), headers, status); } }; test { _ = conn; _ = response_stream; _ = routing; _ = server; }