Skip to main content

MemoryGraphStore

Struct MemoryGraphStore 

Source
pub struct MemoryGraphStore { /* private fields */ }

Implementations§

Source§

impl MemoryGraphStore

Source

pub fn new() -> Self

Source

pub fn insert_raw_vertex(&mut self, vertex: Vertex) -> GraphStoreResult<()>

Insert a vertex into the global registry without attaching it to any graph. Used by the SQLite-backed store on hydration before membership is restored from the persisted catalog.

Source

pub fn insert_raw_edge(&mut self, edge: Edge) -> GraphStoreResult<()>

Insert an edge before graph memberships are restored. Endpoint validation is deferred until attach_edge, when the graph’s persisted label tombstones are available.

Source

pub fn attach_vertex( &mut self, vertex_id: VertexId, graph: &str, ) -> GraphStoreResult<()>

Attach a previously inserted vertex to the named graph. The graph must already exist (create_graph).

Source

pub fn attach_edge( &mut self, edge_id: EdgeId, graph: &str, ) -> GraphStoreResult<()>

Source

pub fn out_edge_ids_for_graph( &self, graph: &str, ) -> GraphStoreResult<BTreeSet<EdgeId>>

All edge ids that participate in graph, in stable id order. Helper for the SQLite-backed store’s bulk write paths.

Source

pub fn label_registry(&self, graph: &str) -> GraphLabelRegistry

Snapshot of the AGE label registry for graph (empty registry when the graph has never allocated an id).

Source

pub fn import_label_registry( &mut self, graph: &str, registry: &GraphLabelRegistry, )

Install (merge) a persisted label registry for graph. Existing in-memory state wins on conflicts except that the larger sequence / label-id watermarks are kept.

Source

pub fn rebuild_label_registry_from_ids(&mut self, graph: &str)

Re-derive the label registry of graph from the ids of the entities currently attached to it. Self-heals restored graphs whose registry metadata is missing: label_id = id >> 48.

Source

pub fn graph_labels(&self, graph: &str) -> GraphStoreResult<Vec<GraphLabelInfo>>

Every present ag_label entry of graph, in label-id order.

Source

pub fn graph_label_kind( &self, graph: &str, label: &str, ) -> GraphStoreResult<Option<LabelKind>>

The kind of label in graph, or None when the label is not registered there.

Source

pub fn create_label( &mut self, graph: &str, label: &str, kind: LabelKind, ) -> GraphStoreResult<Option<u32>>

Register an empty user label in graph (create_vlabel / create_elabel). Returns the label id, or None when a label of that name already exists in the graph. A missing default relation of the requested kind prevents new child labels, as it does in AGE.

Source

pub fn drop_label( &mut self, graph: &str, label: &str, ) -> GraphStoreResult<Option<(u32, LabelKind)>>

Drop a label from graph together with every entity that carries it (drop_label, which AGE implements as DROP TABLE on the label relation). Vertex rows are removed while incident rows in edge-label relations survive with dangling endpoint ids. A default label can be dropped only when no user label of that kind inherits from it. Returns the released label id and kind, or None when the label is not registered.

Source

pub fn rename_graph(&mut self, from: &str, to: &str) -> GraphStoreResult<()>

Rename graph from to to, carrying its partition, memberships, and label registry over. Fails when from is missing or to already exists.

Trait Implementations§

Source§

impl Clone for MemoryGraphStore

Source§

fn clone(&self) -> MemoryGraphStore

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MemoryGraphStore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MemoryGraphStore

Source§

fn default() -> MemoryGraphStore

Returns the “default value” for a type. Read more
Source§

impl GraphStore for MemoryGraphStore

Source§

fn create_graph(&mut self, name: &str)

Create a new named graph. No-op if it already exists.
Source§

fn drop_graph(&mut self, name: &str)

Drop a named graph and all of its membership entries. Vertex / edge records that aren’t referenced by any other graph become unreachable and are released.
Source§

fn graph_names(&self) -> Vec<String>

Return all graph names sorted ascending.
Source§

fn has_graph(&self, name: &str) -> bool

Source§

fn union_graphs( &mut self, g1: &str, g2: &str, target: &str, ) -> GraphStoreResult<()>

target := g1 union g2 over vertex and edge sets.
Source§

fn intersect_graphs( &mut self, g1: &str, g2: &str, target: &str, ) -> GraphStoreResult<()>

target := g1 intersect g2.
Source§

fn difference_graphs( &mut self, g1: &str, g2: &str, target: &str, ) -> GraphStoreResult<()>

target := g1 \ g2.
Source§

fn copy_graph(&mut self, source: &str, target: &str) -> GraphStoreResult<()>

Source§

fn add_vertex(&mut self, vertex: Vertex, graph: &str) -> GraphStoreResult<()>

Source§

fn add_edge(&mut self, edge: Edge, graph: &str) -> GraphStoreResult<()>

Source§

fn remove_vertex( &mut self, vertex_id: VertexId, graph: &str, ) -> GraphStoreResult<()>

Source§

fn remove_edge(&mut self, edge_id: EdgeId, graph: &str) -> GraphStoreResult<()>

Source§

fn neighbors( &self, vertex_id: VertexId, label: Option<&str>, direction: Direction, graph: &str, ) -> GraphStoreResult<Vec<VertexId>>

Neighbor vertex ids reached from vertex_id along edges with the given label (or any label when label is None) in the given direction.
Source§

fn vertices_by_label( &self, label: &str, graph: &str, ) -> GraphStoreResult<Vec<Vertex>>

Source§

fn vertex_ids_by_label( &self, label: &str, graph: &str, ) -> GraphStoreResult<Vec<VertexId>>

Return only the vertex ids for a label. Stores with a label index should override this to avoid materializing full vertices.
Source§

fn vertices_in_graph(&self, graph: &str) -> GraphStoreResult<Vec<Vertex>>

Source§

fn edges_in_graph(&self, graph: &str) -> GraphStoreResult<Vec<Edge>>

Source§

fn vertex_graphs(&self, vertex_id: VertexId) -> BTreeSet<String>

Source§

fn out_edge_ids( &self, vertex_id: VertexId, graph: &str, ) -> GraphStoreResult<BTreeSet<EdgeId>>

Source§

fn in_edge_ids( &self, vertex_id: VertexId, graph: &str, ) -> GraphStoreResult<BTreeSet<EdgeId>>

Source§

fn edge_ids_by_label( &self, label: &str, graph: &str, ) -> GraphStoreResult<BTreeSet<EdgeId>>

Source§

fn vertex_ids_in_graph( &self, graph: &str, ) -> GraphStoreResult<BTreeSet<VertexId>>

Source§

fn require_vertex_in_graph( &self, vertex_id: VertexId, graph: &str, ) -> GraphStoreResult<()>

Require an explicit query vertex to be a live member of graph. Implementations may override this with a cheaper membership lookup. Missing query input is distinct from a valid vertex with no edges and must not be reported as an empty neighborhood/path result.
Source§

fn degree_distribution( &self, graph: &str, ) -> GraphStoreResult<BTreeMap<VertexId, u64>>

Source§

fn label_degree(&self, label: &str, graph: &str) -> GraphStoreResult<f64>

Source§

fn vertex_label_counts( &self, graph: &str, ) -> GraphStoreResult<BTreeMap<String, u64>>

Source§

fn get_vertex(&self, vertex_id: VertexId) -> Option<&Vertex>

Source§

fn get_edge(&self, edge_id: EdgeId) -> Option<&Edge>

Source§

fn next_vertex_id(&mut self) -> GraphStoreResult<VertexId>

Returns and advances the next available vertex id.
Source§

fn next_edge_id(&mut self) -> GraphStoreResult<EdgeId>

Returns and advances the next available edge id.
Source§

fn allocate_vertex_id( &mut self, label: &str, graph: &str, ) -> GraphStoreResult<VertexId>

Allocate a vertex id for a new entity with label inside graph. Stores that implement the Apache AGE graphid scheme override this to return (label_id << 48) | sequence; the default falls back to the store-wide counter.
Source§

fn allocate_edge_id( &mut self, label: &str, graph: &str, ) -> GraphStoreResult<EdgeId>

Allocate an edge id for a new entity with label inside graph. See GraphStore::allocate_vertex_id.
Source§

fn clear(&mut self)

Source§

fn vertices(&self) -> BTreeMap<VertexId, Vertex>

Snapshot every vertex in the store, keyed by id. Mirrors the vertices property on the current abstract GraphStore.
Source§

fn edges(&self) -> BTreeMap<EdgeId, Edge>

Snapshot every edge in the store, keyed by id. Mirrors the edges property on the current abstract GraphStore.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.