use crate::engine::EngineId;
#[derive(Debug, thiserror::Error)]
pub enum MemError {
#[error(
"memory budget exhausted for {engine:?}: requested {requested} bytes, \
available {available} bytes (limit: {limit} bytes)"
)]
BudgetExhausted {
engine: EngineId,
requested: usize,
available: usize,
limit: usize,
},
#[error(
"global memory ceiling exceeded: total allocated {allocated} bytes, \
ceiling {ceiling} bytes, requested {requested} bytes"
)]
GlobalCeilingExceeded {
allocated: usize,
ceiling: usize,
requested: usize,
},
#[error("unknown engine: {0:?}")]
UnknownEngine(EngineId),
#[error("jemalloc error: {0}")]
Jemalloc(String),
#[error("overflow region error: {0}")]
Overflow(String),
}
pub type Result<T> = std::result::Result<T, MemError>;