use std::io;
use thiserror::Error;
mod v1;
mod v2;
#[derive(Debug, Error)]
pub enum Error {
#[error("IO error: {0}")]
Io(#[from] io::Error),
#[error("Invalid length")]
InvalidLength(usize),
#[error("Invalid value: {0}")]
InvalidValue(String),
#[error("Custom error: {0}")]
Custom(String),
}
pub type Result<T> = std::result::Result<T, Error>;
pub use sia_core_derive::{SiaDecode, SiaEncode};
pub use v2::{SiaDecodable, SiaEncodable};
pub use sia_core_derive::{V1SiaDecode, V1SiaEncode};
pub use v1::{V1SiaDecodable, V1SiaEncodable};