Trait cairo_lang_defs::db::DefsGroup
source · 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§
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
sourcefn module_main_file(&self, key0: ModuleId) -> Maybe<FileId>
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.
sourcefn module_files(&self, key0: ModuleId) -> Maybe<Vec<FileId>>
fn module_files(&self, key0: ModuleId) -> Maybe<Vec<FileId>>
Gets all the files of a module - main files and generated virtual files.
sourcefn module_file(&self, key0: ModuleFileId) -> Maybe<FileId>
fn module_file(&self, key0: ModuleFileId) -> Maybe<FileId>
Gets a file from a module and a FileIndex (i.e. ModuleFileId).
sourcefn module_dir(&self, key0: ModuleId) -> Maybe<Directory>
fn module_dir(&self, key0: ModuleId) -> Maybe<Directory>
Gets the directory of a module.
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>>>
sourcefn module_item_name_stable_ptr(
&self,
key0: ModuleId,
key1: ModuleItemId
) -> Maybe<SyntaxStablePtrId>
fn module_item_name_stable_ptr( &self, key0: ModuleId, key1: ModuleItemId ) -> Maybe<SyntaxStablePtrId>
Returns the stable ptr of the name of a module item.