pub struct SimpleParserDatabase { /* private fields */ }
Expand description
A salsa database for parsing only.
Implementations§
Source§impl SimpleParserDatabase
impl SimpleParserDatabase
Sourcepub fn parse_virtual(
&self,
content: impl ToString,
) -> Result<SyntaxNode, Diagnostics<ParserDiagnostic>>
pub fn parse_virtual( &self, content: impl ToString, ) -> Result<SyntaxNode, Diagnostics<ParserDiagnostic>>
Parses new file and returns its syntax root.
This is similar to Self::parse_virtual_with_diagnostics, but is more ergonomic in cases when exact diagnostics do not matter at the usage place. If the parser has emitted error diagnostics, this function will return an error. If no error diagnostics has been emitted, the syntax root will be returned.
Sourcepub fn parse_virtual_with_diagnostics(
&self,
content: impl ToString,
) -> (SyntaxNode, Diagnostics<ParserDiagnostic>)
pub fn parse_virtual_with_diagnostics( &self, content: impl ToString, ) -> (SyntaxNode, Diagnostics<ParserDiagnostic>)
Parses new file and return its syntax root with diagnostics.
This function creates new virtual file with the given content and parses it. Diagnostics gathered by the parser are returned alongside the result.
Trait Implementations§
Source§impl Database for SimpleParserDatabase
impl Database for SimpleParserDatabase
Source§fn salsa_event(&self, event_fn: Event)
fn salsa_event(&self, event_fn: Event)
This function is invoked at key points in the salsa
runtime. It permits the database to be customized and to
inject logging or other custom behavior.
Source§fn unwind_if_cancelled(&self)
fn unwind_if_cancelled(&self)
Starts unwinding the stack if the current revision is cancelled. Read more
Source§fn salsa_runtime(&self) -> &Runtime
fn salsa_runtime(&self) -> &Runtime
Gives access to the underlying salsa runtime. Read more
Source§fn salsa_runtime_mut(&mut self) -> &mut Runtime
fn salsa_runtime_mut(&mut self) -> &mut Runtime
Gives access to the underlying salsa runtime. Read more
Source§impl DatabaseOps for SimpleParserDatabase
impl DatabaseOps for SimpleParserDatabase
Source§fn ops_database(&self) -> &dyn Database
fn ops_database(&self) -> &dyn Database
Upcast this type to a
dyn Database
.Source§fn ops_salsa_runtime(&self) -> &Runtime
fn ops_salsa_runtime(&self) -> &Runtime
Gives access to the underlying salsa runtime.
Source§fn ops_salsa_runtime_mut(&mut self) -> &mut Runtime
fn ops_salsa_runtime_mut(&mut self) -> &mut Runtime
Gives access to the underlying salsa runtime.
Source§fn fmt_index(&self, input: DatabaseKeyIndex, fmt: &mut Formatter<'_>) -> Result
fn fmt_index(&self, input: DatabaseKeyIndex, fmt: &mut Formatter<'_>) -> Result
Formats a database key index in a human readable fashion.
Source§fn maybe_changed_after(
&self,
input: DatabaseKeyIndex,
revision: Revision,
) -> bool
fn maybe_changed_after( &self, input: DatabaseKeyIndex, revision: Revision, ) -> bool
True if the computed value for
input
may have changed since revision
.Source§fn cycle_recovery_strategy(
&self,
input: DatabaseKeyIndex,
) -> CycleRecoveryStrategy
fn cycle_recovery_strategy( &self, input: DatabaseKeyIndex, ) -> CycleRecoveryStrategy
Find the
CycleRecoveryStrategy
for a given input.Source§fn for_each_query(&self, op: &mut dyn FnMut(&dyn QueryStorageMassOps))
fn for_each_query(&self, op: &mut dyn FnMut(&dyn QueryStorageMassOps))
Executes the callback for each kind of query.
Source§impl DatabaseStorageTypes for SimpleParserDatabase
impl DatabaseStorageTypes for SimpleParserDatabase
Source§type DatabaseStorage = __SalsaDatabaseStorage
type DatabaseStorage = __SalsaDatabaseStorage
Defines the “storage type”, where all the query data is kept.
This type is defined by the
database_storage
macro.Source§impl Default for SimpleParserDatabase
impl Default for SimpleParserDatabase
Source§impl ExternalFiles for SimpleParserDatabase
impl ExternalFiles for SimpleParserDatabase
Source§fn ext_as_virtual(&self, _external_id: InternId) -> VirtualFile
fn ext_as_virtual(&self, _external_id: InternId) -> VirtualFile
Returns the virtual file matching the external id.
Source§impl HasQueryGroup<FilesDatabase> for SimpleParserDatabase
impl HasQueryGroup<FilesDatabase> for SimpleParserDatabase
Source§fn group_storage(&self) -> &<FilesDatabase as QueryGroup>::GroupStorage
fn group_storage(&self) -> &<FilesDatabase as QueryGroup>::GroupStorage
Access the group storage struct from the database.
Source§fn group_storage_mut(
&mut self,
) -> (&<FilesDatabase as QueryGroup>::GroupStorage, &mut Runtime)
fn group_storage_mut( &mut self, ) -> (&<FilesDatabase as QueryGroup>::GroupStorage, &mut Runtime)
Access the group storage struct from the database.
Also returns a ref to the
Runtime
, since otherwise
the database is borrowed and one cannot get access to it.Source§impl HasQueryGroup<ParserDatabase> for SimpleParserDatabase
impl HasQueryGroup<ParserDatabase> for SimpleParserDatabase
Source§fn group_storage(&self) -> &<ParserDatabase as QueryGroup>::GroupStorage
fn group_storage(&self) -> &<ParserDatabase as QueryGroup>::GroupStorage
Access the group storage struct from the database.
Source§fn group_storage_mut(
&mut self,
) -> (&<ParserDatabase as QueryGroup>::GroupStorage, &mut Runtime)
fn group_storage_mut( &mut self, ) -> (&<ParserDatabase as QueryGroup>::GroupStorage, &mut Runtime)
Access the group storage struct from the database.
Also returns a ref to the
Runtime
, since otherwise
the database is borrowed and one cannot get access to it.Source§impl HasQueryGroup<SyntaxDatabase> for SimpleParserDatabase
impl HasQueryGroup<SyntaxDatabase> for SimpleParserDatabase
Source§fn group_storage(&self) -> &<SyntaxDatabase as QueryGroup>::GroupStorage
fn group_storage(&self) -> &<SyntaxDatabase as QueryGroup>::GroupStorage
Access the group storage struct from the database.
Source§fn group_storage_mut(
&mut self,
) -> (&<SyntaxDatabase as QueryGroup>::GroupStorage, &mut Runtime)
fn group_storage_mut( &mut self, ) -> (&<SyntaxDatabase as QueryGroup>::GroupStorage, &mut Runtime)
Access the group storage struct from the database.
Also returns a ref to the
Runtime
, since otherwise
the database is borrowed and one cannot get access to it.Source§impl Upcast<dyn FilesGroup> for SimpleParserDatabase
impl Upcast<dyn FilesGroup> for SimpleParserDatabase
fn upcast(&self) -> &(dyn FilesGroup + 'static)
Source§impl Upcast<dyn SyntaxGroup> for SimpleParserDatabase
impl Upcast<dyn SyntaxGroup> for SimpleParserDatabase
fn upcast(&self) -> &(dyn SyntaxGroup + 'static)
Auto Trait Implementations§
impl !Freeze for SimpleParserDatabase
impl RefUnwindSafe for SimpleParserDatabase
impl Send for SimpleParserDatabase
impl !Sync for SimpleParserDatabase
impl Unpin for SimpleParserDatabase
impl UnwindSafe for SimpleParserDatabase
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<DB> FilesGroup for DB
impl<DB> FilesGroup for DB
fn intern_crate(&self, crt: CrateLongId) -> CrateId
fn lookup_intern_crate(&self, key: CrateId) -> CrateLongId
fn intern_file(&self, file: FileLongId) -> FileId
fn lookup_intern_file(&self, key: FileId) -> FileLongId
fn intern_flag(&self, flag: FlagLongId) -> FlagId
fn lookup_intern_flag(&self, key: FlagId) -> FlagLongId
Source§fn crate_configs(&self) -> Arc<OrderedHashMap<CrateId, CrateConfiguration>>
fn crate_configs(&self) -> Arc<OrderedHashMap<CrateId, CrateConfiguration>>
Main input of the project. Lists all the crates configurations.
Source§fn set_crate_configs(
&mut self,
value__: Arc<OrderedHashMap<CrateId, CrateConfiguration>>,
)
fn set_crate_configs( &mut self, value__: Arc<OrderedHashMap<CrateId, CrateConfiguration>>, )
Set the value of the
crate_configs
input. Read moreSource§fn set_crate_configs_with_durability(
&mut self,
value__: Arc<OrderedHashMap<CrateId, CrateConfiguration>>,
durability__: Durability,
)
fn set_crate_configs_with_durability( &mut self, value__: Arc<OrderedHashMap<CrateId, CrateConfiguration>>, durability__: Durability, )
Set the value of the
crate_configs
input with a
specific durability instead of the default of
Durability::LOW
. You can use Durability::MAX
to promise that its value will never change again. Read moreSource§fn file_overrides(&self) -> Arc<OrderedHashMap<FileId, Arc<str>>>
fn file_overrides(&self) -> Arc<OrderedHashMap<FileId, Arc<str>>>
Overrides for file content. Mostly used by language server and tests.
TODO(spapini): Currently, when this input changes, all the file_content() queries will
be invalidated.
Change this mechanism to hold file_overrides on the db struct outside salsa mechanism,
and invalidate manually.
Source§fn set_file_overrides(&mut self, value__: Arc<OrderedHashMap<FileId, Arc<str>>>)
fn set_file_overrides(&mut self, value__: Arc<OrderedHashMap<FileId, Arc<str>>>)
Set the value of the
file_overrides
input. Read moreSource§fn set_file_overrides_with_durability(
&mut self,
value__: Arc<OrderedHashMap<FileId, Arc<str>>>,
durability__: Durability,
)
fn set_file_overrides_with_durability( &mut self, value__: Arc<OrderedHashMap<FileId, Arc<str>>>, durability__: Durability, )
Set the value of the
file_overrides
input with a
specific durability instead of the default of
Durability::LOW
. You can use Durability::MAX
to promise that its value will never change again. Read moreSource§fn set_flags(&mut self, value__: Arc<OrderedHashMap<FlagId, Arc<Flag>>>)
fn set_flags(&mut self, value__: Arc<OrderedHashMap<FlagId, Arc<Flag>>>)
Set the value of the
flags
input. Read moreSource§fn set_flags_with_durability(
&mut self,
value__: Arc<OrderedHashMap<FlagId, Arc<Flag>>>,
durability__: Durability,
)
fn set_flags_with_durability( &mut self, value__: Arc<OrderedHashMap<FlagId, Arc<Flag>>>, durability__: Durability, )
Set the value of the
flags
input with a
specific durability instead of the default of
Durability::LOW
. You can use Durability::MAX
to promise that its value will never change again. Read moreSource§fn set_cfg_set_with_durability(
&mut self,
value__: Arc<CfgSet>,
durability__: Durability,
)
fn set_cfg_set_with_durability( &mut self, value__: Arc<CfgSet>, durability__: Durability, )
Set the value of the
cfg_set
input with a
specific durability instead of the default of
Durability::LOW
. You can use Durability::MAX
to promise that its value will never change again. Read moreSource§fn crate_config(&self, crate_id: CrateId) -> Option<CrateConfiguration>
fn crate_config(&self, crate_id: CrateId) -> Option<CrateConfiguration>
Configuration of the crate.
Source§fn priv_raw_file_content(&self, file_id: FileId) -> Option<Arc<str>>
fn priv_raw_file_content(&self, file_id: FileId) -> Option<Arc<str>>
Query for raw file contents. Private.
Source§fn file_content(&self, file_id: FileId) -> Option<Arc<str>>
fn file_content(&self, file_id: FileId) -> Option<Arc<str>>
Query for the file contents. This takes overrides into consideration.
fn file_summary(&self, file_id: FileId) -> Option<Arc<FileSummary>>
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 moreSource§impl<DB> ParserGroup for DBwhere
DB: SyntaxGroup + Upcast<dyn SyntaxGroup> + FilesGroup + Database + HasQueryGroup<ParserDatabase>,
impl<DB> ParserGroup for DBwhere
DB: SyntaxGroup + Upcast<dyn SyntaxGroup> + FilesGroup + Database + HasQueryGroup<ParserDatabase>,
Source§fn priv_file_syntax_data(&self, file_id: FileId) -> SyntaxData
fn priv_file_syntax_data(&self, file_id: FileId) -> SyntaxData
Should only be used internally.
Parses a file and returns the result and the generated ParserDiagnostic.
Source§fn file_syntax(&self, file_id: FileId) -> Result<SyntaxNode, DiagnosticAdded>
fn file_syntax(&self, file_id: FileId) -> Result<SyntaxNode, DiagnosticAdded>
Parses a file and returns its SyntaxNode.
Source§fn file_module_syntax(
&self,
file_id: FileId,
) -> Result<SyntaxFile, DiagnosticAdded>
fn file_module_syntax( &self, file_id: FileId, ) -> Result<SyntaxFile, DiagnosticAdded>
Parses a file and returns its AST as a root SyntaxFile.
Source§fn file_expr_syntax(&self, file_id: FileId) -> Result<Expr, DiagnosticAdded>
fn file_expr_syntax(&self, file_id: FileId) -> Result<Expr, DiagnosticAdded>
Parses a file and returns its AST as an expression.
Source§fn file_syntax_diagnostics(
&self,
file_id: FileId,
) -> Diagnostics<ParserDiagnostic>
fn file_syntax_diagnostics( &self, file_id: FileId, ) -> Diagnostics<ParserDiagnostic>
Returns the parser diagnostics for this file.
Source§impl<DB> SyntaxGroup for DB
impl<DB> SyntaxGroup for DB
fn intern_green(&self, field: Arc<GreenNode>) -> GreenId
fn lookup_intern_green(&self, key: GreenId) -> Arc<GreenNode>
fn intern_stable_ptr(&self, field: SyntaxStablePtr) -> SyntaxStablePtrId
fn lookup_intern_stable_ptr(&self, key: SyntaxStablePtrId) -> SyntaxStablePtr
Source§fn get_children(&self, node: SyntaxNode) -> Arc<[SyntaxNode]>
fn get_children(&self, node: SyntaxNode) -> Arc<[SyntaxNode]>
Returns the children of the given node.