pub enum RecoveryAction {
Reattach,
ForceOverwrite,
HardCleanupFirst,
}Expand description
Recovery shape for create_mem against pre-existing storage
residue. A single enum field with three variants structurally
enforces mutual exclusion on the wire (a three-boolean shape would
need a runtime-validation step instead).
Variants§
Reattach
Adopt the residual entities and register the existing branch
as a fresh writable mount. The seed-commit step is skipped —
the prior session’s history is preserved unchanged. Emits a
MemReattachedAfterUnregister warning when the residue
carries an unregistered_at tombstone (audit signal).
ForceOverwrite
Destroy the residual branch + __MEMSTEAD config blob (and any
tombstone) in one ref-edit transaction, then proceed with
the normal create path. The prior entities are gone.
HardCleanupFirst
Refuse with a typed code instructing the caller to run
memstead mem delete <name> first. Hard barrier against
destructive auto-recovery even with an explicit recovery
flag — for operators who want the residue cleanup to be a
separate, named operation.
Implementations§
Source§impl RecoveryAction
impl RecoveryAction
Sourcepub fn as_wire_str(&self) -> &'static str
pub fn as_wire_str(&self) -> &'static str
Wire-token rendering (reattach / force_overwrite /
hard_cleanup_first). Stable across the surface — used by
the MCP serde tag, the CLI flag bridge, and error-envelope
rendering.
Trait Implementations§
Source§impl Clone for RecoveryAction
impl Clone for RecoveryAction
Source§fn clone(&self) -> RecoveryAction
fn clone(&self) -> RecoveryAction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RecoveryAction
Source§impl Debug for RecoveryAction
impl Debug for RecoveryAction
impl Eq for RecoveryAction
Source§impl PartialEq for RecoveryAction
impl PartialEq for RecoveryAction
impl StructuralPartialEq for RecoveryAction
Auto Trait Implementations§
impl Freeze for RecoveryAction
impl RefUnwindSafe for RecoveryAction
impl Send for RecoveryAction
impl Sync for RecoveryAction
impl Unpin for RecoveryAction
impl UnsafeUnpin for RecoveryAction
impl UnwindSafe for RecoveryAction
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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