Struct FeatureCheckedProgram

Source
pub struct FeatureCheckedProgram<'a, Target> { /* private fields */ }
Expand description

A wrapper around Program that enforces having been checked for feature support on a particular backend.

Implementations§

Source§

impl<'a, T: Target> FeatureCheckedProgram<'a, T>

Source

pub fn check(program: &'a Program) -> Result<Self, UnsupportedFeature>

Methods from Deref<Target = &'a Program>§

Source

pub fn fmt_sexpr(&self) -> String

For debugging purposes. This writes out the parse tree of a program as an S-expression.

Source

pub fn terms(&self) -> &Arena<Term>

Source

pub fn is_single(&self) -> bool

Methods from Deref<Target = Tree<Term>>§

Source

pub fn walk(&self) -> TreeWalker<'_, T>

Create a tree walker to arbitrarily traverse the tree.

Source

pub fn postorder(&self) -> PostorderIter<'_, T>
where T: IndexNode,

Perform a postorder depth first traversal of the tree. Currently has substantially more iteration overhead than postorder, but running time appears to stay inside an order of magnitude on large trees.

Trait Implementations§

Source§

impl<'a, Target> Deref for FeatureCheckedProgram<'a, Target>

Source§

type Target = &'a Program

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<'a, Target> Freeze for FeatureCheckedProgram<'a, Target>

§

impl<'a, Target> RefUnwindSafe for FeatureCheckedProgram<'a, Target>
where Target: RefUnwindSafe,

§

impl<'a, Target> Send for FeatureCheckedProgram<'a, Target>
where Target: Send,

§

impl<'a, Target> Sync for FeatureCheckedProgram<'a, Target>
where Target: Sync,

§

impl<'a, Target> Unpin for FeatureCheckedProgram<'a, Target>
where Target: Unpin,

§

impl<'a, Target> UnwindSafe for FeatureCheckedProgram<'a, Target>
where Target: UnwindSafe,

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V