pub struct PatternContinuation {
pub target_shard: u32,
pub source_shard: u32,
pub bindings: HashMap<String, String>,
pub next_triple_idx: usize,
pub start_node: String,
pub start_binding: String,
}Expand description
A partial MATCH result that needs continuation on another shard.
Contains the current variable bindings and the index of the next
triple to execute in the pattern chain. The target shard resumes
from next_triple_idx using the provided bindings.
Fields§
§target_shard: u32Target shard that should continue execution.
source_shard: u32Source shard that generated this continuation.
bindings: HashMap<String, String>Current variable bindings (node_name → value).
next_triple_idx: usizeIndex of the next triple to execute in the chain.
start_node: StringThe ghost node name that the target shard should start from.
start_binding: StringThe binding variable name for the start node.
Implementations§
Source§impl PatternContinuation
impl PatternContinuation
Sourcepub fn from_resolved(args: ResolvedContinuationArgs) -> Self
pub fn from_resolved(args: ResolvedContinuationArgs) -> Self
Construct a continuation from its raw routing-resolved fields.
The Control Plane resolves target_shard (the owning vShard of the
frontier node) and source_shard (the vShard that emitted the frontier
entry) via its routing table, then assembles the continuation here. The
routing classification itself stays in the CP layer — nodedb-cluster
has no access to the routing table — but the field assembly lives with
the type so the shape cannot drift from the struct definition.
Trait Implementations§
Source§impl Clone for PatternContinuation
impl Clone for PatternContinuation
Source§fn clone(&self) -> PatternContinuation
fn clone(&self) -> PatternContinuation
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 PatternContinuation
impl Debug for PatternContinuation
Source§impl<'de> Deserialize<'de> for PatternContinuation
impl<'de> Deserialize<'de> for PatternContinuation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for PatternContinuation
impl<'__msgpack_de> FromMessagePack<'__msgpack_de> for PatternContinuation
Source§impl Serialize for PatternContinuation
impl Serialize for PatternContinuation
Auto Trait Implementations§
impl Freeze for PatternContinuation
impl RefUnwindSafe for PatternContinuation
impl Send for PatternContinuation
impl Sync for PatternContinuation
impl Unpin for PatternContinuation
impl UnsafeUnpin for PatternContinuation
impl UnwindSafe for PatternContinuation
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<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> FromMessagePackOwned for Twhere
T: for<'a> FromMessagePack<'a>,
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> 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.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.