@@ -16,9 +16,17 @@ const metrics = @import("metrics.zig");
16
16
17
17
const Context = struct {
18
18
indexes : * MultiIndex ,
19
+
20
+ pub fn notFound (ctx : * Context , req : * httpz.Request , res : * httpz.Response ) ! void {
21
+ return handleNotFound (ctx , req , res );
22
+ }
23
+
24
+ pub fn uncaughtError (ctx : * Context , req : * httpz.Request , res : * httpz.Response , err : anyerror ) void {
25
+ return handleError (ctx , req , res , err );
26
+ }
19
27
};
20
28
21
- const Server = httpz .ServerApp (* Context );
29
+ const Server = httpz .Server (* Context );
22
30
23
31
var global_server : ? * Server = null ;
24
32
@@ -30,16 +38,16 @@ fn shutdown(_: c_int) callconv(.C) void {
30
38
}
31
39
}
32
40
33
- fn installSignalHandlers (server : * Server ) ! void {
41
+ fn installSignalHandlers (server : * Server ) void {
34
42
global_server = server ;
35
43
36
- try std .posix .sigaction (std .posix .SIG .INT , &.{
44
+ std .posix .sigaction (std .posix .SIG .INT , &.{
37
45
.handler = .{ .handler = shutdown },
38
46
.mask = std .posix .empty_sigset ,
39
47
.flags = 0 ,
40
48
}, null );
41
49
42
- try std .posix .sigaction (std .posix .SIG .TERM , &.{
50
+ std .posix .sigaction (std .posix .SIG .TERM , &.{
43
51
.handler = .{ .handler = shutdown },
44
52
.mask = std .posix .empty_sigset ,
45
53
.flags = 0 ,
@@ -67,35 +75,32 @@ pub fn run(allocator: std.mem.Allocator, indexes: *MultiIndex, address: []const
67
75
var server = try Server .init (allocator , config , & ctx );
68
76
defer server .deinit ();
69
77
70
- server .errorHandler (handleError );
71
- server .notFound (handleNotFound );
72
-
73
- try installSignalHandlers (& server );
78
+ installSignalHandlers (& server );
74
79
75
- var router = server .router ();
80
+ var router = try server .router (.{} );
76
81
77
82
// Monitoring API
78
- router .get ("/_metrics" , handleMetrics );
79
- router .get ("/_health" , handleHealth );
80
- router .get ("/:index/_health" , handleIndexHealth );
83
+ router .get ("/_metrics" , handleMetrics , .{} );
84
+ router .get ("/_health" , handleHealth , .{} );
85
+ router .get ("/:index/_health" , handleIndexHealth , .{} );
81
86
82
87
// Search API
83
- router .post ("/:index/_search" , handleSearch );
88
+ router .post ("/:index/_search" , handleSearch , .{} );
84
89
85
90
// Bulk API
86
- router .post ("/:index/_update" , handleUpdate );
91
+ router .post ("/:index/_update" , handleUpdate , .{} );
87
92
88
93
// Fingerprint API
89
- router .head ("/:index/:id" , handleHeadFingerprint );
90
- router .get ("/:index/:id" , handleGetFingerprint );
91
- router .put ("/:index/:id" , handlePutFingerprint );
92
- router .delete ("/:index/:id" , handleDeleteFingerprint );
94
+ router .head ("/:index/:id" , handleHeadFingerprint , .{} );
95
+ router .get ("/:index/:id" , handleGetFingerprint , .{} );
96
+ router .put ("/:index/:id" , handlePutFingerprint , .{} );
97
+ router .delete ("/:index/:id" , handleDeleteFingerprint , .{} );
93
98
94
99
// Index API
95
- router .head ("/:index" , handleHeadIndex );
96
- router .get ("/:index" , handleGetIndex );
97
- router .put ("/:index" , handlePutIndex );
98
- router .delete ("/:index" , handleDeleteIndex );
100
+ router .head ("/:index" , handleHeadIndex , .{} );
101
+ router .get ("/:index" , handleGetIndex , .{} );
102
+ router .put ("/:index" , handlePutIndex , .{} );
103
+ router .delete ("/:index" , handleDeleteIndex , .{} );
99
104
100
105
log .info ("listening on {s}:{d}" , .{ address , port });
101
106
try server .listen ();
@@ -453,8 +458,8 @@ const Attributes = struct {
453
458
try packer .writeMapHeader (self .attributes .count ());
454
459
var iter = self .attributes .iterator ();
455
460
while (iter .next ()) | entry | {
456
- try packer .write (@TypeOf ( entry . key_ptr .* ), entry .key_ptr .* );
457
- try packer .write (@TypeOf ( entry . value_ptr .* ), entry .value_ptr .* );
461
+ try packer .write (entry .key_ptr .* );
462
+ try packer .write (entry .value_ptr .* );
458
463
}
459
464
}
460
465
};
0 commit comments