diff options
Diffstat (limited to 'src/proto/error.rs')
| -rw-r--r-- | src/proto/error.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/proto/error.rs b/src/proto/error.rs new file mode 100644 index 0000000..8a901ce --- /dev/null +++ b/src/proto/error.rs @@ -0,0 +1,25 @@ +use thiserror::Error; + +#[derive(Debug, Error, PartialEq)] +pub enum ParseError { + #[error("message is empty")] + EmptyMessage, + + #[error("missing command")] + MissingCommand, + + #[error("invalid tag format: {0}")] + InvalidTag(String), + + #[error("line exceeds max message length")] + MessageTooLong, +} + +#[derive(Debug, Error)] +pub enum CodecError { + #[error("parse error: {0}")] + Parse(#[from] ParseError), + + #[error("I/O error: {0}")] + Io(#[from] std::io::Error), +} |
