pub mod into_value;
pub mod scheme;
pub mod value;

// Re-exports from armour-core / armour-typ
pub use armour_core::dyn_types::get_type;
pub use armour_core::{EnumType, Fields, SimpleEnumType, StructType, Typ};

use rapira::RapiraError;
pub use scheme::Scheme;
use thiserror::Error;

#[derive(Error, Debug)]
pub enum StoredError {
    #[error("is not correct type")]
    NotCorrectTypeError,
    #[error("iter next error")]
    IterNextError,
    #[error("variant not found in enum type")]
    InvalidEnumVariantError,
    #[error("value type and scheme type is not equal")]
    TypesNotEqualError,
    #[error("value idx and scheme idx is not equal")]
    IdxNotEqualError,
    #[error("string from utf8 error")]
    StringTypeError,
    #[error("args next error")]
    ArgsNextError,
    #[error("args next error")]
    MapInsertError,
    #[error(transparent)]
    RapiraError(#[from] RapiraError),
}
