pub struct CoAccessGraph { /* private fields */ }Expand description
Persistent, decaying co-access graph for one project.
Implementations§
Source§impl CoAccessGraph
impl CoAccessGraph
Sourcepub fn record(&mut self, files: &[String])
pub fn record(&mut self, files: &[String])
Reinforce the mutual association of every pair in files (LTP) after
decaying the whole graph one step (global forgetting). Self-pairs and
duplicates are ignored. Bounded work: at most MAX_RECORD_FILES² pairs.
Sourcepub fn record_focus(&mut self, focus: &str, others: &[String])
pub fn record_focus(&mut self, focus: &str, others: &[String])
Reinforce the association of focus with each file in others — a
star, not a clique — after one global decay step.
This is the right model for streaming access where one new file enters
the working set (e.g. each ctx_read): it associates the newcomer with
the recent set without re-reinforcing the already-known pairs among
others (which CoAccessGraph::record would, biasing toward early files).
Files most strongly associated with file, strongest first.
Sourcepub fn canonical_edges(
&self,
min_weight: f64,
max_edges: usize,
) -> Vec<(String, String, f64)>
pub fn canonical_edges( &self, min_weight: f64, max_edges: usize, ) -> Vec<(String, String, f64)>
Canonical undirected co-access edges (from, to, weight) with
from <= to, strongest first, weights >= min_weight, capped at
max_edges. The graph is symmetric by construction, but asymmetric
pruning can leave the two directions with slightly different weights, so
the stronger direction wins. Deterministic order (weight desc, then path).
Trait Implementations§
Source§impl Clone for CoAccessGraph
impl Clone for CoAccessGraph
Source§fn clone(&self) -> CoAccessGraph
fn clone(&self) -> CoAccessGraph
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CoAccessGraph
impl Debug for CoAccessGraph
Source§impl Default for CoAccessGraph
impl Default for CoAccessGraph
Source§fn default() -> CoAccessGraph
fn default() -> CoAccessGraph
Source§impl<'de> Deserialize<'de> for CoAccessGraph
impl<'de> Deserialize<'de> for CoAccessGraph
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for CoAccessGraph
impl RefUnwindSafe for CoAccessGraph
impl Send for CoAccessGraph
impl Sync for CoAccessGraph
impl Unpin for CoAccessGraph
impl UnsafeUnpin for CoAccessGraph
impl UnwindSafe for CoAccessGraph
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more