pub struct InMemoryGraph { /* private fields */ }Implementations§
Source§impl InMemoryGraph
impl InMemoryGraph
pub fn new() -> Self
pub fn with_capacity_hint(_nodes: usize, _relationships: usize) -> Self
pub fn clear(&mut self)
pub fn contains_node(&self, node_id: NodeId) -> bool
pub fn contains_relationship(&self, rel_id: RelationshipId) -> bool
Trait Implementations§
Source§impl Clone for InMemoryGraph
impl Clone for InMemoryGraph
Source§fn clone(&self) -> InMemoryGraph
fn clone(&self) -> InMemoryGraph
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for InMemoryGraph
impl Debug for InMemoryGraph
Source§impl Default for InMemoryGraph
impl Default for InMemoryGraph
Source§fn default() -> InMemoryGraph
fn default() -> InMemoryGraph
Returns the “default value” for a type. Read more
Source§impl GraphStorage for InMemoryGraph
impl GraphStorage for InMemoryGraph
fn all_nodes(&self) -> Vec<NodeRecord>
fn nodes_by_label(&self, label: &str) -> Vec<NodeRecord>
Source§fn node_ref(&self, id: NodeId) -> Option<&NodeRecord>
fn node_ref(&self, id: NodeId) -> Option<&NodeRecord>
Borrow-based lookup. Required primitive;
node() defaults to
node_ref(id).cloned() so every implementation only has to supply the
borrow variant.Source§fn all_node_ids(&self) -> Vec<NodeId> ⓘ
fn all_node_ids(&self) -> Vec<NodeId> ⓘ
ID-only scan. Default falls back to cloning; implementations should
override for O(nodes) without cloning records/properties.
Source§fn node_ids_by_label(&self, label: &str) -> Vec<NodeId> ⓘ
fn node_ids_by_label(&self, label: &str) -> Vec<NodeId> ⓘ
Index lookup returning only IDs. Default falls back to cloning.
fn node_count(&self) -> usize
fn has_node(&self, id: NodeId) -> bool
fn all_relationships(&self) -> Vec<RelationshipRecord>
fn relationships_by_type(&self, rel_type: &str) -> Vec<RelationshipRecord>
fn relationship_ref(&self, id: RelationshipId) -> Option<&RelationshipRecord>
fn all_rel_ids(&self) -> Vec<RelationshipId> ⓘ
fn rel_ids_by_type(&self, rel_type: &str) -> Vec<RelationshipId> ⓘ
fn relationship_count(&self) -> usize
fn has_relationship(&self, id: RelationshipId) -> bool
fn all_labels(&self) -> Vec<String>
fn all_relationship_types(&self) -> Vec<String>
fn all_node_property_keys(&self) -> Vec<String>
fn all_relationship_property_keys(&self) -> Vec<String>
fn label_property_keys(&self, label: &str) -> Vec<String>
fn rel_type_property_keys(&self, rel_type: &str) -> Vec<String>
fn node_has_label(&self, node_id: NodeId, label: &str) -> bool
fn node_property(&self, node_id: NodeId, key: &str) -> Option<PropertyValue>
fn relationship_property( &self, rel_id: RelationshipId, key: &str, ) -> Option<PropertyValue>
fn expand( &self, node_id: NodeId, direction: Direction, types: &[String], ) -> Vec<(RelationshipRecord, NodeRecord)>
Source§fn expand_ids(
&self,
node_id: NodeId,
direction: Direction,
types: &[String],
) -> Vec<(RelationshipId, NodeId)>
fn expand_ids( &self, node_id: NodeId, direction: Direction, types: &[String], ) -> Vec<(RelationshipId, NodeId)>
Lightweight traversal used on hot paths: only returns
(RelationshipId, NodeId)
pairs, avoiding the record + property-map clones of expand(). Read morefn outgoing_relationships(&self, node_id: NodeId) -> Vec<RelationshipRecord>
fn incoming_relationships(&self, node_id: NodeId) -> Vec<RelationshipRecord>
Source§fn relationship_ids_of(
&self,
node_id: NodeId,
direction: Direction,
) -> Vec<RelationshipId> ⓘ
fn relationship_ids_of( &self, node_id: NodeId, direction: Direction, ) -> Vec<RelationshipId> ⓘ
ID-only variant of
relationships_of. Default uses expand_ids so
implementations without adjacency overrides still avoid record clones.fn degree(&self, node_id: NodeId, direction: Direction) -> usize
fn node(&self, id: NodeId) -> Option<NodeRecord>
fn relationship(&self, id: RelationshipId) -> Option<RelationshipRecord>
fn all_property_keys(&self) -> Vec<String>
fn has_label_name(&self, label: &str) -> bool
fn has_relationship_type_name(&self, rel_type: &str) -> bool
fn has_property_key(&self, key: &str) -> bool
fn label_has_property_key(&self, label: &str, key: &str) -> bool
fn rel_type_has_property_key(&self, rel_type: &str, key: &str) -> bool
fn node_labels(&self, node_id: NodeId) -> Option<Vec<String>>
fn node_properties(&self, node_id: NodeId) -> Option<Properties>
fn relationship_type(&self, rel_id: RelationshipId) -> Option<String>
fn relationship_properties(&self, rel_id: RelationshipId) -> Option<Properties>
fn relationship_endpoints( &self, rel_id: RelationshipId, ) -> Option<(NodeId, NodeId)>
fn relationship_source(&self, rel_id: RelationshipId) -> Option<NodeId>
fn relationship_target(&self, rel_id: RelationshipId) -> Option<NodeId>
fn other_node(&self, rel_id: RelationshipId, node_id: NodeId) -> Option<NodeId>
fn relationships_of( &self, node_id: NodeId, direction: Direction, ) -> Vec<RelationshipRecord>
fn expand_detailed( &self, node_id: NodeId, direction: Direction, types: &[String], ) -> Vec<ExpandedRelationship>
fn neighbors( &self, node_id: NodeId, direction: Direction, types: &[String], ) -> Vec<NodeRecord>
fn is_isolated(&self, node_id: NodeId) -> bool
fn find_nodes_by_property( &self, label: Option<&str>, key: &str, value: &PropertyValue, ) -> Vec<NodeRecord>
fn find_relationships_by_property( &self, rel_type: Option<&str>, key: &str, value: &PropertyValue, ) -> Vec<RelationshipRecord>
fn node_exists_with_label_and_property( &self, label: &str, key: &str, value: &PropertyValue, ) -> bool
fn relationship_exists_with_type_and_property( &self, rel_type: &str, key: &str, value: &PropertyValue, ) -> bool
Source§impl GraphStorageMut for InMemoryGraph
impl GraphStorageMut for InMemoryGraph
fn create_node( &mut self, labels: Vec<String>, properties: Properties, ) -> NodeRecord
fn create_relationship( &mut self, src: NodeId, dst: NodeId, rel_type: &str, properties: Properties, ) -> Option<RelationshipRecord>
fn set_node_property( &mut self, node_id: NodeId, key: String, value: PropertyValue, ) -> bool
fn remove_node_property(&mut self, node_id: NodeId, key: &str) -> bool
fn add_node_label(&mut self, node_id: NodeId, label: &str) -> bool
fn remove_node_label(&mut self, node_id: NodeId, label: &str) -> bool
fn set_relationship_property( &mut self, rel_id: RelationshipId, key: String, value: PropertyValue, ) -> bool
fn remove_relationship_property( &mut self, rel_id: RelationshipId, key: &str, ) -> bool
fn delete_relationship(&mut self, rel_id: RelationshipId) -> bool
Source§fn delete_node(&mut self, node_id: NodeId) -> bool
fn delete_node(&mut self, node_id: NodeId) -> bool
Returns false if the node still has attached relationships.
Source§fn detach_delete_node(&mut self, node_id: NodeId) -> bool
fn detach_delete_node(&mut self, node_id: NodeId) -> bool
Deletes the node and all attached relationships.
fn replace_node_properties( &mut self, node_id: NodeId, properties: Properties, ) -> bool
fn merge_node_properties( &mut self, node_id: NodeId, properties: Properties, ) -> bool
fn set_node_labels(&mut self, node_id: NodeId, labels: Vec<String>) -> bool
fn replace_relationship_properties( &mut self, rel_id: RelationshipId, properties: Properties, ) -> bool
fn merge_relationship_properties( &mut self, rel_id: RelationshipId, properties: Properties, ) -> bool
fn delete_relationships_of( &mut self, node_id: NodeId, direction: Direction, ) -> usize
fn get_or_create_node( &mut self, labels: Vec<String>, match_key: &str, match_value: &PropertyValue, init_properties: Properties, ) -> NodeRecord
Auto Trait Implementations§
impl Freeze for InMemoryGraph
impl RefUnwindSafe for InMemoryGraph
impl Send for InMemoryGraph
impl Sync for InMemoryGraph
impl Unpin for InMemoryGraph
impl UnsafeUnpin for InMemoryGraph
impl UnwindSafe for InMemoryGraph
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