bolt-proto 0.12.0

Bolt protocol primitives: values, messages, and serialization / deserialization.
Documentation
use bolt_proto_derive::*;

use crate::value::{Node, UnboundRelationship, SIGNATURE_PATH};

#[bolt_structure(SIGNATURE_PATH)]
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Path {
    pub(crate) nodes: Vec<Node>,
    pub(crate) relationships: Vec<UnboundRelationship>,
    pub(crate) sequence: Vec<i64>,
}

impl Path {
    pub fn new(
        nodes: Vec<Node>,
        relationships: Vec<UnboundRelationship>,
        sequence: Vec<i64>,
    ) -> Self {
        Self {
            nodes,
            relationships,
            sequence,
        }
    }

    pub fn nodes(&self) -> &[Node] {
        &self.nodes
    }

    pub fn relationships(&self) -> &[UnboundRelationship] {
        &self.relationships
    }

    pub fn sequence(&self) -> &[i64] {
        &self.sequence
    }
}