Skip to main content

ModuleExports

Struct ModuleExports 

Source
pub struct ModuleExports {
    pub bindings: Vec<(String, TypeScheme)>,
    pub structs: Vec<StructDef>,
    pub enums: Vec<EnumDef>,
    pub traits: Vec<TraitDef>,
    pub impls: Vec<ImplDef>,
}
Expand description

The set of publicly visible items exported by a module.

Collected after type checking and used to populate the type environments of downstream modules that import from this module.

Fields§

§bindings: Vec<(String, TypeScheme)>

Public function and variable bindings: (name, type_scheme).

§structs: Vec<StructDef>

Public struct definitions.

§enums: Vec<EnumDef>

Public enum definitions.

§traits: Vec<TraitDef>

Public trait definitions.

§impls: Vec<ImplDef>

All impl blocks (visibility is per-method, not per-block).

Implementations§

Source§

impl ModuleExports

Source

pub fn from_checked(program: &Program, env: &TypeEnv) -> Self

Extracts public exports from a type-checked module.

Scans the AST for pub items and collects their type information from the type environment. Must be called after type checking so that the environment contains resolved types for all declarations.

Source

pub fn resolve_item(&self, name: &str, result: &mut Vec<ResolvedImport>)

Resolves all exports matching name and appends them to result.

When a struct or enum is found, any associated impl blocks from the same module are also included so that method resolution works across module boundaries.

Trait Implementations§

Source§

impl Clone for ModuleExports

Source§

fn clone(&self) -> ModuleExports

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ModuleExports

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for ModuleExports

Source§

fn default() -> ModuleExports

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.