manual_serializer/
error.rs

1use std::{string::FromUtf16Error, array::TryFromSliceError};
2use thiserror::Error;
3
4#[derive(Debug, Error)]
5pub enum Error {
6    #[error("Error: {0}")]
7    String(String),
8
9    #[error("Error: {0}")]
10    FromUtf16Error(FromUtf16Error),
11
12    #[error("Error: {0}")]
13    TryFromSliceError(TryFromSliceError),
14    
15    #[error("Error while trying to offset {0} byte(s) from position {1} in buffer length of {2}")]
16    TryOffsetError(usize,usize,usize),
17    
18    #[error("Error while trying to store {0} value at position {1} in buffer length of {2}")]
19    TryStoreError(&'static str,usize,usize),
20    
21    #[error("Error while trying to store slice of {0} byte(s) at position {1} in buffer length of {2}")]
22    TryStoreSliceError(usize,usize,usize),
23    
24}
25
26impl From<String> for Error {
27    fn from(s: String) -> Error {
28        Error::String(s)
29    }
30}
31
32impl From<&str> for Error {
33    fn from(s: &str) -> Error {
34        Error::String(s.to_string())
35    }
36}
37
38impl From<FromUtf16Error> for Error {
39    fn from(e: FromUtf16Error) -> Error {
40        Error::FromUtf16Error(e)
41    }
42}
43
44impl From<TryFromSliceError> for Error {
45    fn from(e: TryFromSliceError) -> Error {
46        Error::TryFromSliceError(e)
47    }
48}