Struct stable_mir::ty::Binder
source · pub struct Binder<T> {
pub value: T,
pub bound_vars: Vec<BoundVariableKind>,
}
Expand description
A binder represents a possibly generic type and its bound vars.
Fields§
§value: T
§bound_vars: Vec<BoundVariableKind>
Implementations§
source§impl Binder<FnSig>
impl Binder<FnSig>
sourcepub fn fn_ptr_abi(self) -> Result<FnAbi, Error>
pub fn fn_ptr_abi(self) -> Result<FnAbi, Error>
Compute a FnAbi
suitable for indirect calls, i.e. to fn
pointers.
NB: this doesn’t handle virtual calls - those should use Instance::fn_abi
instead, where the instance is an InstanceKind::Virtual
.
source§impl<T> Binder<T>
impl<T> Binder<T>
sourcepub fn bind_with_vars(value: T, bound_vars: Vec<BoundVariableKind>) -> Self
pub fn bind_with_vars(value: T, bound_vars: Vec<BoundVariableKind>) -> Self
Create a new binder with the given bound vars.
pub fn skip_binder(self) -> T
pub fn map_bound_ref<F, U>(&self, f: F) -> Binder<U>
pub fn map_bound<F, U>(self, f: F) -> Binder<U>where
F: FnOnce(T) -> U,
source§impl Binder<ExistentialTraitRef>
impl Binder<ExistentialTraitRef>
pub fn with_self_ty(&self, self_ty: Ty) -> Binder<TraitRef>
Trait Implementations§
source§impl<T: Visitable> Visitable for Binder<T>
impl<T: Visitable> Visitable for Binder<T>
fn super_visit<V: Visitor>(&self, visitor: &mut V) -> ControlFlow<V::Break>
fn visit<V: Visitor>(&self, visitor: &mut V) -> ControlFlow<V::Break>
impl<T: Eq> Eq for Binder<T>
impl<T> StructuralPartialEq for Binder<T>
Auto Trait Implementations§
impl<T> Freeze for Binder<T>where
T: Freeze,
impl<T> RefUnwindSafe for Binder<T>where
T: RefUnwindSafe,
impl<T> Send for Binder<T>where
T: Send,
impl<T> Sync for Binder<T>where
T: Sync,
impl<T> Unpin for Binder<T>where
T: Unpin,
impl<T> UnwindSafe for Binder<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.