use thiserror::Error;

#[derive(Error, Debug)]
pub enum ProgenitorError {
    #[error("Network already initialized")]
    AlreadyInitialized,

    #[error("Failed to load templates: {0}")]
    TemplateLoadError(String),

    #[error("Failed to create system templates: {0}")]
    TemplateCreationError(String),

    #[error("Failed to initialize pool definition: {0}")]
    PoolDefinitionError(String),

    #[error("Failed to add pool pieces: {0}")]
    PoolPiecesError(String),
}

pub type ProgenitorResult<T> = Result<T, ProgenitorError>;
