use thiserror::Error;

pub type Result<T = ()> = std::result::Result<T, Error>;

#[derive(Error, Debug)]
pub enum Error {
    #[error("Invalid Snippet {0}")]
    InvalidSnippet(String),

    #[error("Invalid Shader {0}")]
    InvalidShader(String),

    #[error("Invalid Program {0}")]
    InvalidProgram(String),

    #[error("Invalid Data")]
    InvalidData {
        #[from]
        source: crate::data_loader::error::ETWSError,
    },

    #[error("Invalid CoordType")]
    InvalidDataType,
}
