pub struct SourceCursor {
pub union: Slice,
pub write_commands: Vec<SyncCommand>,
pub reseed: Vec<SyncCommand>,
pub no_signal: Vec<NoSignalNote>,
pub any_changes: bool,
pub degraded: bool,
pub dead_denies: Vec<String>,
pub dest_mem: String,
pub binding_id: String,
}Expand description
The combined source-cursor across a projection’s source facets — the
engine-side of the plugin’s cursor object that changedSliceBlock
consumes. Assembled by super::cursor::compute_source_cursor from the
per-facet super::slice::SliceOutcomes.
Fields§
§union: SliceThe combined changed slice across all source facets.
write_commands: Vec<SyncCommand>New-baseline commands for facets that changed.
reseed: Vec<SyncCommand>New-baseline commands for facets seen for the first time (reseed).
no_signal: Vec<NoSignalNote>Per-source no-signal notes — sources whose detection could not produce a
slice this pass (unscoped facet, signal:none, git failure, missing
graph snapshot). Rendered distinctly from changed/reseed; a
genuinely-unchanged source contributes nothing here, so an all-unchanged
brief still renders no preface (byte-identical to a plain roam).
any_changes: boolWhether any facet reported changes (drives the “source moved” copy).
degraded: boolWhether any facet’s slice was degraded (mtime memo miss → full scan).
dead_denies: Vec<String>Ingest deny_paths entries that matched no file anywhere the agent
can reach (the project tree). A zero-selecting deny is surfaced as a
rendered warning rather than silently no-op’ing — it catches typos and
un-migrated legacy bare names (which, as globs, match nothing). Never a
hard error: the ingest still runs, the entry just does nothing.
dest_mem: StringThe destination mem whose sync_state the baseline tokens live on.
binding_id: StringThe canonical binding id <mem>/<stem> (D3) — rendered into the
memstead projection advance <binding-id> … line the changed-slice
preface now emits instead of a raw mem set-sync-state command (D4/D7).
Trait Implementations§
Source§impl Clone for SourceCursor
impl Clone for SourceCursor
Source§fn clone(&self) -> SourceCursor
fn clone(&self) -> SourceCursor
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 SourceCursor
impl Debug for SourceCursor
impl Eq for SourceCursor
Source§impl PartialEq for SourceCursor
impl PartialEq for SourceCursor
impl StructuralPartialEq for SourceCursor
Auto Trait Implementations§
impl Freeze for SourceCursor
impl RefUnwindSafe for SourceCursor
impl Send for SourceCursor
impl Sync for SourceCursor
impl Unpin for SourceCursor
impl UnsafeUnpin for SourceCursor
impl UnwindSafe for SourceCursor
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