#![allow(
non_camel_case_types,
non_upper_case_globals,
non_snake_case,
clippy::needless_range_loop,
clippy::too_many_arguments,
clippy::type_complexity,
clippy::missing_transmute_annotations
)]
#[doc(hidden)]
pub mod ffi;
pub mod mil;
pub mod model;
pub mod surface;
pub use mil::{gen_dyn_matmul, mil_footer, mil_header, pack_weights, Source};
pub use model::Program;
pub use surface::Buffer;
pub use acpu::numeric::fp16::{f32_to_fp16, fp16_to_f32};
pub use acpu::{cast_f16_f32, cast_f32_f16};
pub use unimem::{Block, Layout, MemError, Tape};
#[derive(Debug)]
#[non_exhaustive]
pub enum AneError {
SurfaceCreationFailed(String),
ClassNotFound(&'static str),
DescriptorCreationFailed,
ModelCreationFailed,
CompilationFailed(String),
LoadFailed(String),
EvalFailed(String),
UnloadFailed(String),
Io(std::io::Error),
}
impl std::fmt::Display for AneError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
AneError::SurfaceCreationFailed(msg) => {
write!(f, "IOSurface creation failed: {}", msg)
}
AneError::ClassNotFound(name) => write!(f, "ObjC class not found: {}", name),
AneError::DescriptorCreationFailed => write!(f, "Model descriptor creation failed"),
AneError::ModelCreationFailed => write!(f, "Model creation failed"),
AneError::CompilationFailed(msg) => write!(f, "Compilation failed: {}", msg),
AneError::LoadFailed(msg) => write!(f, "Load failed: {}", msg),
AneError::EvalFailed(msg) => write!(f, "Evaluation failed: {}", msg),
AneError::UnloadFailed(msg) => write!(f, "Unload failed: {}", msg),
AneError::Io(e) => write!(f, "IO error: {}", e),
}
}
}
impl std::error::Error for AneError {}
impl From<std::io::Error> for AneError {
fn from(e: std::io::Error) -> Self {
AneError::Io(e)
}
}