pub trait DefsGroup: Database + HasQueryGroup<DefsDatabase> + FilesGroup + SyntaxGroup + Upcast<dyn SyntaxGroup> + ParserGroup + Upcast<dyn FilesGroup> + HasMacroPlugins {
Show 74 methods // Required methods fn intern_constant(&self, key0: ConstantLongId) -> ConstantId; fn lookup_intern_constant(&self, key0: ConstantId) -> ConstantLongId; fn intern_submodule(&self, key0: SubmoduleLongId) -> SubmoduleId; fn lookup_intern_submodule(&self, key0: SubmoduleId) -> SubmoduleLongId; fn intern_use(&self, key0: UseLongId) -> UseId; fn lookup_intern_use(&self, key0: UseId) -> UseLongId; fn intern_free_function(&self, key0: FreeFunctionLongId) -> FreeFunctionId; fn lookup_intern_free_function( &self, key0: FreeFunctionId ) -> FreeFunctionLongId; fn intern_impl_function(&self, key0: ImplFunctionLongId) -> ImplFunctionId; fn lookup_intern_impl_function( &self, key0: ImplFunctionId ) -> ImplFunctionLongId; fn intern_struct(&self, key0: StructLongId) -> StructId; fn lookup_intern_struct(&self, key0: StructId) -> StructLongId; fn intern_enum(&self, key0: EnumLongId) -> EnumId; fn lookup_intern_enum(&self, key0: EnumId) -> EnumLongId; fn intern_type_alias(&self, key0: TypeAliasLongId) -> TypeAliasId; fn lookup_intern_type_alias(&self, key0: TypeAliasId) -> TypeAliasLongId; fn intern_impl_alias(&self, key0: ImplAliasLongId) -> ImplAliasId; fn lookup_intern_impl_alias(&self, key0: ImplAliasId) -> ImplAliasLongId; fn intern_member(&self, key0: MemberLongId) -> MemberId; fn lookup_intern_member(&self, key0: MemberId) -> MemberLongId; fn intern_variant(&self, key0: VariantLongId) -> VariantId; fn lookup_intern_variant(&self, key0: VariantId) -> VariantLongId; fn intern_trait(&self, key0: TraitLongId) -> TraitId; fn lookup_intern_trait(&self, key0: TraitId) -> TraitLongId; fn intern_trait_function( &self, key0: TraitFunctionLongId ) -> TraitFunctionId; fn lookup_intern_trait_function( &self, key0: TraitFunctionId ) -> TraitFunctionLongId; fn intern_impl(&self, key0: ImplDefLongId) -> ImplDefId; fn lookup_intern_impl(&self, key0: ImplDefId) -> ImplDefLongId; fn intern_extern_type(&self, key0: ExternTypeLongId) -> ExternTypeId; fn lookup_intern_extern_type(&self, key0: ExternTypeId) -> ExternTypeLongId; fn intern_extern_function( &self, key0: ExternFunctionLongId ) -> ExternFunctionId; fn lookup_intern_extern_function( &self, key0: ExternFunctionId ) -> ExternFunctionLongId; fn intern_param(&self, key0: ParamLongId) -> ParamId; fn lookup_intern_param(&self, key0: ParamId) -> ParamLongId; fn intern_generic_param(&self, key0: GenericParamLongId) -> GenericParamId; fn lookup_intern_generic_param( &self, key0: GenericParamId ) -> GenericParamLongId; fn intern_local_var(&self, key0: LocalVarLongId) -> LocalVarId; fn lookup_intern_local_var(&self, key0: LocalVarId) -> LocalVarLongId; fn module_main_file(&self, key0: ModuleId) -> Maybe<FileId>; fn module_files(&self, key0: ModuleId) -> Maybe<Vec<FileId>>; fn module_file(&self, key0: ModuleFileId) -> Maybe<FileId>; fn module_dir(&self, key0: ModuleId) -> Maybe<Directory>; fn crate_modules(&self, key0: CrateId) -> Arc<Vec<ModuleId>>; fn priv_file_to_module_mapping( &self ) -> OrderedHashMap<FileId, Vec<ModuleId>>; fn file_modules(&self, key0: FileId) -> Maybe<Vec<ModuleId>>; fn priv_module_data(&self, key0: ModuleId) -> Maybe<ModuleData>; fn module_submodules( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<SubmoduleId, ItemModule>>; fn module_submodules_ids(&self, key0: ModuleId) -> Maybe<Vec<SubmoduleId>>; fn module_constants( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ConstantId, ItemConstant>>; fn module_constants_ids(&self, key0: ModuleId) -> Maybe<Vec<ConstantId>>; fn module_free_functions( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<FreeFunctionId, FunctionWithBody>>; fn module_free_functions_ids( &self, key0: ModuleId ) -> Maybe<Vec<FreeFunctionId>>; fn module_items(&self, key0: ModuleId) -> Maybe<Arc<Vec<ModuleItemId>>>; fn module_item_name_stable_ptr( &self, key0: ModuleId, key1: ModuleItemId ) -> Maybe<SyntaxStablePtrId>; fn module_uses( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<UseId, UsePathLeaf>>; fn module_uses_ids(&self, key0: ModuleId) -> Maybe<Vec<UseId>>; fn module_structs( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<StructId, ItemStruct>>; fn module_structs_ids(&self, key0: ModuleId) -> Maybe<Vec<StructId>>; fn module_enums( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<EnumId, ItemEnum>>; fn module_enums_ids(&self, key0: ModuleId) -> Maybe<Vec<EnumId>>; fn module_type_aliases( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<TypeAliasId, ItemTypeAlias>>; fn module_type_aliases_ids(&self, key0: ModuleId) -> Maybe<Vec<TypeAliasId>>; fn module_impl_aliases( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ImplAliasId, ItemImplAlias>>; fn module_impl_aliases_ids(&self, key0: ModuleId) -> Maybe<Vec<ImplAliasId>>; fn module_traits( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<TraitId, ItemTrait>>; fn module_traits_ids(&self, key0: ModuleId) -> Maybe<Vec<TraitId>>; fn module_impls( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ImplDefId, ItemImpl>>; fn module_impls_ids(&self, key0: ModuleId) -> Maybe<Vec<ImplDefId>>; fn module_extern_types( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ExternTypeId, ItemExternType>>; fn module_extern_types_ids( &self, key0: ModuleId ) -> Maybe<Vec<ExternTypeId>>; fn module_extern_functions( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ExternFunctionId, ItemExternFunction>>; fn module_extern_functions_ids( &self, key0: ModuleId ) -> Maybe<Vec<ExternFunctionId>>; fn module_generated_file_infos( &self, key0: ModuleId ) -> Maybe<Vec<Option<GeneratedFileInfo>>>; fn module_plugin_diagnostics( &self, key0: ModuleId ) -> Maybe<Vec<(ModuleFileId, PluginDiagnostic)>>;
}
Expand description

Salsa database interface. See super::ids for further details.

Required Methods§

source

fn intern_constant(&self, key0: ConstantLongId) -> ConstantId

source

fn lookup_intern_constant(&self, key0: ConstantId) -> ConstantLongId

source

fn intern_submodule(&self, key0: SubmoduleLongId) -> SubmoduleId

source

fn lookup_intern_submodule(&self, key0: SubmoduleId) -> SubmoduleLongId

source

fn intern_use(&self, key0: UseLongId) -> UseId

source

fn lookup_intern_use(&self, key0: UseId) -> UseLongId

source

fn intern_free_function(&self, key0: FreeFunctionLongId) -> FreeFunctionId

source

fn lookup_intern_free_function( &self, key0: FreeFunctionId ) -> FreeFunctionLongId

source

fn intern_impl_function(&self, key0: ImplFunctionLongId) -> ImplFunctionId

source

fn lookup_intern_impl_function( &self, key0: ImplFunctionId ) -> ImplFunctionLongId

source

fn intern_struct(&self, key0: StructLongId) -> StructId

source

fn lookup_intern_struct(&self, key0: StructId) -> StructLongId

source

fn intern_enum(&self, key0: EnumLongId) -> EnumId

source

fn lookup_intern_enum(&self, key0: EnumId) -> EnumLongId

source

fn intern_type_alias(&self, key0: TypeAliasLongId) -> TypeAliasId

source

fn lookup_intern_type_alias(&self, key0: TypeAliasId) -> TypeAliasLongId

source

fn intern_impl_alias(&self, key0: ImplAliasLongId) -> ImplAliasId

source

fn lookup_intern_impl_alias(&self, key0: ImplAliasId) -> ImplAliasLongId

source

fn intern_member(&self, key0: MemberLongId) -> MemberId

source

fn lookup_intern_member(&self, key0: MemberId) -> MemberLongId

source

fn intern_variant(&self, key0: VariantLongId) -> VariantId

source

fn lookup_intern_variant(&self, key0: VariantId) -> VariantLongId

source

fn intern_trait(&self, key0: TraitLongId) -> TraitId

source

fn lookup_intern_trait(&self, key0: TraitId) -> TraitLongId

source

fn intern_trait_function(&self, key0: TraitFunctionLongId) -> TraitFunctionId

source

fn lookup_intern_trait_function( &self, key0: TraitFunctionId ) -> TraitFunctionLongId

source

fn intern_impl(&self, key0: ImplDefLongId) -> ImplDefId

source

fn lookup_intern_impl(&self, key0: ImplDefId) -> ImplDefLongId

source

fn intern_extern_type(&self, key0: ExternTypeLongId) -> ExternTypeId

source

fn lookup_intern_extern_type(&self, key0: ExternTypeId) -> ExternTypeLongId

source

fn intern_extern_function(&self, key0: ExternFunctionLongId) -> ExternFunctionId

source

fn lookup_intern_extern_function( &self, key0: ExternFunctionId ) -> ExternFunctionLongId

source

fn intern_param(&self, key0: ParamLongId) -> ParamId

source

fn lookup_intern_param(&self, key0: ParamId) -> ParamLongId

source

fn intern_generic_param(&self, key0: GenericParamLongId) -> GenericParamId

source

fn lookup_intern_generic_param( &self, key0: GenericParamId ) -> GenericParamLongId

source

fn intern_local_var(&self, key0: LocalVarLongId) -> LocalVarId

source

fn lookup_intern_local_var(&self, key0: LocalVarId) -> LocalVarLongId

source

fn module_main_file(&self, key0: ModuleId) -> Maybe<FileId>

Gets the main file of the module. A module might have more virtual files generated by plugins.

source

fn module_files(&self, key0: ModuleId) -> Maybe<Vec<FileId>>

Gets all the files of a module - main files and generated virtual files.

source

fn module_file(&self, key0: ModuleFileId) -> Maybe<FileId>

Gets a file from a module and a FileIndex (i.e. ModuleFileId).

source

fn module_dir(&self, key0: ModuleId) -> Maybe<Directory>

Gets the directory of a module.

source

fn crate_modules(&self, key0: CrateId) -> Arc<Vec<ModuleId>>

source

fn priv_file_to_module_mapping(&self) -> OrderedHashMap<FileId, Vec<ModuleId>>

source

fn file_modules(&self, key0: FileId) -> Maybe<Vec<ModuleId>>

source

fn priv_module_data(&self, key0: ModuleId) -> Maybe<ModuleData>

source

fn module_submodules( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<SubmoduleId, ItemModule>>

source

fn module_submodules_ids(&self, key0: ModuleId) -> Maybe<Vec<SubmoduleId>>

source

fn module_constants( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ConstantId, ItemConstant>>

source

fn module_constants_ids(&self, key0: ModuleId) -> Maybe<Vec<ConstantId>>

source

fn module_free_functions( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<FreeFunctionId, FunctionWithBody>>

source

fn module_free_functions_ids( &self, key0: ModuleId ) -> Maybe<Vec<FreeFunctionId>>

source

fn module_items(&self, key0: ModuleId) -> Maybe<Arc<Vec<ModuleItemId>>>

source

fn module_item_name_stable_ptr( &self, key0: ModuleId, key1: ModuleItemId ) -> Maybe<SyntaxStablePtrId>

Returns the stable ptr of the name of a module item.

source

fn module_uses( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<UseId, UsePathLeaf>>

source

fn module_uses_ids(&self, key0: ModuleId) -> Maybe<Vec<UseId>>

source

fn module_structs( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<StructId, ItemStruct>>

source

fn module_structs_ids(&self, key0: ModuleId) -> Maybe<Vec<StructId>>

source

fn module_enums( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<EnumId, ItemEnum>>

source

fn module_enums_ids(&self, key0: ModuleId) -> Maybe<Vec<EnumId>>

source

fn module_type_aliases( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<TypeAliasId, ItemTypeAlias>>

source

fn module_type_aliases_ids(&self, key0: ModuleId) -> Maybe<Vec<TypeAliasId>>

source

fn module_impl_aliases( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ImplAliasId, ItemImplAlias>>

source

fn module_impl_aliases_ids(&self, key0: ModuleId) -> Maybe<Vec<ImplAliasId>>

source

fn module_traits( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<TraitId, ItemTrait>>

source

fn module_traits_ids(&self, key0: ModuleId) -> Maybe<Vec<TraitId>>

source

fn module_impls( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ImplDefId, ItemImpl>>

source

fn module_impls_ids(&self, key0: ModuleId) -> Maybe<Vec<ImplDefId>>

source

fn module_extern_types( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ExternTypeId, ItemExternType>>

source

fn module_extern_types_ids(&self, key0: ModuleId) -> Maybe<Vec<ExternTypeId>>

source

fn module_extern_functions( &self, key0: ModuleId ) -> Maybe<OrderedHashMap<ExternFunctionId, ItemExternFunction>>

source

fn module_extern_functions_ids( &self, key0: ModuleId ) -> Maybe<Vec<ExternFunctionId>>

source

fn module_generated_file_infos( &self, key0: ModuleId ) -> Maybe<Vec<Option<GeneratedFileInfo>>>

source

fn module_plugin_diagnostics( &self, key0: ModuleId ) -> Maybe<Vec<(ModuleFileId, PluginDiagnostic)>>

Trait Implementations§

source§

impl DebugWithDb<dyn DefsGroup> for GenericParamLongId

source§

fn fmt(&self, f: &mut Formatter<'_>, db: &dyn DefsGroup) -> Result

source§

fn debug<'me, 'db>(&'me self, db: &'me Db) -> DebugWith<'me, Db>where Self: Sized + 'me,

source§

fn into_debug<'me, 'db>(self, db: &'me Db) -> DebugWith<'me, Db>where Self: Sized + 'me,

source§

impl DebugWithDb<dyn DefsGroup> for LocalVarLongId

source§

fn fmt(&self, f: &mut Formatter<'_>, db: &dyn DefsGroup) -> Result

source§

fn debug<'me, 'db>(&'me self, db: &'me Db) -> DebugWith<'me, Db>where Self: Sized + 'me,

source§

fn into_debug<'me, 'db>(self, db: &'me Db) -> DebugWith<'me, Db>where Self: Sized + 'me,

source§

impl DebugWithDb<dyn DefsGroup> for ModuleId

source§

fn fmt(&self, f: &mut Formatter<'_>, db: &dyn DefsGroup) -> Result

source§

fn debug<'me, 'db>(&'me self, db: &'me Db) -> DebugWith<'me, Db>where Self: Sized + 'me,

source§

fn into_debug<'me, 'db>(self, db: &'me Db) -> DebugWith<'me, Db>where Self: Sized + 'me,

Implementors§