3 stable releases

1.0.2 Jun 6, 2024

#1767 in Network programming

44 downloads per month

LGPL-3.0-or-later

35KB
505 lines

HTTP Codex

HTTP codex is a library for managing HTTP codes safely. This library was written to be used in my projects, primarily becaus I didn't find any existing one that covers my needs. I'm publishig it here in case somebody else is interested.

The enums

HTTP Code

The first enum is HttpCode which contains every known HTTP code. You can convert integers and integers inside an Option to this enum. If a code is unknown, an HttpCode::Unknown variant is created and if an Option::None is given, a HttpCode::None is created.

use http_codex::HttpCode;

let code = HttpCode::from(307);
assert!(matches!(code, HttpCode::TemporaryRedirect));

let code = HttpCode::from(Some(410));
assert!(matches!(code, HttpCode::Gone));

HTTP code class

The second enum is HttpCodeClass containing every class so you don't have to check if the numerical value of a code is in a range. You can easily convert an HttpCode to an HttpCodeClass.

use http_codex::HttpCode;
use http_codex::HttpCodeClass;

let code = HttpCode::from(302);
let class = HttpCodeClass::from(code);
assert!(matches!(class, HttpCodeClass::Redirection));

No runtime deps