furze 0.0.1

finite state transducers (fst) writen in rust
Documentation
use std::io;
use thiserror::Error;
pub type FstResult<T> = Result<T, FstError>;

#[derive(Error, Debug)]
pub enum FstError {
    #[error("reader fst EOF")]
    Eof,
    #[error("Fail")]
    Fail,
    #[error("NotFound")]
    NotFound,
    #[error("Greater")]
    Greater,
    #[error("encode fail from :{0}")]
    EncodeFail(String),
    #[error("io write fail from :{0}")]
    IoWriteFail(io::Error),
}

#[cfg(test)]
mod tests {
    use super::*;
    use std::io;
    use std::io::ErrorKind;

    #[derive(Error, Debug)]
    pub enum DataStoreError {
        #[error("data store disconnected:{0}")]
        Disconnect(#[from] io::Error),
        #[error("the data for key `{0}` is not available")]
        Redaction(String),
        #[error("invalid header (expected {expected:?}, found {found:?})")]
        InvalidHeader { expected: String, found: String },
        #[error("unknown data store error")]
        Unknown,
    }

    fn get_error1() -> DataStoreError {
        DataStoreError::Redaction("xxxx".to_string())
    }

    fn get_error2() -> DataStoreError {
        DataStoreError::InvalidHeader {
            expected: "a".to_string(),
            found: "b".to_string(),
        }
    }

    fn get_error3() -> DataStoreError {
        DataStoreError::Disconnect(io::Error::from(ErrorKind::AddrInUse))
    }

    #[test]
    fn test_get_error() {
        println!("{}", get_error1());
        println!("{}", get_error2());
        println!("{}", get_error3());
    }
}