Skip to main content

CppWorkspaceSource

Trait CppWorkspaceSource 

Source
pub trait CppWorkspaceSource {
    // Required methods
    fn import_statements(&self, file: &ProjectFile) -> Vec<String>;
    fn definitions_by_name(
        &self,
        token: QueryToken<'_>,
        name: &FqName,
    ) -> Vec<CodeUnit>;
    fn definitions_by_identifier(
        &self,
        token: QueryToken<'_>,
        name: &FqName,
    ) -> Vec<CodeUnit>;
}
Expand description

The workspace-wide questions a C++ scan asks of the dispatching analyzer rather than of the C++ analyzer.

import_statements is IAnalyzer’s raw #include lines. Definition reads also stay the dispatching analyzer’s job: the language crate can issue the core relational request but cannot own SQLite, and a mixed workspace must coordinate its language-local snapshots through MultiAnalyzer.

Required Methods§

Source

fn import_statements(&self, file: &ProjectFile) -> Vec<String>

The raw import (#include) lines recorded for file.

Source

fn definitions_by_name( &self, token: QueryToken<'_>, name: &FqName, ) -> Vec<CodeUnit>

Exact lookup for a name already carried as extractor-owned segments. Results are owned because the relational store, not a generation-wide Rust map, owns the rows.

Source

fn definitions_by_identifier( &self, token: QueryToken<'_>, name: &FqName, ) -> Vec<CodeUnit>

Identifier-bounded candidates for a structurally segmented source path whose intermediate kinds are not known until resolution.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§