use std::any::Any; use std::result; #[derive(Debug)] pub enum ZoodexError { CollectionFileReadError, } pub type Result = result::Result; impl From> for ZoodexError { fn from(error: Box) -> Self { *error.downcast().unwrap() } } macro_rules! async_result_context {( $future: expr $(, ok => $on_success: expr)? $(, err => $on_failure: expr)?$(,)? ) => { #[allow(unreachable_patterns)] match $future.await { $(Ok(value) => $on_success(value),)? Ok(_) => {}, $(Err(error) => $on_failure(error),)? Err(_) => {}, } }} pub(crate) use async_result_context;