Trait Graph

Source
pub trait Graph {
    type NodeId: Debug + Hash + Eq + ?Sized;
    type NodeLabel: Display + ?Sized;
    type RelationshipType: Display + ?Sized;
    type PropertyKey: Display + ?Sized;
    type PropertyValue: Display + ?Sized;

    // Required methods
    fn nodes(&self) -> NodesIterator<'_, &Self::NodeId>;
    fn node_labels(
        &self,
        node_id: &Self::NodeId,
    ) -> LabelIterator<'_, &Self::NodeLabel>;
    fn node_properties(
        &self,
        node_id: &Self::NodeId,
    ) -> PropertyIterator<'_, &Self::PropertyKey, &Self::PropertyValue>;
    fn outgoing_relationships<'a, 'b: 'a>(
        &'a self,
        node_id: &'b Self::NodeId,
    ) -> PropertyIterator<'_, (&'a Self::NodeId, &'a Self::RelationshipType), PropertyIterator<'_, &'a Self::PropertyKey, &'a Self::PropertyValue>>;
    fn incoming_relationships<'a, 'b: 'a>(
        &'a self,
        node_id: &'b Self::NodeId,
    ) -> PropertyIterator<'_, (&'a Self::NodeId, &'a Self::RelationshipType), PropertyIterator<'_, &'a Self::PropertyKey, &'a Self::PropertyValue>>;
}

Required Associated Types§

Required Methods§

Source

fn nodes(&self) -> NodesIterator<'_, &Self::NodeId>

Source

fn node_labels( &self, node_id: &Self::NodeId, ) -> LabelIterator<'_, &Self::NodeLabel>

Source

fn node_properties( &self, node_id: &Self::NodeId, ) -> PropertyIterator<'_, &Self::PropertyKey, &Self::PropertyValue>

Source

fn outgoing_relationships<'a, 'b: 'a>( &'a self, node_id: &'b Self::NodeId, ) -> PropertyIterator<'_, (&'a Self::NodeId, &'a Self::RelationshipType), PropertyIterator<'_, &'a Self::PropertyKey, &'a Self::PropertyValue>>

Source

fn incoming_relationships<'a, 'b: 'a>( &'a self, node_id: &'b Self::NodeId, ) -> PropertyIterator<'_, (&'a Self::NodeId, &'a Self::RelationshipType), PropertyIterator<'_, &'a Self::PropertyKey, &'a Self::PropertyValue>>

Implementors§