pub struct Db { /* private fields */ }
Trait Implementations§
Source§impl Database for Db
impl Database for Db
§fn sweep_all(&self, strategy: SweepStrategy)
fn sweep_all(&self, strategy: SweepStrategy)
Iterates through all query storage and removes any values that
have not been used since the last revision was created. The
intended use-cycle is that you first execute all of your
“main” queries; this will ensure that all query values they
consume are marked as used. You then invoke this method to
remove other values that were not needed for your main query
results.
§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.
§fn on_propagated_panic(&self) -> !
fn on_propagated_panic(&self) -> !
This function is invoked when a dependent query is being computed by the
other thread, and that thread panics.
§fn salsa_runtime(&self) -> &Runtime
fn salsa_runtime(&self) -> &Runtime
Gives access to the underlying salsa runtime.
§fn salsa_runtime_mut(&mut self) -> &mut Runtime
fn salsa_runtime_mut(&mut self) -> &mut Runtime
Gives access to the underlying salsa runtime.
Source§impl DatabaseOps for Db
impl DatabaseOps for Db
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_since(
&self,
input: DatabaseKeyIndex,
revision: Revision,
) -> bool
fn maybe_changed_since( &self, input: DatabaseKeyIndex, revision: Revision, ) -> bool
True if the computed value for
input
may have changed since revision
.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 Db
impl DatabaseStorageTypes for Db
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 HasQueryGroup<AnalyzerDbStorage> for Db
impl HasQueryGroup<AnalyzerDbStorage> for Db
Source§fn group_storage(&self) -> &<AnalyzerDbStorage as QueryGroup>::GroupStorage
fn group_storage(&self) -> &<AnalyzerDbStorage as QueryGroup>::GroupStorage
Access the group storage struct from the database.
Source§impl HasQueryGroup<CodegenDbStorage> for Db
impl HasQueryGroup<CodegenDbStorage> for Db
Source§fn group_storage(&self) -> &<CodegenDbStorage as QueryGroup>::GroupStorage
fn group_storage(&self) -> &<CodegenDbStorage as QueryGroup>::GroupStorage
Access the group storage struct from the database.
Source§impl HasQueryGroup<MirDbStorage> for Db
impl HasQueryGroup<MirDbStorage> for Db
Source§fn group_storage(&self) -> &<MirDbStorage as QueryGroup>::GroupStorage
fn group_storage(&self) -> &<MirDbStorage as QueryGroup>::GroupStorage
Access the group storage struct from the database.
Source§impl HasQueryGroup<SourceDbStorage> for Db
impl HasQueryGroup<SourceDbStorage> for Db
Source§fn group_storage(&self) -> &<SourceDbStorage as QueryGroup>::GroupStorage
fn group_storage(&self) -> &<SourceDbStorage as QueryGroup>::GroupStorage
Access the group storage struct from the database.
Source§impl UpcastMut<dyn AnalyzerDb> for Db
impl UpcastMut<dyn AnalyzerDb> for Db
fn upcast_mut(&mut self) -> &mut (dyn AnalyzerDb + 'static)
Auto Trait Implementations§
impl !Freeze for Db
impl RefUnwindSafe for Db
impl !Send for Db
impl !Sync for Db
impl Unpin for Db
impl UnwindSafe for Db
Blanket Implementations§
§impl<DB> AnalyzerDb for DB
impl<DB> AnalyzerDb for DB
fn intern_ingot(&self, key0: Rc<Ingot>) -> IngotId
fn lookup_intern_ingot(&self, key0: IngotId) -> Rc<Ingot>
fn intern_module(&self, key0: Rc<Module>) -> ModuleId
fn lookup_intern_module(&self, key0: ModuleId) -> Rc<Module>
fn intern_module_const(&self, key0: Rc<ModuleConstant>) -> ModuleConstantId
fn lookup_intern_module_const( &self, key0: ModuleConstantId, ) -> Rc<ModuleConstant>
fn intern_struct(&self, key0: Rc<Struct>) -> StructId
fn lookup_intern_struct(&self, key0: StructId) -> Rc<Struct>
fn intern_struct_field(&self, key0: Rc<StructField>) -> StructFieldId
fn lookup_intern_struct_field(&self, key0: StructFieldId) -> Rc<StructField>
fn intern_enum(&self, key0: Rc<Enum>) -> EnumId
fn lookup_intern_enum(&self, key0: EnumId) -> Rc<Enum>
fn intern_attribute(&self, key0: Rc<Attribute>) -> AttributeId
fn lookup_intern_attribute(&self, key0: AttributeId) -> Rc<Attribute>
fn intern_enum_variant(&self, key0: Rc<EnumVariant>) -> EnumVariantId
fn lookup_intern_enum_variant(&self, key0: EnumVariantId) -> Rc<EnumVariant>
fn intern_trait(&self, key0: Rc<Trait>) -> TraitId
fn lookup_intern_trait(&self, key0: TraitId) -> Rc<Trait>
fn intern_impl(&self, key0: Rc<Impl>) -> ImplId
fn lookup_intern_impl(&self, key0: ImplId) -> Rc<Impl>
fn intern_type_alias(&self, key0: Rc<TypeAlias>) -> TypeAliasId
fn lookup_intern_type_alias(&self, key0: TypeAliasId) -> Rc<TypeAlias>
fn intern_contract(&self, key0: Rc<Contract>) -> ContractId
fn lookup_intern_contract(&self, key0: ContractId) -> Rc<Contract>
fn intern_contract_field(&self, key0: Rc<ContractField>) -> ContractFieldId
fn lookup_intern_contract_field( &self, key0: ContractFieldId, ) -> Rc<ContractField>
fn intern_function_sig(&self, key0: Rc<FunctionSig>) -> FunctionSigId
fn lookup_intern_function_sig(&self, key0: FunctionSigId) -> Rc<FunctionSig>
fn intern_function(&self, key0: Rc<Function>) -> FunctionId
fn lookup_intern_function(&self, key0: FunctionId) -> Rc<Function>
fn intern_type(&self, key0: Type) -> TypeId
fn lookup_intern_type(&self, key0: TypeId) -> Type
fn ingot_files(&self, key0: IngotId) -> Rc<[SourceFileId]>
§fn set_ingot_files(&mut self, key0: IngotId, value__: Rc<[SourceFileId]>)
fn set_ingot_files(&mut self, key0: IngotId, value__: Rc<[SourceFileId]>)
Set the value of the
ingot_files
input. Read more§fn set_ingot_files_with_durability(
&mut self,
key0: IngotId,
value__: Rc<[SourceFileId]>,
durability__: Durability,
)
fn set_ingot_files_with_durability( &mut self, key0: IngotId, value__: Rc<[SourceFileId]>, durability__: Durability, )
Set the value of the
ingot_files
input and promise
that its value will never change again. Read morefn ingot_external_ingots(&self, key0: IngotId) -> Rc<IndexMap<SmolStr, IngotId>>
§fn set_ingot_external_ingots(
&mut self,
key0: IngotId,
value__: Rc<IndexMap<SmolStr, IngotId>>,
)
fn set_ingot_external_ingots( &mut self, key0: IngotId, value__: Rc<IndexMap<SmolStr, IngotId>>, )
Set the value of the
ingot_external_ingots
input. Read more§fn set_ingot_external_ingots_with_durability(
&mut self,
key0: IngotId,
value__: Rc<IndexMap<SmolStr, IngotId>>,
durability__: Durability,
)
fn set_ingot_external_ingots_with_durability( &mut self, key0: IngotId, value__: Rc<IndexMap<SmolStr, IngotId>>, durability__: Durability, )
Set the value of the
ingot_external_ingots
input and promise
that its value will never change again. Read morefn root_ingot(&self) -> IngotId
§fn set_root_ingot(&mut self, value__: IngotId)
fn set_root_ingot(&mut self, value__: IngotId)
Set the value of the
root_ingot
input. Read more§fn set_root_ingot_with_durability(
&mut self,
value__: IngotId,
durability__: Durability,
)
fn set_root_ingot_with_durability( &mut self, value__: IngotId, durability__: Durability, )
Set the value of the
root_ingot
input and promise
that its value will never change again. Read morefn ingot_modules(&self, key0: IngotId) -> Rc<[ModuleId]>
fn ingot_root_module(&self, key0: IngotId) -> Option<ModuleId>
fn module_file_path(&self, key0: ModuleId) -> SmolStr
fn module_parse(&self, key0: ModuleId) -> Analysis<Rc<Module>>
fn module_is_incomplete(&self, key0: ModuleId) -> bool
fn module_all_items(&self, key0: ModuleId) -> Rc<[Item]>
fn module_all_impls(&self, key0: ModuleId) -> Analysis<Rc<[ImplId]>>
fn module_item_map( &self, key0: ModuleId, ) -> Analysis<Rc<IndexMap<SmolStr, Item>>>
fn module_impl_map( &self, key0: ModuleId, ) -> Analysis<Rc<IndexMap<(TraitId, TypeId), ImplId>>>
fn module_contracts(&self, key0: ModuleId) -> Rc<[ContractId]>
fn module_structs(&self, key0: ModuleId) -> Rc<[StructId]>
fn module_constants(&self, key0: ModuleId) -> Rc<Vec<ModuleConstantId>>
fn module_used_item_map( &self, key0: ModuleId, ) -> Analysis<Rc<IndexMap<SmolStr, (Span, Item)>>>
fn module_parent_module(&self, key0: ModuleId) -> Option<ModuleId>
fn module_submodules(&self, key0: ModuleId) -> Rc<[ModuleId]>
fn module_tests(&self, key0: ModuleId) -> Vec<FunctionId>
fn module_constant_type( &self, key0: ModuleConstantId, ) -> Analysis<Result<TypeId, TypeError>>
fn module_constant_value( &self, key0: ModuleConstantId, ) -> Analysis<Result<Constant, ConstEvalError>>
fn contract_all_functions(&self, key0: ContractId) -> Rc<[FunctionId]>
fn contract_function_map( &self, key0: ContractId, ) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>
fn contract_public_function_map( &self, key0: ContractId, ) -> Rc<IndexMap<SmolStr, FunctionId>>
fn contract_init_function( &self, key0: ContractId, ) -> Analysis<Option<FunctionId>>
fn contract_call_function( &self, key0: ContractId, ) -> Analysis<Option<FunctionId>>
fn contract_all_fields(&self, key0: ContractId) -> Rc<[ContractFieldId]>
fn contract_field_map( &self, key0: ContractId, ) -> Analysis<Rc<IndexMap<SmolStr, ContractFieldId>>>
fn contract_field_type( &self, key0: ContractFieldId, ) -> Analysis<Result<TypeId, TypeError>>
fn contract_dependency_graph(&self, key0: ContractId) -> DepGraphWrapper
fn contract_runtime_dependency_graph(&self, key0: ContractId) -> DepGraphWrapper
fn function_signature( &self, key0: FunctionSigId, ) -> Analysis<Rc<FunctionSignature>>
fn function_body(&self, key0: FunctionId) -> Analysis<Rc<FunctionBody>>
fn function_dependency_graph(&self, key0: FunctionId) -> DepGraphWrapper
fn struct_all_fields(&self, key0: StructId) -> Rc<[StructFieldId]>
fn struct_field_map( &self, key0: StructId, ) -> Analysis<Rc<IndexMap<SmolStr, StructFieldId>>>
fn struct_field_type( &self, key0: StructFieldId, ) -> Analysis<Result<TypeId, TypeError>>
fn struct_all_functions(&self, key0: StructId) -> Rc<[FunctionId]>
fn struct_function_map( &self, key0: StructId, ) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>
fn struct_dependency_graph(&self, key0: StructId) -> Analysis<DepGraphWrapper>
fn enum_all_variants(&self, key0: EnumId) -> Rc<[EnumVariantId]>
fn enum_variant_map( &self, key0: EnumId, ) -> Analysis<Rc<IndexMap<SmolStr, EnumVariantId>>>
fn enum_all_functions(&self, key0: EnumId) -> Rc<[FunctionId]>
fn enum_function_map( &self, key0: EnumId, ) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>
fn enum_dependency_graph(&self, key0: EnumId) -> Analysis<DepGraphWrapper>
fn enum_variant_kind( &self, key0: EnumVariantId, ) -> Analysis<Result<EnumVariantKind, TypeError>>
fn trait_all_functions(&self, key0: TraitId) -> Rc<[FunctionSigId]>
fn trait_function_map( &self, key0: TraitId, ) -> Analysis<Rc<IndexMap<SmolStr, FunctionSigId>>>
fn trait_is_implemented_for(&self, key0: TraitId, key1: TypeId) -> bool
fn impl_all_functions(&self, key0: ImplId) -> Rc<[FunctionId]>
fn impl_function_map( &self, key0: ImplId, ) -> Analysis<Rc<IndexMap<SmolStr, FunctionId>>>
fn all_impls(&self, key0: TypeId) -> Rc<[ImplId]>
fn impl_for(&self, key0: TypeId, key1: TraitId) -> Option<ImplId>
fn function_sigs(&self, key0: TypeId, key1: SmolStr) -> Rc<[FunctionSigId]>
fn type_alias_type( &self, key0: TypeAliasId, ) -> Analysis<Result<TypeId, TypeError>>
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> CodegenDb for DBwhere
DB: MirDb + Upcast<dyn MirDb> + UpcastMut<dyn MirDb> + Database + HasQueryGroup<CodegenDbStorage>,
impl<DB> CodegenDb for DBwhere
DB: MirDb + Upcast<dyn MirDb> + UpcastMut<dyn MirDb> + Database + HasQueryGroup<CodegenDbStorage>,
fn codegen_legalized_signature(&self, key0: FunctionId) -> Rc<FunctionSignature>
fn codegen_legalized_body(&self, key0: FunctionId) -> Rc<FunctionBody>
fn codegen_function_symbol_name(&self, key0: FunctionId) -> Rc<String>
fn codegen_legalized_type(&self, key0: TypeId) -> TypeId
fn codegen_abi_type(&self, key0: TypeId) -> AbiType
fn codegen_abi_function(&self, key0: FunctionId) -> AbiFunction
fn codegen_abi_event(&self, key0: TypeId) -> AbiEvent
fn codegen_abi_contract(&self, key0: ContractId) -> AbiContract
fn codegen_abi_module_events(&self, key0: ModuleId) -> Vec<AbiEvent>
fn codegen_abi_type_maximum_size(&self, key0: TypeId) -> usize
fn codegen_abi_type_minimum_size(&self, key0: TypeId) -> usize
fn codegen_abi_function_argument_maximum_size(&self, key0: FunctionId) -> usize
fn codegen_abi_function_return_maximum_size(&self, key0: FunctionId) -> usize
fn codegen_contract_symbol_name(&self, key0: ContractId) -> Rc<String>
fn codegen_contract_deployer_symbol_name(&self, key0: ContractId) -> Rc<String>
fn codegen_constant_string_symbol_name(&self, key0: String) -> Rc<String>
§impl<DB> MirDb for DB
impl<DB> MirDb for DB
fn mir_intern_const(&self, key0: Rc<Constant>) -> ConstantId
fn lookup_mir_intern_const(&self, key0: ConstantId) -> Rc<Constant>
fn mir_intern_type(&self, key0: Rc<Type>) -> TypeId
fn lookup_mir_intern_type(&self, key0: TypeId) -> Rc<Type>
fn mir_intern_function(&self, key0: Rc<FunctionSignature>) -> FunctionId
fn lookup_mir_intern_function(&self, key0: FunctionId) -> Rc<FunctionSignature>
fn mir_lower_module_all_functions(&self, key0: ModuleId) -> Rc<Vec<FunctionId>>
fn mir_lower_contract_all_functions( &self, key0: ContractId, ) -> Rc<Vec<FunctionId>>
fn mir_lower_struct_all_functions(&self, key0: StructId) -> Rc<Vec<FunctionId>>
fn mir_lower_enum_all_functions(&self, key0: EnumId) -> Rc<Vec<FunctionId>>
fn mir_lowered_type(&self, key0: TypeId) -> TypeId
fn mir_lowered_constant(&self, key0: ModuleConstantId) -> ConstantId
fn mir_lowered_func_signature(&self, key0: FunctionId) -> FunctionId
fn mir_lowered_monomorphized_func_signature( &self, key0: FunctionId, key1: BTreeMap<SmolStr, TypeId>, ) -> FunctionId
fn mir_lowered_pseudo_monomorphized_func_signature( &self, key0: FunctionId, ) -> FunctionId
fn mir_lowered_func_body(&self, key0: FunctionId) -> Rc<FunctionBody>
Source§impl<DB> SourceDb for DBwhere
DB: Database + HasQueryGroup<SourceDbStorage>,
impl<DB> SourceDb for DBwhere
DB: Database + HasQueryGroup<SourceDbStorage>,
fn intern_file(&self, key0: File) -> SourceFileId
fn lookup_intern_file(&self, key0: SourceFileId) -> File
Source§fn file_content(&self, key0: SourceFileId) -> Rc<str>
fn file_content(&self, key0: SourceFileId) -> Rc<str>
Set with `fn set_file_content(&mut self, file: SourceFileId, content: Rc)
Source§fn set_file_content(&mut self, key0: SourceFileId, value__: Rc<str>)
fn set_file_content(&mut self, key0: SourceFileId, value__: Rc<str>)
Set the value of the
file_content
input. Read moreSource§fn set_file_content_with_durability(
&mut self,
key0: SourceFileId,
value__: Rc<str>,
durability__: Durability,
)
fn set_file_content_with_durability( &mut self, key0: SourceFileId, value__: Rc<str>, durability__: Durability, )
Set the value of the
file_content
input and promise
that its value will never change again. Read more