1use crate::engine::EngineId;
4
5#[derive(Debug, thiserror::Error)]
7pub enum MemError {
8 #[error(
10 "memory budget exhausted for {engine:?}: requested {requested} bytes, \
11 available {available} bytes (limit: {limit} bytes)"
12 )]
13 BudgetExhausted {
14 engine: EngineId,
15 requested: usize,
16 available: usize,
17 limit: usize,
18 },
19
20 #[error(
22 "global memory ceiling exceeded: total allocated {allocated} bytes, \
23 ceiling {ceiling} bytes, requested {requested} bytes"
24 )]
25 GlobalCeilingExceeded {
26 allocated: usize,
27 ceiling: usize,
28 requested: usize,
29 },
30
31 #[error("unknown engine: {0:?}")]
33 UnknownEngine(EngineId),
34
35 #[error("jemalloc error: {0}")]
37 Jemalloc(String),
38}
39
40pub type Result<T> = std::result::Result<T, MemError>;