Skip to main content

ModuleSemantic

Trait ModuleSemantic 

Source
pub trait ModuleSemantic<'db>: Database {
    // Provided methods
    fn priv_module_semantic_data(
        &'db self,
        module_id: ModuleId<'db>,
    ) -> Maybe<&'db ModuleSemanticData<'db>> { ... }
    fn module_item_by_name(
        &'db self,
        module_id: ModuleId<'db>,
        name: SmolStrId<'db>,
    ) -> Maybe<Option<ModuleItemId<'db>>> { ... }
    fn module_item_info_by_name(
        &'db self,
        module_id: ModuleId<'db>,
        name: SmolStrId<'db>,
    ) -> Maybe<Option<ModuleItemInfo<'db>>> { ... }
    fn module_all_used_uses(
        &'db self,
        module_id: ModuleId<'db>,
    ) -> Maybe<&'db OrderedHashSet<UseId<'db>>> { ... }
    fn module_attributes(
        &'db self,
        module_id: ModuleId<'db>,
    ) -> Maybe<&'db [Attribute<'db>]> { ... }
    fn module_usable_trait_ids(
        &'db self,
        module_id: ModuleId<'db>,
    ) -> &'db OrderedHashMap<TraitId<'db>, LookupItemId<'db>> { ... }
    fn get_prelude_submodule(
        &'db self,
        settings: &CrateSettings,
    ) -> Option<ModuleId<'db>> { ... }
}
Expand description

Trait for module-related semantic queries.

Provided Methods§

Source

fn priv_module_semantic_data( &'db self, module_id: ModuleId<'db>, ) -> Maybe<&'db ModuleSemanticData<'db>>

Private query to compute data about the module.

Source

fn module_item_by_name( &'db self, module_id: ModuleId<'db>, name: SmolStrId<'db>, ) -> Maybe<Option<ModuleItemId<'db>>>

Returns Maybe::Err if the module was not properly resolved. Returns [Maybe::Ok(None)] if the item does not exist.

Source

fn module_item_info_by_name( &'db self, module_id: ModuleId<'db>, name: SmolStrId<'db>, ) -> Maybe<Option<ModuleItemInfo<'db>>>

Returns Maybe::Err if the module was not properly resolved. Returns [Maybe::Ok(None)] if the item does not exist.

Source

fn module_all_used_uses( &'db self, module_id: ModuleId<'db>, ) -> Maybe<&'db OrderedHashSet<UseId<'db>>>

Returns all the items used within the module.

Source

fn module_attributes( &'db self, module_id: ModuleId<'db>, ) -> Maybe<&'db [Attribute<'db>]>

Returns the attributes of a module.

Source

fn module_usable_trait_ids( &'db self, module_id: ModuleId<'db>, ) -> &'db OrderedHashMap<TraitId<'db>, LookupItemId<'db>>

Finds all the trait ids usable in the module.

Source

fn get_prelude_submodule( &'db self, settings: &CrateSettings, ) -> Option<ModuleId<'db>>

Finds the prelude submodule of the core module according to the crate settings.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'db, T: Database + ?Sized> ModuleSemantic<'db> for T