pub struct ProjectIr {
pub files: Vec<FileIr>,
pub modules: Vec<ModuleIr>,
pub functions: Vec<FunctionIr>,
pub api_endpoints: Vec<ApiEndpointIr>,
pub external_apis: Vec<ExternalApiIr>,
pub edges: Vec<EdgeIr>,
pub classes: Vec<ClassIr>,
pub properties: Vec<PropertyIr>,
pub behaviours: Vec<BehaviourIr>,
pub callbacks: Vec<CallbackIr>,
}Expand description
Serialized, language-agnostic graph representation that can be written to disk and later consumed by a separate “graph loader” runtime.
This sits between the Tree-Sitter based parsing layer (which works on
ParsedFile + CST in memory) and the Neo4j integration layer (which
creates nodes and relationships in the database).
Fields§
§files: Vec<FileIr>§modules: Vec<ModuleIr>§functions: Vec<FunctionIr>§api_endpoints: Vec<ApiEndpointIr>§external_apis: Vec<ExternalApiIr>§edges: Vec<EdgeIr>§classes: Vec<ClassIr>C# / Java-style types (CRM-3595).
properties: Vec<PropertyIr>C# properties (CRM-3595).
behaviours: Vec<BehaviourIr>OTP/custom behaviour contracts (Erlang).
callbacks: Vec<CallbackIr>Callback contracts declared by behaviours.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ProjectIr
impl<'de> Deserialize<'de> for ProjectIr
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 ProjectIr
impl RefUnwindSafe for ProjectIr
impl Send for ProjectIr
impl Sync for ProjectIr
impl Unpin for ProjectIr
impl UnsafeUnpin for ProjectIr
impl UnwindSafe for ProjectIr
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