fediglam/src/http/lib.zig

50 lines
1.3 KiB
Zig
Raw Normal View History

2022-06-09 06:37:09 +00:00
const std = @import("std");
const ciutf8 = @import("util").ciutf8;
2022-06-26 07:00:14 +00:00
const conn = @import("./conn.zig");
const response_stream = @import("./response_stream.zig");
2022-06-21 06:04:39 +00:00
const routing = @import("./routing.zig");
2022-06-23 07:25:50 +00:00
const server = @import("./server.zig");
2022-06-21 06:04:39 +00:00
2022-06-26 07:00:14 +00:00
pub const Connection = conn.Connection;
2022-06-09 06:37:09 +00:00
pub const Method = std.http.Method;
2022-06-21 06:04:39 +00:00
pub const ResponseStream = response_stream.ResponseStream;
//pub const Router = routing.Router(Context);
2022-06-26 07:00:14 +00:00
pub const Status = std.http.Status;
2022-06-09 06:37:09 +00:00
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);
2022-06-23 07:25:50 +00:00
pub const Request = struct {
method: Method,
path: []const u8,
headers: Headers,
body: ?[]const u8 = null,
};
2022-07-09 19:39:36 +00:00
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);
}
};
2022-06-09 06:37:09 +00:00
test {
2022-06-26 07:00:14 +00:00
_ = conn;
_ = response_stream;
2022-06-21 06:04:39 +00:00
_ = routing;
2022-06-23 07:25:50 +00:00
_ = server;
2022-06-09 06:37:09 +00:00
}