naga::compact

Struct ModuleTracer

source
struct ModuleTracer<'module> {
    module: &'module Module,
    types_used: HandleSet<Type>,
    constants_used: HandleSet<Constant>,
    overrides_used: HandleSet<Override>,
    global_expressions_used: HandleSet<Expression>,
}

Fields§

§module: &'module Module§types_used: HandleSet<Type>§constants_used: HandleSet<Constant>§overrides_used: HandleSet<Override>§global_expressions_used: HandleSet<Expression>

Implementations§

source§

impl<'module> ModuleTracer<'module>

source

fn new(module: &'module Module) -> Self

source

fn trace_special_types(&mut self, special_types: &SpecialTypes)

source

fn type_expression_tandem(&mut self)

Traverse types and global expressions in tandem to determine which are used.

Assuming that all types and global expressions used by other parts of the module have been added to types_used and global_expressions_used, expand those sets to include all types and global expressions reachable from those.

source

fn as_type(&mut self) -> TypeTracer<'_>

source

fn as_const_expression(&mut self) -> ExpressionTracer<'_>

source

pub fn as_function<'tracer>( &'tracer mut self, function: &'tracer Function, ) -> FunctionTracer<'tracer>

Trait Implementations§

source§

impl From<ModuleTracer<'_>> for ModuleMap

source§

fn from(used: ModuleTracer<'_>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'module> Freeze for ModuleTracer<'module>

§

impl<'module> RefUnwindSafe for ModuleTracer<'module>

§

impl<'module> Send for ModuleTracer<'module>

§

impl<'module> Sync for ModuleTracer<'module>

§

impl<'module> Unpin for ModuleTracer<'module>

§

impl<'module> UnwindSafe for ModuleTracer<'module>

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> 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, 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.