pub struct UpdateEntityOutcome {
pub id: EntityId,
pub title: String,
pub file_path: String,
pub content_hash: String,
pub commit_sha: String,
pub modified_date: String,
pub modified_sections: ModifiedSections,
pub modified_metadata: ModifiedMetadata,
pub prospective_hash: Option<String>,
pub orphan_stubs_removed: Vec<EntityId>,
pub warnings: Vec<WarningHint>,
pub relations_declared: Vec<RelationDeclared>,
}Expand description
Successful outcome of [Engine::update_entity].
Fields§
§id: EntityId§title: StringTitle from the parsed entity after the write — wire-equivalent
to full’s UpdateResult.title. Reflects post-write state in
case a future update path touches the title (today the update
surface doesn’t, but reading from the parsed entity rather
than echoing args keeps the field correct as the surface
evolves).
file_path: String§content_hash: StringWire key _hash.
commit_sha: StringPer-mem commit identifier returned by the backend’s
crate::backend::MemBackend::commit. Wire-equivalent to
full’s UpdateResult.commit_sha.
modified_date: StringISO date string from the parsed entity’s modified_date
metadata. Populated when the schema auto-stamps the field
on update; empty when the schema doesn’t declare it. Wire-
equivalent to full’s UpdateResult.modified_date.
modified_sections: ModifiedSectionsSection-level mutations grouped by mode (replaced / appended /
patched). Wire-equivalent to full’s
UpdateResult.modified_sections. Empty inner vecs serde-omit
per ModifiedSections’s field attributes; the outer key is
always present.
modified_metadata: ModifiedMetadataMetadata-level mutations grouped by direction (set / unset).
Wire-equivalent to full’s UpdateResult.modified_metadata.
Same empty-vec-omit convention as modified_sections.
prospective_hash: Option<String>Some(hash) on the dry_run path — the hash the entity
would have after the proposed write. None on real
updates (the post-write hash is in content_hash).
Wire-equivalent to full’s UpdateResult.prospective_hash.
orphan_stubs_removed: Vec<EntityId>Stub entities whose last incoming edge was severed by this
update — when a body wiki-link was removed, the alias-resync
drops the backing pointer-rel-type edge, and if that was the
stub target’s last referrer the stub is GC’d here. Empty on
updates that didn’t orphan a stub (including section edits with
no wiki-link change, dry-run, and no-op). Shares the field name
and always-present shape with
DeleteEntityOutcome::orphan_stubs_removed and
RelateEntityOutcome::orphan_stubs_removed so MCP / CLI
consumers branch uniformly across the three GC paths.
warnings: Vec<WarningHint>Typed non-fatal issues — empty on the unified path today
(update doesn’t surface InlineWikiLinkAutoStubbed or
MissingRequiredOutgoing yet). Wire-equivalent to full’s
UpdateResult.warnings; the field shape parity matters for
the upcoming handler migration so callers see the same
warnings: [] envelope position across flavours.
relations_declared: Vec<RelationDeclared>Batched relation declarations applied by this call (per the
optional declare_relations request param). Empty []
when no batched declarations were requested; populated with
one entry per declared relation otherwise. target_was_stubbed
flags which targets were absent at call time and got
auto-stubbed; agents use this to skip a follow-up
memstead_entity round-trip on the stubbed target.
Trait Implementations§
Source§impl Clone for UpdateEntityOutcome
impl Clone for UpdateEntityOutcome
Source§fn clone(&self) -> UpdateEntityOutcome
fn clone(&self) -> UpdateEntityOutcome
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 UpdateEntityOutcome
impl Debug for UpdateEntityOutcome
Auto Trait Implementations§
impl Freeze for UpdateEntityOutcome
impl RefUnwindSafe for UpdateEntityOutcome
impl Send for UpdateEntityOutcome
impl Sync for UpdateEntityOutcome
impl Unpin for UpdateEntityOutcome
impl UnsafeUnpin for UpdateEntityOutcome
impl UnwindSafe for UpdateEntityOutcome
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