pub enum PipelineEditError {
NoWorkspaceRoot,
Provenance(String),
AlreadyExists {
primitive: &'static str,
key: String,
},
NotFound {
primitive: &'static str,
key: String,
},
RenameTargetExists {
primitive: &'static str,
key: String,
},
InvalidJson {
primitive: &'static str,
message: String,
},
Capability {
key: String,
refusals: Vec<CapabilityError>,
},
Store(StoreError),
}Expand description
Failure modes of a pipeline edit. Distinct from the entity-centric
crate::engine::EngineError — these describe binding-store edits.
key is the display identity: "<mem>/<name>".
Variants§
NoWorkspaceRoot
The engine was not booted from a workspace root, so there is no binding store to edit (e.g. an engine built from a bare mount list in a test or in-memory consumer).
Provenance(String)
The edit landed on disk but its provenance record (the
__MEMSTEAD mirror commit carrying the note) could not be
committed. The disk state is live; the audit trail is missing
this event — callers surface it rather than silently dropping
the note.
AlreadyExists
A create targeted a (mem, name) that already holds a record.
NotFound
An update / delete / rename targeted a record that does not exist.
RenameTargetExists
A rename target (mem, new) already holds a record.
InvalidJson
A JSON-string edit entry point received a payload that did not deserialize into the target shape.
Capability
A binding edit was refused by in-record validation — a malformed
source (empty / duplicate name) or a medium-capability violation
(e.g. declaring sync over a medium with no change signal). Carries
only the refusals the edit would introduce: refusals the stored
record already produces never block an unrelated edit. Each refusal
message includes its remedy.
Store(StoreError)
Underlying store IO / parse failure.
Trait Implementations§
Source§impl Debug for PipelineEditError
impl Debug for PipelineEditError
Source§impl Display for PipelineEditError
impl Display for PipelineEditError
Source§impl Error for PipelineEditError
impl Error for PipelineEditError
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()
Source§impl From<StoreError> for PipelineEditError
impl From<StoreError> for PipelineEditError
Source§fn from(source: StoreError) -> Self
fn from(source: StoreError) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for PipelineEditError
impl !UnwindSafe for PipelineEditError
impl Freeze for PipelineEditError
impl Send for PipelineEditError
impl Sync for PipelineEditError
impl Unpin for PipelineEditError
impl UnsafeUnpin for PipelineEditError
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> Fruit for T
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 more