Skip to main content

EdgeKind

Enum EdgeKind 

Source
pub enum EdgeKind {
    Depends,
    RefCall,
    DefinesBinding,
    Exports,
    ResolvesTo,
    RefImports,
    IsImplementation,
    Overrides,
    FFICall,
}
Expand description

The kinds of edges supported in the Travsr multiplex graph.

Variants§

§

Depends

File / module import. Corresponds to Kythe %kythe/edge/depends.

§

RefCall

Call-site reference. Corresponds to Kythe %kythe/edge/ref/call.

§

DefinesBinding

Definition-binding edge (parent → child in the AST).

§

Exports

A symbol exported from a module.

§

ResolvesTo

An import node resolved to the file node it targets. Connects import:./foofile:foo.ts, enabling transitive caller traversal across file boundaries.

§

RefImports

Named import specifier reference emitted by the LSIF pipeline. Distinguishes semantic import references from file-level Depends edges.

§

IsImplementation

Class-to-interface implementation edge emitted by the LSIF pipeline.

§

Overrides

Method override edge emitted by the LSIF pipeline when a subclass method shadows a same-named method in the base class.

§

FFICall

Cross-language FFI call edge (RFC-005). Confidence lives on Edge.confidence so EdgeKind stays Copy. PPR weight: 0.85 (ADR-003 amendment, 2026-05-24).

Implementations§

Source§

impl EdgeKind

Source

pub fn as_str(self) -> &'static str

Stable string representation used as the storage key.

Source

pub fn ppr_weight(self) -> f32

PPR transition weight for this edge kind.

Weights encode the semantic importance of each edge type for Personalized PageRank: a higher weight means PPR mass flows more readily across edges of this kind, producing higher scores for reachable nodes.

§Rationale (DEBT-016 / ADR-003)
KindWeightReasoning
RefCall1.00Direct call — strongest semantic link
DefinesBinding0.70Parent→child definition — strong structural link
Exports0.60Exported API surface — important for callers
Depends0.50File import — broad but less targeted
ResolvesTo0.50Import→file resolution — same as Depends
RefImports0.40Named import specifier — narrower than file import
IsImplementation0.40Class implements interface — type-system link
Overrides0.30Method override — weakest semantic tie

Weights are normalised per-node at PPR iteration time so their absolute scale does not matter — only the ratios between kinds.

Source

pub fn from_str(s: &str) -> Option<Self>

Parse from the stable string representation.

Trait Implementations§

Source§

impl Clone for EdgeKind

Source§

fn clone(&self) -> EdgeKind

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 EdgeKind

Source§

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

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

impl<'de> Deserialize<'de> for EdgeKind

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Hash for EdgeKind

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for EdgeKind

Source§

fn eq(&self, other: &EdgeKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for EdgeKind

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for EdgeKind

Source§

impl Eq for EdgeKind

Source§

impl StructuralPartialEq for EdgeKind

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> 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> 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 = 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,