diff options
Diffstat (limited to 'third_party/rust/bhttp/src/err.rs')
-rw-r--r-- | third_party/rust/bhttp/src/err.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/third_party/rust/bhttp/src/err.rs b/third_party/rust/bhttp/src/err.rs new file mode 100644 index 0000000000..5ee136f960 --- /dev/null +++ b/third_party/rust/bhttp/src/err.rs @@ -0,0 +1,38 @@ +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum Error { + #[error("a request used the CONNECT method")] + ConnectUnsupported, + #[error("a field contained invalid Unicode: {0}")] + CharacterEncoding(#[from] std::string::FromUtf8Error), + #[error("a field contained an integer value that was out of range: {0}")] + IntRange(#[from] std::num::TryFromIntError), + #[error("the mode of the message was invalid")] + InvalidMode, + #[error("IO error {0}")] + Io(#[from] std::io::Error), + #[error("a field or line was missing a necessary character 0x{0:x}")] + Missing(u8), + #[error("a URL was missing a key component")] + MissingUrlComponent, + #[error("an obs-fold line was the first line of a field section")] + ObsFold, + #[error("a field contained a non-integer value: {0}")] + ParseInt(#[from] std::num::ParseIntError), + #[error("a field was truncated")] + Truncated, + #[error("a message included the Upgrade field")] + UpgradeUnsupported, + #[error("a URL could not be parsed into components: {0}")] + #[cfg(feature = "read-http")] + UrlParse(#[from] url::ParseError), +} + +#[cfg(any( + feature = "read-http", + feature = "write-http", + feature = "read-bhttp", + feature = "write-bhttp" +))] +pub type Res<T> = Result<T, Error>; |