pub struct RelateResult {
pub from: EntityId,
pub to: EntityId,
pub rel_type: String,
pub source: String,
pub content_hash: String,
pub commit_sha: String,
pub warnings: Vec<WarningHint>,
pub disk_changed: bool,
pub orphan_stubs_removed: Vec<EntityId>,
}Expand description
Result of a relate operation.
Fields§
§from: EntityId§to: EntityId§rel_type: String§source: String§content_hash: StringContent hash of the source entity after the relate. On successful
add/remove, reflects the re-rendered file (Relationships section
updated); on duplicate-add and remove-nonexistent no-ops, reflects
the unchanged file. Pass this as expected_hash on the next
hash-protected op (memstead_update, memstead_rename, memstead_delete) on
the source — no memstead_entity re-read required. Wire key _hash.
commit_sha: StringPer-mem commit SHA — see UpdateResult::commit_sha.
warnings: Vec<WarningHint>Typed non-fatal issues — open-mode schema admissions, duplicate-add
no-ops (DuplicateRelationship), remove-nonexistent no-ops
(NoSuchRelationship). Previously silent edge cases now surface here.
disk_changed: boolTrue if the op wrote to disk (real add or real remove). False on
duplicate-add and remove-nonexistent-edge. Internal signal — the
wrapper gates reindex + vcs_commit on this; the MCP wire relies on
commit_sha.is_empty() as the external no-op indicator.
orphan_stubs_removed: Vec<EntityId>Stub entities that became orphaned by an edge removal (their last
incoming edge was this one) and were garbage-collected. Only
populated on remove: true calls where the edge actually existed;
empty on add paths and no-op removes. Empty vec is serde-omitted.
Trait Implementations§
Source§impl Clone for RelateResult
impl Clone for RelateResult
Source§fn clone(&self) -> RelateResult
fn clone(&self) -> RelateResult
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RelateResult
impl Debug for RelateResult
Source§impl Serialize for RelateResult
impl Serialize for RelateResult
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for RelateResult
impl RefUnwindSafe for RelateResult
impl Send for RelateResult
impl Sync for RelateResult
impl Unpin for RelateResult
impl UnsafeUnpin for RelateResult
impl UnwindSafe for RelateResult
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