adding http status codes and types moving to the src folder

This commit is contained in:
flopetautschnig 2023-04-15 17:39:40 +02:00 committed by GitHub
parent f2b916a86e
commit 1f171b59c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 97 additions and 0 deletions

75
src/status.zig Normal file
View file

@ -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,
};

22
src/types.zig Normal file
View file

@ -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,
};