Skip to main content

GraphManager

Struct GraphManager 

Source
pub struct GraphManager { /* private fields */ }
Expand description

Owns a CsrGraph and provides high-level graph operations.

All methods take &self — internal RwLock handles concurrency.

Implementations§

Source§

impl GraphManager

Source

pub fn new() -> Self

Creates a new in-memory graph manager (no durability log).

Source

pub fn open(dir: &Path) -> MenteResult<Self>

Open a directory-backed graph manager.

Loads the last snapshot (graph.json) if present, replays the edge log (edges.jsonl) on top of it, and keeps the log open for appending, so graph mutations are crash-durable between snapshots.

Source

pub fn save(&self, dir: &Path) -> MenteResult<()>

Save a graph snapshot to the given directory and truncate the edge log.

Source

pub fn load(dir: &Path) -> MenteResult<Self>

Load the graph snapshot from the given directory (no durability log).

Prefer open(), which also replays and maintains the edge log.

Source

pub fn add_memory(&self, id: MemoryId)

Register a memory node in the graph.

Source

pub fn remove_memory(&self, id: MemoryId)

Remove a memory node and all its edges.

Source

pub fn add_relationship(&self, edge: &MemoryEdge) -> MenteResult<()>

Add a relationship (edge) between two memory nodes.

Source

pub fn get_context_subgraph( &self, center: MemoryId, depth: usize, ) -> (Vec<MemoryId>, Vec<MemoryEdge>)

Extract a context subgraph around a center node.

Source

pub fn propagate_belief_change( &self, id: MemoryId, new_confidence: f32, ) -> Vec<(MemoryId, f32)>

Propagate a confidence change through the graph.

Source

pub fn find_all_contradictions(&self, id: MemoryId) -> Vec<MemoryId>

Find all nodes that contradict the given node.

Source

pub fn compact(&self)

Merge the delta log into CSR/CSC compressed storage.

Source

pub fn strengthen_edge(&self, source: MemoryId, target: MemoryId, delta: f32)

Strengthen an edge weight (Hebbian learning: neurons that fire together wire together).

Source

pub fn read_graph(&self) -> RwLockReadGuard<'_, CsrGraph>

Access the underlying graph for read-only traversals.

Returns a read guard — hold it only briefly to avoid blocking writers.

Source

pub fn graph(&self) -> RwLockReadGuard<'_, CsrGraph>

Alias for read_graph() — backward compatible access to the CsrGraph.

Trait Implementations§

Source§

impl Default for GraphManager

Source§

fn default() -> Self

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

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more