pub struct RustCallGraphBuilder { /* private fields */ }Expand description
Builder for Rust-specific call graph analysis
Implementations§
Source§impl RustCallGraphBuilder
impl RustCallGraphBuilder
Sourcepub fn with_config(config: AnalysisConfig) -> Self
pub fn with_config(config: AnalysisConfig) -> Self
Create a builder with custom configuration
Sourcepub fn from_base_graph(base_graph: CallGraph) -> Self
pub fn from_base_graph(base_graph: CallGraph) -> Self
Start with an existing base call graph
Sourcepub fn analyze_basic_calls(
&mut self,
_file_path: &Path,
_ast: &File,
) -> Result<&mut Self>
pub fn analyze_basic_calls( &mut self, _file_path: &Path, _ast: &File, ) -> Result<&mut Self>
Phase 1: Analyze basic function calls (uses existing functionality)
Sourcepub fn analyze_trait_dispatch(
&mut self,
file_path: &Path,
ast: &File,
) -> Result<&mut Self>
pub fn analyze_trait_dispatch( &mut self, file_path: &Path, ast: &File, ) -> Result<&mut Self>
Phase 2: Analyze trait implementations and method dispatch
Sourcepub fn analyze_function_pointers(
&mut self,
file_path: &Path,
ast: &File,
) -> Result<&mut Self>
pub fn analyze_function_pointers( &mut self, file_path: &Path, ast: &File, ) -> Result<&mut Self>
Phase 3: Analyze function pointers and closures
Sourcepub fn analyze_framework_patterns(
&mut self,
file_path: &Path,
ast: &File,
) -> Result<&mut Self>
pub fn analyze_framework_patterns( &mut self, file_path: &Path, ast: &File, ) -> Result<&mut Self>
Phase 4: Detect framework patterns
Sourcepub fn analyze_cross_module(
&mut self,
workspace_files: &[(PathBuf, File)],
) -> Result<&mut Self>
pub fn analyze_cross_module( &mut self, workspace_files: &[(PathBuf, File)], ) -> Result<&mut Self>
Phase 5: Analyze cross-module dependencies
Sourcepub fn finalize_trait_analysis(&mut self) -> Result<()>
pub fn finalize_trait_analysis(&mut self) -> Result<()>
Finalize trait analysis after all files have been processed This should be called ONCE after all per-file analysis is complete
Sourcepub fn build(self) -> RustCallGraph
pub fn build(self) -> RustCallGraph
Complete the analysis and return the Rust-specific call graph
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RustCallGraphBuilder
impl RefUnwindSafe for RustCallGraphBuilder
impl Send for RustCallGraphBuilder
impl Sync for RustCallGraphBuilder
impl Unpin for RustCallGraphBuilder
impl UnsafeUnpin for RustCallGraphBuilder
impl UnwindSafe for RustCallGraphBuilder
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> EnsureExt<T> for T
impl<T> EnsureExt<T> for T
Source§fn ensure<P, E>(self, predicate: P, error: E) -> Validation<T, NonEmptyVec<E>>where
P: Predicate<T>,
fn ensure<P, E>(self, predicate: P, error: E) -> Validation<T, NonEmptyVec<E>>where
P: Predicate<T>,
Validate that this value satisfies the given predicate. Read more
Source§fn ensure_with<P, E, F>(
self,
predicate: P,
error_fn: F,
) -> Validation<T, NonEmptyVec<E>>
fn ensure_with<P, E, F>( self, predicate: P, error_fn: F, ) -> Validation<T, NonEmptyVec<E>>
Validate with an error-generating function. 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