zig 0.12.0: upgrade flexilib runtime
This commit is contained in:
parent
73fa9791d3
commit
581c3de9ca
|
@ -27,7 +27,7 @@ const Application = if (@import("builtin").is_test) @This() else @import("flexil
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
comptime {
|
comptime {
|
||||||
@export(interface.zigInit, .{ .name = "zigInit", .linkage = .Strong });
|
@export(interface.zigInit, .{ .name = "zigInit", .linkage = .strong });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// handle_request will be called on a single request, but due to the preservation
|
/// handle_request will be called on a single request, but due to the preservation
|
||||||
|
@ -73,17 +73,17 @@ fn handleRequest(allocator: std.mem.Allocator, response: *interface.ZigResponse)
|
||||||
ul_response.request.headers = response.request.headers;
|
ul_response.request.headers = response.request.headers;
|
||||||
ul_response.request.method = std.meta.stringToEnum(std.http.Method, response.request.method) orelse std.http.Method.GET;
|
ul_response.request.method = std.meta.stringToEnum(std.http.Method, response.request.method) orelse std.http.Method.GET;
|
||||||
const builtin = @import("builtin");
|
const builtin = @import("builtin");
|
||||||
const supports_getrusage = builtin.os.tag != .windows and @hasDecl(std.os.system, "rusage"); // Is Windows it?
|
const supports_getrusage = builtin.os.tag != .windows and @hasDecl(std.posix.system, "rusage"); // Is Windows it?
|
||||||
var rss: if (supports_getrusage) std.os.rusage else void = undefined;
|
var rss: if (supports_getrusage) std.posix.rusage else void = undefined;
|
||||||
if (supports_getrusage and builtin.mode == .Debug)
|
if (supports_getrusage and builtin.mode == .Debug)
|
||||||
rss = std.os.getrusage(std.os.rusage.SELF);
|
rss = std.posix.getrusage(std.posix.rusage.SELF);
|
||||||
const response_content = try handler.?(
|
const response_content = try handler.?(
|
||||||
allocator,
|
allocator,
|
||||||
response.request.content,
|
response.request.content,
|
||||||
&ul_response,
|
&ul_response,
|
||||||
);
|
);
|
||||||
if (supports_getrusage and builtin.mode == .Debug) { // and debug mode) {
|
if (supports_getrusage and builtin.mode == .Debug) { // and debug mode) {
|
||||||
const rusage = std.os.getrusage(std.os.rusage.SELF);
|
const rusage = std.posix.getrusage(std.posix.rusage.SELF);
|
||||||
log.debug(
|
log.debug(
|
||||||
"Request complete, max RSS of process: {d}M. Incremental: {d}K, User: {d}μs, System: {d}μs",
|
"Request complete, max RSS of process: {d}M. Incremental: {d}K, User: {d}μs, System: {d}μs",
|
||||||
.{
|
.{
|
||||||
|
@ -96,10 +96,7 @@ fn handleRequest(allocator: std.mem.Allocator, response: *interface.ZigResponse)
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// Copy any headers
|
response.headers = ul_response.headers;
|
||||||
for (ul_response.headers.list.items) |entry| {
|
|
||||||
try response.headers.append(entry.name, entry.value);
|
|
||||||
}
|
|
||||||
// Anything manually written goes first
|
// Anything manually written goes first
|
||||||
try response_writer.writeAll(ul_response.body.items);
|
try response_writer.writeAll(ul_response.body.items);
|
||||||
// Now we right the official body (response from handler)
|
// Now we right the official body (response from handler)
|
||||||
|
@ -131,9 +128,9 @@ pub fn main() !u8 {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
fn testHandler(allocator: std.mem.Allocator, event_data: []const u8, context: @import("universal_lambda_interface").Context) ![]const u8 {
|
fn testHandler(allocator: std.mem.Allocator, event_data: []const u8, context: @import("universal_lambda_interface").Context) ![]const u8 {
|
||||||
try context.headers.append("X-custom-foo", "bar");
|
context.headers = &.{.{ .name = "X-custom-foo", .value = "bar" }};
|
||||||
try context.writeAll(event_data);
|
try context.writeAll(event_data);
|
||||||
return std.fmt.allocPrint(allocator, "{d}", .{context.request.headers.list.items.len});
|
return std.fmt.allocPrint(allocator, "{d}", .{context.request.headers.len});
|
||||||
}
|
}
|
||||||
// Need to figure out how tests would work
|
// Need to figure out how tests would work
|
||||||
test "handle_request" {
|
test "handle_request" {
|
||||||
|
@ -141,7 +138,7 @@ test "handle_request" {
|
||||||
defer arena.deinit();
|
defer arena.deinit();
|
||||||
var aa = arena.allocator();
|
var aa = arena.allocator();
|
||||||
interface.zigInit(&aa);
|
interface.zigInit(&aa);
|
||||||
var headers: []interface.Header = @constCast(&[_]interface.Header{.{
|
const headers: []interface.Header = @constCast(&[_]interface.Header{.{
|
||||||
.name_ptr = @ptrCast(@constCast("GET".ptr)),
|
.name_ptr = @ptrCast(@constCast("GET".ptr)),
|
||||||
.name_len = 3,
|
.name_len = 3,
|
||||||
.value_ptr = @ptrCast(@constCast("GET".ptr)),
|
.value_ptr = @ptrCast(@constCast("GET".ptr)),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user