From 1f171b59c0dd76a323baf646dadd17e63febfcb0 Mon Sep 17 00:00:00 2001 From: flopetautschnig <69145145+floscodes@users.noreply.github.com> Date: Sat, 15 Apr 2023 17:39:40 +0200 Subject: [PATCH] adding http status codes and types moving to the src folder --- src/status.zig | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/types.zig | 22 +++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 src/status.zig create mode 100644 src/types.zig diff --git a/src/status.zig b/src/status.zig new file mode 100644 index 0000000..741b62d --- /dev/null +++ b/src/status.zig @@ -0,0 +1,75 @@ +pub const Status = enum(u32) { + // INFORMATION RESPONSES + + CONTINUE = 100, + SWICTHING_PROTOCOLS = 101, + PROCESSING = 102, + EARLY_HINTS = 103, + + // SUCCESSFUL RESPONSES + OK = 200, + CREATED = 201, + ACCEPTED = 202, + NON_AUTH_INFORMATION = 203, + NO_CONTENT = 204, + RESET_CONTENT = 205, + PARTIAL_CONTENT = 206, + MULTI_STATUS = 207, + ALREADY_REPORTED = 208, + IM_USED = 226, + + //REDIRECTION MESSAGES + MULTIPLE_CHOICES = 300, + MOVED_PERMANENTLY = 301, + FOUND = 302, + MOVED_TEMPORARILY = 302, + SEE_OTHER = 303, + NOT_MODIFIED = 304, + USE_PROXY = 305, + SWITCH_PROXY = 306, + TEMPORARY_REDIRECT = 307, + PERMANENT_REDIRECT = 308, + + // CLIENT ERROR RESPONSES + BAD_REQUEST = 400, + UNAUTHORIZED = 401, + PAYMENT_REQUIRED = 402, + FORBIDDEN = 403, + NOT_FOUND = 404, + METHOD_NOT_ALLOWED = 405, + NOT_ACCEPTABLE = 406, + REQUEST_TIMEOUT = 408, + CONFLICT = 409, + GONE = 410, + LENGTH_REQUIRED = 411, + PRECONDITION_FAILED = 412, + PAYLOAD_TOO_LARGE = 213, + URI_TOO_LONG = 414, + UNSUPPORTED_MEDIA_TYPE = 415, + RANGE_NOT_SATISIFIABLE = 416, + EXPECTATION_FAILED = 417, + I_AM_A_TEAPOT = 421, + MISDIRECTED_REQUEST = 421, + UNPROCESSABLE_CONTENT = 422, + LOCKED = 423, + FAILED_DEPENDENCY = 424, + TOO_EARLY = 425, + UPGRADE_REQUIRED = 426, + PRECONDITION_REQUIRED = 428, + TOO_MANY_REQUESTS = 429, + REQUESTS_HEADER_FIELDS_TOO_LARGE = 431, + UNAVAILABLE_FOR_LEGAL_REASONS = 451, + + //SERVER RESPONSES + INTERNAL_SERVER_ERROR = 500, + NOT_IMPLEMETED = 501, + BAD_GATEWAY = 502, + SERVUCE_UNAVAILABLE = 503, + GATEWAY_TIMEOUT = 504, + HTTP_VERSION_NOT_SUPPORTED = 505, + VARIANT_ALSO_NEGOTIATES = 506, + INSUFFICIENT_STORAGE = 507, + LOOP_DETECTED = 508, + NOT_EXTENDED = 510, + NETWORK_AUTHENTICATION_REQUIRED = 511, +}; diff --git a/src/types.zig b/src/types.zig new file mode 100644 index 0000000..698f586 --- /dev/null +++ b/src/types.zig @@ -0,0 +1,22 @@ +const tuple = @import("std").meta.Tuple; + +pub const Route = tuple(&.{ []const u8, *const fn () Response }); + +pub const Header = tuple(&.{ []const u8, *const fn () Response }); + +pub const HTTP_Version = enum { + HTTP1_1, + HTTP2, +}; + +pub const Request = struct { + httpVersion: HTTP_Version, + headers: []Header, + body: []u8, +}; + +pub const Response = struct { + httpVersion: HTTP_Version, + headers: []Header, + body: []u8, +};