pub struct RememberReport {
pub note: String,
pub created: usize,
pub matched: usize,
pub derived: usize,
pub provisional: Vec<String>,
pub provisional_capped: Vec<String>,
pub fulltext_declared: Vec<String>,
pub same_as: Vec<SameAsPair>,
pub same_as_lost: Vec<SameAsPair>,
}Expand description
Everything one remember call writes.
Fields§
§note: StringThe note’s key.
created: usizeEntities this call brought into existence.
matched: usizeabout keys and entities that already existed.
derived: usizeDerived edges the rules produced for this commit, incident on the
note — edges the engine’s rule provenance attributes to a rule,
never one this call inserted itself (ABOUT, a fact’s own edge, or a
provisional stub have no rule and never count here). memory_defaults()
ships with zero rules, so this is 0 against a plain memory store — and
it stays 0 with the identity preset applied: its SAME_AS rules link
entity labels, never a note, and are reported in
same_as instead. This field only moves once a rule
exists whose predicate can match the note itself — such as an
about_<label> rule ingest-git declared before 0.7, which derives the
note’s ABOUT edge (counted here, on the commit that derived it) in
place of the insert this call would otherwise make.
provisional: Vec<String>about keys and fact endpoints that had to be stubbed, in the order
each was first seen (about before facts).
provisional_capped: Vec<String>about keys and fact endpoints that would have been stubbed but were
refused instead — [MAX_PROVISIONAL_PER_COMMIT] was already spent by
the time this call reached them. Neither the node nor any edge naming
it exists; everything else in the call still committed. Empty on
every call this cap does not bind.
fulltext_declared: Vec<String>Entity labels full-text search had never seen before this call, now
declared on (label, "name") so recall can reach them — the same
self-declare Note.text gets, extended to entities[].label. Empty
on every call that named no unseen label, or that found
[MAX_FULLTEXT_PAIRS] already spent.
same_as: Vec<SameAsPair>SAME_AS claims this call created, between an entity or stub it
wrote and any other node — one entry per pair, whichever directions
the rules derived. Empty on a store without the identity preset
(memory_schema::memory_identity). This is what tells the caller its
extraction agreed with something the store already held.
same_as_lost: Vec<SameAsPair>SAME_AS claims this call retracted: pairs that linked an entity it
wrote before the commit and do not after it, each with the score it
had. aliases is recomputed from the key and the current name, so a
write that changes a name can take a full-name link below the floor,
and so can the first write to a node whose aliases held items its
key and name do not imply. Reported so a write that costs an identity
says so, rather than only naming what it gained.
Trait Implementations§
Source§impl Debug for RememberReport
impl Debug for RememberReport
Source§impl Default for RememberReport
impl Default for RememberReport
Auto Trait Implementations§
impl Freeze for RememberReport
impl RefUnwindSafe for RememberReport
impl Send for RememberReport
impl Sync for RememberReport
impl Unpin for RememberReport
impl UnsafeUnpin for RememberReport
impl UnwindSafe for RememberReport
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.