1use bolt_proto_derive::*;
2
3use crate::value::{Node, UnboundRelationship, SIGNATURE_PATH};
4
5#[bolt_structure(SIGNATURE_PATH)]
6#[derive(Debug, Clone, Eq, PartialEq)]
7pub struct Path {
8 pub(crate) nodes: Vec<Node>,
9 pub(crate) relationships: Vec<UnboundRelationship>,
10 pub(crate) sequence: Vec<i64>,
11}
12
13impl Path {
14 pub fn new(
15 nodes: Vec<Node>,
16 relationships: Vec<UnboundRelationship>,
17 sequence: Vec<i64>,
18 ) -> Self {
19 Self {
20 nodes,
21 relationships,
22 sequence,
23 }
24 }
25
26 pub fn nodes(&self) -> &[Node] {
27 &self.nodes
28 }
29
30 pub fn relationships(&self) -> &[UnboundRelationship] {
31 &self.relationships
32 }
33
34 pub fn sequence(&self) -> &[i64] {
35 &self.sequence
36 }
37}