pub enum ProjectionKnob {
NodeLabels,
EdgeTypes,
WeightProperty,
IncludeReverse,
NodeProperties,
EdgeProperties,
CypherNodeQuery,
CypherEdgeQuery,
CypherWeightColumn,
NamedGraph,
}Expand description
Every graph-projection knob, enumerated so the guest/native surface contract
is checked at compile time: adding a knob forces a classification in
ProjectionKnob::reach and a key in ProjectionKnob::config_key (both
wildcard-free matches), mirroring the capability
every_variant_classified_exactly_once exhaustiveness test. This is the
anti-drift guard for the guest/native gap issue #151 exposed. See
docs/proposals/graphcompute_projection_parity_2026-07-19.md §4.
Variants§
NodeLabels
Scope to these vertex labels (nodeLabels).
EdgeTypes
Scope to these edge types (edgeTypes / relationshipTypes).
WeightProperty
Bind an edge property as the traversal weight (weightProperty).
IncludeReverse
Also build inbound adjacency (includeReverse).
NodeProperties
Materialize per-vertex property tensors (nodeProperties).
EdgeProperties
Materialize per-edge property tensors (edgeProperties).
CypherNodeQuery
Cypher-mode node selection query (nodeQuery).
CypherEdgeQuery
Cypher-mode edge selection query (edgeQuery).
CypherWeightColumn
Cypher-mode weight column (weightColumn).
NamedGraph
Named pre-registered projection (name).
Implementations§
Source§impl ProjectionKnob
impl ProjectionKnob
Sourcepub const ALL: &'static [ProjectionKnob]
pub const ALL: &'static [ProjectionKnob]
Every knob, the single source of truth the exhaustiveness test iterates.
Sourcepub fn config_key(self) -> &'static str
pub fn config_key(self) -> &'static str
The graphRef config key for this knob. Wildcard-free: a new variant fails to compile here until it is given a key.
Trait Implementations§
Source§impl Clone for ProjectionKnob
impl Clone for ProjectionKnob
Source§fn clone(&self) -> ProjectionKnob
fn clone(&self) -> ProjectionKnob
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ProjectionKnob
Source§impl Debug for ProjectionKnob
impl Debug for ProjectionKnob
impl Eq for ProjectionKnob
Source§impl PartialEq for ProjectionKnob
impl PartialEq for ProjectionKnob
impl StructuralPartialEq for ProjectionKnob
Auto Trait Implementations§
impl Freeze for ProjectionKnob
impl RefUnwindSafe for ProjectionKnob
impl Send for ProjectionKnob
impl Sync for ProjectionKnob
impl Unpin for ProjectionKnob
impl UnsafeUnpin for ProjectionKnob
impl UnwindSafe for ProjectionKnob
Blanket Implementations§
impl<T> Allocation for T
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,
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.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§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