#![cfg_attr(
target_arch = "aarch64",
feature(stdarch_neon_dotprod, stdarch_aarch64_prefetch, stdarch_neon_i8mm)
)]
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const GIT_SHA: &str = env!("CERA_GIT_SHA");
pub fn build_info() -> String {
format!("{VERSION}+{GIT_SHA}")
}
pub mod audio_engine;
pub mod backend;
#[cfg(feature = "remote")]
pub mod bundle;
pub mod engine;
#[allow(warnings)]
mod generated {
include!("generated/kv_cache_generated.rs");
}
pub mod gguf;
pub mod grammar;
pub mod kv_cache;
pub mod lora;
pub mod manifest;
pub mod model;
pub mod par;
pub mod quant;
pub mod sampler;
pub mod session;
pub mod sysmem;
pub mod tensor;
pub mod time;
pub mod tokenizer;
pub mod turboquant;
pub use backend::cpu_features::{CpuFeatures, CpuTier, cpu_features, cpu_tier};
pub use engine::{BackendPreference, CeraEngine, EngineConfig, ModelFiles, ModelMetadata};
pub use session::{
CeraError, FinishReason, GenerateOpts, GenerateSummary, ModalityCapabilities, ModalitySink,
Session, SessionConfig,
};
pub use sysmem::{available_memory_bytes, fits_in_available_memory};
#[cfg(test)]
mod build_info_tests {
use super::*;
#[test]
fn build_info_is_version_plus_sha() {
let info = build_info();
assert_eq!(info, format!("{VERSION}+{GIT_SHA}"));
let (ver, sha) = info.split_once('+').expect("build_info has a '+'");
assert_eq!(ver, VERSION);
assert!(!sha.is_empty());
}
}