pub struct SymbolTable {
pub span_to_symbol_id: HashMap<Span, SymbolId>,
pub symbol_id_to_span: SymbolIdToSpan,
pub reference_id_to_reference: ReferenceIdToReference,
pub span_to_reference_id: HashMap<Span, ReferenceId>,
pub symbol_id_to_references: HashMap<SymbolId, Vec<ReferenceId>>,
}Expand description
A symbol table is a data structure used by lsp servers to store information about symbols and references in a source file.
Fields§
§span_to_symbol_id: HashMap<Span, SymbolId>To find a SymbolId for a given code location.
symbol_id_to_span: SymbolIdToSpanTo retrieve the code location for a symbol.
reference_id_to_reference: ReferenceIdToReference§span_to_reference_id: HashMap<Span, ReferenceId>§symbol_id_to_references: HashMap<SymbolId, Vec<ReferenceId>>Implementations§
Source§impl SymbolTable
impl SymbolTable
pub fn add_symbol(&mut self, span: Span) -> SymbolId
pub fn add_reference(&mut self, span: Span, symbol_id: Option<SymbolId>)
Trait Implementations§
Source§impl Debug for SymbolTable
impl Debug for SymbolTable
Source§impl Default for SymbolTable
impl Default for SymbolTable
Source§fn default() -> SymbolTable
fn default() -> SymbolTable
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for SymbolTable
impl RefUnwindSafe for SymbolTable
impl Send for SymbolTable
impl Sync for SymbolTable
impl Unpin for SymbolTable
impl UnwindSafe for SymbolTable
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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