pub struct LoadedWorkspace {
pub workspace: Workspace,
pub diagnostics: Vec<Diagnostic>,
pub sources: SourceMap,
pub lints: LintScopes,
pub codegen_header: Option<String>,
pub report_scope: Option<PathBuf>,
}Expand description
The result of load_workspace: the salsa Workspace input, the
diagnostics the load accumulated, the interned path+text table the
diagnostics’ Spans point into (what the caller hands to
render), and the effective lint levels by
directory (ADR-0024 decision 10): one scope for the workspace root,
one per member, one for a standalone package, none in single-file mode.
The scope keys are the directories in the same path form as the file
paths in sources, so LintScopes::for_path resolves a recorded path.
Fields§
§workspace: Workspace§diagnostics: Vec<Diagnostic>§sources: SourceMap§lints: LintScopes§codegen_header: Option<String>The text of the file named by the root manifest’s [codegen] header-file, normalised by ridl_ir::codegen::normalise_header;
None when no file is named, when the file holds no text, and in
single-file mode.
report_scope: Option<PathBuf>The member directory the entry lies in, when the entry is inside a
member of the loaded workspace (find_root walked from the member to
its workspace, or the entry named a path below a member); None for
an entry at the workspace root, a standalone package, or single-file
mode. The whole workspace is loaded and checked either way; a command
that reports diagnostics reports only those under this directory
(ADR-0024 decision 9). The path is in the same form as the file paths
in sources.
Auto Trait Implementations§
impl Freeze for LoadedWorkspace
impl RefUnwindSafe for LoadedWorkspace
impl Send for LoadedWorkspace
impl Sync for LoadedWorkspace
impl Unpin for LoadedWorkspace
impl UnsafeUnpin for LoadedWorkspace
impl UnwindSafe for LoadedWorkspace
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> 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