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>> { ... }
}
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.

Implementors§

Source§

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