1#[derive(Debug, thiserror::Error)]
3pub enum GpuError {
4 #[error("no GPU device available")]
5 NoDevice,
6
7 #[error("GPU device request failed: {0}")]
8 DeviceRequest(String),
9
10 #[error("no vectors uploaded to GPU")]
11 NoVectors,
12
13 #[error("no norms uploaded to GPU")]
14 NoNorms,
15
16 #[error("dimension mismatch: expected {expected}, got {got}")]
17 DimensionMismatch { expected: usize, got: usize },
18
19 #[error("k ({k}) exceeds vector count ({n})")]
20 KExceedsN { k: usize, n: usize },
21
22 #[error("GPU buffer mapping failed: {0}")]
23 BufferMap(String),
24
25 #[error("vectors too large for GPU memory: need {need_mb} MB, have {avail_mb} MB")]
26 OutOfMemory { need_mb: u64, avail_mb: u64 },
27
28 #[error("GPU feature not enabled — compile with feature 'gpu-wgpu'")]
29 NotCompiled,
30}
31
32pub type Result<T> = std::result::Result<T, GpuError>;