Skip to main content

SymbolIndex

Struct SymbolIndex 

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

Symbol keys grouped by symbol name, built by the caller.

A key is <file path>#<qualified symbol name> — everything before the last # is taken as the defining file. resolve_call uses that to prefer nearby definitions, so a caller that builds keys in some other shape loses the same-file and same-directory tiers and falls back to repo-wide uniqueness.

Implementations§

Source§

impl SymbolIndex

Source

pub fn new() -> Self

Source

pub fn insert(&mut self, name: &str, key: &str)

Record that name is defined by the symbol at key. Inserting the same pair twice is a no-op, and the stored keys stay sorted, so the index does not depend on insertion order.

A method — a name qualified Type.method — is filed twice: under the name as written, and under the bare method. Source almost never writes the qualified form. store.flush() says flush after the receiver is stripped, and without the second entry no call on a receiver could ever reach a method definition. The two sets are kept apart because they carry different weight: see resolve_call, which consults the bare entries only where the tier itself is evidence.

Source

pub fn len(&self) -> usize

Number of distinct names in the index.

Source

pub fn is_empty(&self) -> bool

Trait Implementations§

Source§

impl Clone for SymbolIndex

Source§

fn clone(&self) -> Self

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 SymbolIndex

Source§

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

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

impl Default for SymbolIndex

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> 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 = !

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.