pub struct FunctionSymbol {
pub name: String,
pub is_exported: bool,
pub parameter_count: usize,
pub called_functions: Vec<String>,
pub start_line: usize,
pub end_line: usize,
pub name_col: usize,
pub name_end_col: usize,
pub parameter_type_names: Vec<String>,
pub parameter_names: Vec<String>,
pub return_type_name: Option<String>,
pub switch_arm_values: Vec<ArmValue>,
}Expand description
Symbol-level view of a function — name + signature + call-graph input.
Omits body_hash, complexity, cognitive, external_refs, chain_depth,
parameter_types (TypeRef), return_type — those live in FunctionInfo
for analyze plugins.
Fields§
§name: String§is_exported: bool§parameter_count: usize§called_functions: Vec<String>§start_line: usize§end_line: usize§name_col: usize§name_end_col: usize§parameter_type_names: Vec<String>Bare type names (no module prefix, no origin info) for each parameter in declaration order. Sufficient for signature-based clustering (C OOP attribution, call-graph refinement) without pulling in TypeRef’s origin resolution, which is analyze-only.
parameter_names: Vec<String>Parameter identifier names, parallel to parameter_type_names.
Empty string for anonymous params (C void foo(int);). Enables
name-semantic views (e.g. LSP hover “email: String”) without
loading the full SourceModel.
return_type_name: Option<String>Bare return type name (same conventions as parameter_type_names);
None if the function has no declared return type.
switch_arm_values: Vec<ArmValue>Mirror of FunctionInfo.switch_arm_values. Enables LSP / summary
tools to recognise stringly-typed dispatchers without loading
the full source model.
Implementations§
Source§impl FunctionSymbol
impl FunctionSymbol
pub fn from_function_info(f: &FunctionInfo) -> Self
Trait Implementations§
Source§impl Clone for FunctionSymbol
impl Clone for FunctionSymbol
Source§fn clone(&self) -> FunctionSymbol
fn clone(&self) -> FunctionSymbol
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FunctionSymbol
impl Debug for FunctionSymbol
Source§impl Default for FunctionSymbol
impl Default for FunctionSymbol
Source§fn default() -> FunctionSymbol
fn default() -> FunctionSymbol
Source§impl<'de> Deserialize<'de> for FunctionSymbol
impl<'de> Deserialize<'de> for FunctionSymbol
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>,
Auto Trait Implementations§
impl Freeze for FunctionSymbol
impl RefUnwindSafe for FunctionSymbol
impl Send for FunctionSymbol
impl Sync for FunctionSymbol
impl Unpin for FunctionSymbol
impl UnsafeUnpin for FunctionSymbol
impl UnwindSafe for FunctionSymbol
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
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,
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,
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>
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>
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