use memflow::types::Address;
use thiserror::Error;
use crate::structs::Vec3;
#[derive(Error, Debug)]
pub enum Error {
    #[error("version mismatch, game has version {0}, but offsets have version {1}")]
    GameVersionMismatch(usize, usize),
    #[error("memflow error: {0}")]
    Memflow(#[from] memflow::error::Error),
    #[error("memflow partial error when reading address: {0}")]
    MemflowPartialAddress(#[from] memflow::error::PartialError<Address>),
    #[error("memflow partial error when reading Vec3: {0}")]
    MemflowPartialVec3(#[from] memflow::error::PartialError<Vec3>),
    #[error("memflow partial error when reading String: {0}")]
    MemflowPartialString(#[from] memflow::error::PartialError<String>),
    #[error("memflow partial error when reading i32: {0}")]
    MemflowPartiali32(#[from] memflow::error::PartialError<i32>),
    #[error("memflow partial error when reading u32: {0}")]
    MemflowPartialu32(#[from] memflow::error::PartialError<u32>),
    #[error("memflow partial error when reading u8: {0}")]
    MemflowPartialu8(#[from] memflow::error::PartialError<u8>)
}