pub struct CodeIR {
pub file_path: PathBuf,
pub module: Option<ModuleEntity>,
pub functions: Vec<FunctionEntity>,
pub classes: Vec<ClassEntity>,
pub traits: Vec<TraitEntity>,
pub calls: Vec<CallRelation>,
pub imports: Vec<ImportRelation>,
pub inheritance: Vec<InheritanceRelation>,
pub implementations: Vec<ImplementationRelation>,
}Expand description
Intermediate representation of extracted code
This is the bridge between language-specific AST and the CodeGraph database. Parsers extract entities and relationships into this IR, then the IR is inserted into the graph in a batch operation.
Fields§
§file_path: PathBufSource file path
module: Option<ModuleEntity>Module/file entity
functions: Vec<FunctionEntity>Extracted functions
classes: Vec<ClassEntity>Extracted classes
traits: Vec<TraitEntity>Extracted traits/interfaces
calls: Vec<CallRelation>Function call relationships
imports: Vec<ImportRelation>Import relationships
inheritance: Vec<InheritanceRelation>Inheritance relationships
implementations: Vec<ImplementationRelation>Implementation relationships
Implementations§
Source§impl CodeIR
impl CodeIR
Sourcepub fn entity_count(&self) -> usize
pub fn entity_count(&self) -> usize
Total number of entities
Sourcepub fn relationship_count(&self) -> usize
pub fn relationship_count(&self) -> usize
Total number of relationships
Sourcepub fn set_module(&mut self, module: ModuleEntity)
pub fn set_module(&mut self, module: ModuleEntity)
Add a module entity
Sourcepub fn add_function(&mut self, func: FunctionEntity)
pub fn add_function(&mut self, func: FunctionEntity)
Add a function
Sourcepub fn add_class(&mut self, class: ClassEntity)
pub fn add_class(&mut self, class: ClassEntity)
Add a class
Sourcepub fn add_trait(&mut self, trait_entity: TraitEntity)
pub fn add_trait(&mut self, trait_entity: TraitEntity)
Add a trait
Sourcepub fn add_call(&mut self, call: CallRelation)
pub fn add_call(&mut self, call: CallRelation)
Add a call relationship
Sourcepub fn add_import(&mut self, import: ImportRelation)
pub fn add_import(&mut self, import: ImportRelation)
Add an import relationship
Sourcepub fn add_inheritance(&mut self, inheritance: InheritanceRelation)
pub fn add_inheritance(&mut self, inheritance: InheritanceRelation)
Add an inheritance relationship
Sourcepub fn add_implementation(&mut self, implementation: ImplementationRelation)
pub fn add_implementation(&mut self, implementation: ImplementationRelation)
Add an implementation relationship
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CodeIR
impl RefUnwindSafe for CodeIR
impl Send for CodeIR
impl Sync for CodeIR
impl Unpin for CodeIR
impl UnwindSafe for CodeIR
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