Skip to main content

LinkGraph

Struct LinkGraph 

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

The citation graph extracted from a vault’s [[wikilinks]].

Maps note name → outgoing/incoming link sets, handles duplicate filenames across folders via path-based resolution, and retains a record-by-name map so LinkPredicate::Where can recurse the predicate into linked records.

Implementations§

Source§

impl LinkGraph

Source

pub fn build(records: &[Record]) -> Self

Build the link index from a set of records. All records must have raw_content loaded.

Source

pub fn build_with_root(records: &[Record], vault_root: Option<&Path>) -> Self

Build with a vault root for path resolution.

Source

pub fn record_by_name(&self, name: &str) -> Option<&Record>

Look up a record by its virtual name (filename without .md).

Source

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

Check if a filename has duplicates across folders.

Source

pub fn paths_for_name(&self, name: &str) -> Vec<&str>

Get all paths for a given filename.

Get outgoing links for a note.

Get incoming links (backlinks) for a note.

Source

pub fn outgoing_count(&self, name: &str) -> usize

Count of outgoing links.

Source

pub fn incoming_count(&self, name: &str) -> usize

Count of incoming links (backlinks).

Source

pub fn traverse( &self, start: &str, max_depth: usize, direction: Direction, ) -> Vec<(String, usize)>

BFS traversal from a starting note. Returns (name, depth) pairs for all reachable notes within max_depth, with the starting node included at depth 0.

Check if note from has an outgoing link to note to.

Check if note to has an incoming link from note from.

Source

pub fn unresolved(&self) -> Vec<UnresolvedLink>

All wikilinks pointing to non-existent records, returned as (source, target) pairs. Targets are normalised via the same folder-stripping rule used during graph construction.

Source

pub fn traverse_from( &self, start: &str, depth: usize, direction: Direction, ) -> Vec<String>

BFS traversal returning just the reachable note names (without depth). The starting note itself is NOT included.

Source

pub fn virtual_fields(&self, name: &str) -> Vec<(&'static str, Value)>

Get link data as Values for virtual fields on a record.

Trait Implementations§

Source§

impl Debug for LinkGraph

Source§

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

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

impl Default for LinkGraph

Source§

fn default() -> LinkGraph

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