httplz 0.0.0

A sans-io, no-std HTTP implementation
Documentation
#[derive(Debug)]
pub enum ErrorKind {
	NeedMoreData,
	InvalidConnectionState,
	Parse,
	TrailingBytes,
	BufNotBigEnough,
	InvalidEventForConnectionState,
	BodySizeMismatch,
}

#[derive(Debug)]
pub struct Error {
	pub kind: ErrorKind,
	pub details: &'static str,
}
impl Error {
	pub fn new(kind: ErrorKind) -> Self {
		Self::with_details(kind, "")
	}

	pub fn with_details(kind: ErrorKind, details: &'static str) -> Self {
		Error { kind, details }
	}
}
impl From<ErrorKind> for Error {
	fn from(value: ErrorKind) -> Self {
		Self::new(value)
	}
}

pub fn fail<T>(error_kind: ErrorKind) -> Result<T, Error> {
	fail_details(error_kind, "")
}

pub fn fail_details<T>(error_kind: ErrorKind, details: &'static str) -> Result<T, Error> {
	Err(Error::with_details(error_kind, details))
}