pub struct MemDeleteResponse {
pub name: String,
pub deleted_from_router: bool,
pub files_deleted: bool,
pub warnings: Vec<WarningHint>,
pub allowlist_entries_removed: Vec<AllowlistEntryRemoved>,
pub detached_referrers: Vec<ReferrerInfo>,
}Expand description
Response shape from delete_mem.
Fields§
§name: String§deleted_from_router: boolAlways true on successful return — the snapshot swap
happened.
files_deleted: booltrue when delete_files was true AND the directory was
removed cleanly; false otherwise (delete_files false, or
removal errored, or backend has no on-disk directory).
warnings: Vec<WarningHint>Non-fatal findings emitted during the disk-cleanup step.
Populated when delete_files: true was requested but
Self::files_deleted ended false — distinguishes the
mem-db-no-op case from the rmdir-failure case so an agent
reading files_deleted: false doesn’t trigger redundant
cleanup attempts. Empty when nothing surprised the operation
(e.g. delete_files: false, or delete_files: true and rmdir
succeeded).
allowlist_entries_removed: Vec<AllowlistEntryRemoved>Dangling [cross_mem_links] grants scrubbed from
.memstead/workspace.toml on a destructive delete. Surfacing
the scrub here gives the agent a one-round-trip view of every
policy side effect. Only dangling cross-link grants are scrubbed
(and reported here); the [[mem_management.*]] allowlist rules
are preserved, so a later re-create of the same name needs no
fresh allow-create. Empty [] when no cross-link grant named
the deleted mem.
detached_referrers: Vec<ReferrerInfo>Write-Mem referrers whose cross-mem edges into the deleted mem
were deliberately left dangling under
MemDeleteParams::detach_incoming — one entry per source
entity, rel_types aggregating every detached edge type. The
referrers’ files are untouched; their edges resolve to stubs
until a same-name re-creation re-adopts them. Always empty
when detach_incoming was false (the refusal fires
instead).
Trait Implementations§
Source§impl Clone for MemDeleteResponse
impl Clone for MemDeleteResponse
Source§fn clone(&self) -> MemDeleteResponse
fn clone(&self) -> MemDeleteResponse
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for MemDeleteResponse
impl RefUnwindSafe for MemDeleteResponse
impl Send for MemDeleteResponse
impl Sync for MemDeleteResponse
impl Unpin for MemDeleteResponse
impl UnsafeUnpin for MemDeleteResponse
impl UnwindSafe for MemDeleteResponse
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
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