vest/
errors.rs

1pub use crate::utils::*;
2use vstd::prelude::*;
3use vstd::*;
4
5verus! {
6
7/// Parser errors
8#[derive(Debug)]
9pub enum ParseError {
10    /// The second combinator of AndThen did not consume all bytes
11    AndThenUnusedBytes,
12    BuilderError,
13    UnexpectedEndOfInput,
14    OrdChoiceNoMatch,
15    CondFailed,
16    SizeOverflow,
17    TryMapFailed,
18    RefinedPredicateFailed,
19    RepeatEmptyElement,
20    Other(String),
21}
22
23/// Serializer errors
24#[derive(Debug)]
25pub enum SerializeError {
26    InsufficientBuffer,
27    AndThenUnusedBytes,
28    CondFailed,
29    SizeOverflow,
30    TryMapFailed,
31    RefinedPredicateFailed,
32    RepeatEmptyElement,
33    Other(String),
34}
35
36/// Sum of both parse and serialize errors
37#[derive(Debug)]
38pub enum Error {
39    /// Parser error
40    Parse(ParseError),
41    /// Serializer error
42    Serialize(SerializeError),
43}
44
45impl std::convert::From<ParseError> for Error {
46    fn from(e: ParseError) -> Self {
47        Error::Parse(e)
48    }
49}
50
51impl std::convert::From<SerializeError> for Error {
52    fn from(e: SerializeError) -> Self {
53        Error::Serialize(e)
54    }
55}
56
57} // verus!