1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use libucl_sys::ucl_error_t; #[derive(Clone, Debug)] pub enum Error { Ok, Syntax(String), Io, State, Nested, Macro, Internal, SSL, Other } impl Error { pub fn from_code(num: i32, desc: String) -> Self { match num { _ if num == ucl_error_t::UCL_EOK as i32 => Error::Ok, _ if num == ucl_error_t::UCL_ESYNTAX as i32 => Error::Syntax(desc), _ if num == ucl_error_t::UCL_EIO as i32 => Error::Io, _ if num == ucl_error_t::UCL_ESTATE as i32 => Error::State, _ if num == ucl_error_t::UCL_ENESTED as i32 => Error::Nested, _ if num == ucl_error_t::UCL_EMACRO as i32 => Error::Macro, _ if num == ucl_error_t::UCL_EINTERNAL as i32 => Error::Internal, _ if num == ucl_error_t::UCL_ESSL as i32 => Error::SSL, _ => Error::Other, } } }