Skip to main content

otherone_memory/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug, Clone, PartialEq, Eq)]
4pub enum MemoryError {
5    #[error("memory point field '{field}' cannot be empty")]
6    EmptyField { field: &'static str },
7
8    #[error("memory point not found: {point_id}")]
9    PointNotFound { point_id: String },
10
11    #[error("memory point parent not found: {parent_id}")]
12    ParentNotFound { parent_id: String },
13
14    #[error("memory point already exists: {point_id}")]
15    DuplicatePoint { point_id: String },
16
17    #[error("IO error: {0}")]
18    IoError(String),
19
20    #[error("JSON error: {0}")]
21    JsonError(String),
22
23    #[error("headless point cannot be modified: {operation}")]
24    HeadlessModification { operation: &'static str },
25
26    #[error("headless point cannot be inserted into an existing tree")]
27    CannotInsertHeadless,
28
29    #[error("non-headless point must have a parent")]
30    MissingParent,
31
32    #[error("headless point must not have storage, types, or parent")]
33    InvalidHeadlessPoint,
34
35    #[error("memory tree cycle detected when attaching '{point_id}' under '{parent_id}'")]
36    CycleDetected { point_id: String, parent_id: String },
37
38    #[error("invalid point kind for '{point_id}': expected {expected}")]
39    InvalidPointKind {
40        point_id: String,
41        expected: &'static str,
42    },
43
44    #[error("memory tree invariant failed: {message}")]
45    TreeInvariant { message: String },
46}