pub struct SymbolIndex {
pub language: String,
pub total_lines: usize,
pub imports: Vec<ImportInfo>,
pub classes: Vec<ClassSymbol>,
pub functions: Vec<FunctionSymbol>,
pub type_aliases: Vec<(String, String)>,
}Expand description
Compact structural summary of a file — symbol-level view without the
per-function-body detail that analyze plugins need. Serves cha deps,
future LSP workspace-symbols, and anywhere a reader needs “what
classes/functions live here and how are they related” without caring
about complexity metrics or TypeRef origin resolution.
One-way derivable from SourceModel; cached separately so light
consumers don’t pay SourceModel’s deserialise cost.
Fields§
§language: String§total_lines: usize§imports: Vec<ImportInfo>§classes: Vec<ClassSymbol>§functions: Vec<FunctionSymbol>§type_aliases: Vec<(String, String)>(alias, original). Mirrors SourceModel.type_aliases.
Implementations§
Source§impl SymbolIndex
impl SymbolIndex
Sourcepub fn from_source_model(m: &SourceModel) -> Self
pub fn from_source_model(m: &SourceModel) -> Self
Project a SourceModel onto the symbol-level view. Cheap —
clones strings but no heavy structures.
Trait Implementations§
Source§impl Clone for SymbolIndex
impl Clone for SymbolIndex
Source§fn clone(&self) -> SymbolIndex
fn clone(&self) -> SymbolIndex
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SymbolIndex
impl Debug for SymbolIndex
Source§impl Default for SymbolIndex
impl Default for SymbolIndex
Source§fn default() -> SymbolIndex
fn default() -> SymbolIndex
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for SymbolIndex
impl<'de> Deserialize<'de> for SymbolIndex
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SymbolIndex
impl RefUnwindSafe for SymbolIndex
impl Send for SymbolIndex
impl Sync for SymbolIndex
impl Unpin for SymbolIndex
impl UnsafeUnpin for SymbolIndex
impl UnwindSafe for SymbolIndex
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
Set the “status” flags for the
self file descriptor. Read moreSource§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