pub enum AtomiseError {
NotFound,
AlreadyAtomised {
source_id: String,
existing_atom_ids: Vec<String>,
},
TierLocked,
CuratorFailed(String),
SourceTooSmall,
GovernanceRefused(String),
SignerError(String),
DbError(String),
DepthExceeded {
attempted: u32,
cap: u32,
},
}Expand description
Typed error surface for Atomiser::atomise.
Carries enough structured payload that the MCP / HTTP / CLI wrappers can render a clean operator-readable message without re-querying the DB.
Variants§
NotFound
Source memory id does not exist (or has been hard-deleted).
AlreadyAtomised
Source has already been atomised. existing_atom_ids is the
set of atom ids currently pointing at this source via
atom_of. Caller may surface them or re-issue with force = true to mint a fresh set.
TierLocked
The daemon’s resolved feature tier is Keyword — atomisation
requires the curator LLM (Smart or Autonomous). The MCP
surface maps this to a 503-style refusal.
CuratorFailed(String)
Curator round-trip exhausted retries. Carries the last parse diagnostic so the caller can render it.
SourceTooSmall
Source body is already at or under max_atom_tokens — no
productive decomposition possible. The caller may surface the
source as-is. Distinct from AlreadyAtomised: this is the
“never worth atomising” verdict, the latter is the “already
done” verdict.
GovernanceRefused(String)
A pre_store substrate hook refused atom index (zero-based
into the curator’s atom list). Prior atoms (indices < index)
were already committed and are NOT rolled back — see module
docs for the rationale.
SignerError(String)
Signer error during a per-atom or per-link write. Carries the underlying diagnostic.
DbError(String)
Database error (SQL, transaction commit, etc.). Carries the underlying diagnostic.
DepthExceeded
ARCH-5 (FX-6) — emitted when the recursive atomisation depth
exceeds MAX_ATOMISATION_DEPTH. A curator that chain-fires
an atomise on each derived atom (e.g. via an aggressive
pre_store auto-atomise hook that itself triggers another
atomise) is bounded by the thread-local depth guard installed
by enter_atomisation_pass. Past the cap the substrate
refuses with this typed variant, surfacing the stable
ATOMISATION_DEPTH_EXCEEDED slug to MCP / HTTP / CLI callers.
Mirrors the
crate::errors::MemoryError::ReflectionDepthExceeded +
crate::errors::MemoryError::SynthesisDepthExceeded contract
so the recursive-primitive discipline is uniform across the
substrate’s recursive write paths.
Trait Implementations§
Source§impl Debug for AtomiseError
impl Debug for AtomiseError
Source§impl Display for AtomiseError
impl Display for AtomiseError
Source§impl Error for AtomiseError
impl Error for AtomiseError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for AtomiseError
impl RefUnwindSafe for AtomiseError
impl Send for AtomiseError
impl Sync for AtomiseError
impl Unpin for AtomiseError
impl UnsafeUnpin for AtomiseError
impl UnwindSafe for AtomiseError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read moreSource§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.