pub enum Value {
Node(Node),
Edge(Edge),
Property(Property),
List(Vec<Value>),
Map(HashMap<String, Value>),
Path {
nodes: Vec<Node>,
edges: Vec<Edge>,
},
Null,
}Variants§
Node(Node)
Edge(Edge)
Property(Property)
List(Vec<Value>)
Map(HashMap<String, Value>)
A Cypher map that can hold any Value — including graph
elements (Node, Edge, Path) which Property::Map
can’t represent. Only constructed by Expr::Map when one
of the entries evaluates to a non-Property shape
(e.g. {u: node_u}). Purely-scalar map literals still
lower to Value::Property(Property::Map(...)) so node /
edge property storage and the wire format stay
unchanged.
Path
A Cypher path — a materialized traversal produced by
MATCH p = (...)-[...]->(...). The invariant is
nodes.len() == edges.len() + 1; a zero-hop path
(MATCH p = (n)) has one node and zero edges. Stored
alongside the other Value variants (rather than inside
Property) because paths carry full Node/Edge values
which the backend-neutral Property type can’t hold.
Null
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Value
impl<'de> Deserialize<'de> for Value
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>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Value
Auto Trait Implementations§
impl Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnsafeUnpin for Value
impl UnwindSafe for Value
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
Mutably borrows from an owned value. Read more