lz_string/
error.rs

1use crate::{base64, bitreader};
2use std::char::DecodeUtf16Error;
3
4pub type Result<T> = std::result::Result<T, Error>;
5
6#[derive(Debug, PartialEq)]
7pub enum Error {
8    UnexpectedEof,
9    InvalidByte(u8),
10    Utf16Error(DecodeUtf16Error),
11    InvalidHeader(u64),
12}
13
14impl From<base64::Error> for Error {
15    fn from(err: base64::Error) -> Self {
16        match err {
17            base64::Error::InvalidByte(b) => Error::InvalidByte(b),
18        }
19    }
20}
21
22impl From<bitreader::NoError> for Error {
23    fn from(_: bitreader::NoError) -> Self {
24        Error::InvalidByte(0)
25    }
26}
27
28impl From<DecodeUtf16Error> for Error {
29    fn from(err: DecodeUtf16Error) -> Self {
30        Error::Utf16Error(err)
31    }
32}
33
34impl<T> From<Option<T>> for Error {
35    fn from(_: Option<T>) -> Self {
36        Error::UnexpectedEof
37    }
38}