requires at least zig 0.11.0

This commit is contained in:
flopetautschnig 2023-04-25 11:06:23 +02:00 committed by GitHub
parent 32c1f95938
commit 9ee1561eae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 15 deletions

View file

@ -1,7 +1,7 @@
# zerve
A simple framework for writing web services in zig.
## Relies on zig 0.10.1 !
## Requires at least zig 0.11.0!
## Create a simple web app

View file

@ -18,16 +18,11 @@ pub const Server = struct {
// Init server
const server_options: std.net.StreamServer.Options = .{};
var server = std.net.StreamServer.init(server_options);
defer server.close();
defer server.deinit();
const addr = try std.net.Address.parseIp(ip, port);
while (true) {
server.listen(addr) catch {
server.close();
continue;
};
break;
}
try server.listen(addr);
// Handling connections
while (true) {
@ -46,7 +41,7 @@ pub const Server = struct {
if (std.mem.containsAtLeast(u8, buffer.items, 2, "\r\n")) break;
}
// Build the Request
const req_stream = buffer.toOwnedSlice();
const req_stream = try buffer.toOwnedSlice();
var req = try buildRequest(req_stream, allocator);
// if there ist a path set in the uri trim the trailing slash in order to accept it later during the matching check.
@ -101,7 +96,7 @@ fn buildRequest(bytes: []const u8, allocator: std.mem.Allocator) !Request {
const header_pair = Header{ .key = item1, .value = item2 };
try header_buffer.append(header_pair);
}
req.headers = header_buffer.toOwnedSlice();
req.headers = try header_buffer.toOwnedSlice();
req.body = if (parts.next()) |value| value else "";
return req;
}
@ -129,13 +124,13 @@ fn stringifyResponse(r: Response, allocator: std.mem.Allocator) ![]const u8 {
try res.appendSlice("\r\n");
for (r.headers) |header| {
try res.appendSlice(header.stringify());
try res.appendSlice(try header.stringify());
try res.appendSlice("\n");
}
try res.appendSlice("\r\n\r\n");
try res.appendSlice(r.body);
return res.toOwnedSlice();
return try res.toOwnedSlice();
}
test "stringify Response" {

View file

@ -17,12 +17,12 @@ pub const Header = struct {
value: []const u8,
/// Turns the header key and value into a string.
pub fn stringify(header: Header) []const u8 {
pub fn stringify(header: Header) ![]const u8 {
var string = std.ArrayList(u8).init(allocator);
string.appendSlice(header.key) catch unreachable;
string.appendSlice(": ") catch unreachable;
string.appendSlice(header.value) catch unreachable;
const out = string.toOwnedSlice();
const out = try string.toOwnedSlice();
return out;
}

View file

@ -2,5 +2,5 @@ name: zerve
main: src/zerve.zig
license: MIT
description: Simple web framework for zig
min_zig_version: 0.10.1
min_zig_version: 0.11.0
dependencies: