pub trait Binder {
type Runtime: RuntimeBinder;
// Required methods
fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>);
fn into_runtime_binder(self) -> Self::Runtime;
}
Expand description
Represents a binder, which represents a specific way to access the contents of a binding from a runtime function.
See the module-level documentation for more.
Stability
This trait is covered by the application-side API stability guarantee with a few exceptions, which are documented on a per-item basis.
Required Associated Types§
sourcetype Runtime: RuntimeBinder
type Runtime: RuntimeBinder
Required Methods§
sourcefn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
sourcefn into_runtime_binder(self) -> Self::Runtime
fn into_runtime_binder(self) -> Self::Runtime
Implementations on Foreign Types§
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
Binder8: Binder,
Binder9: Binder,
Binder10: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder, Binder8: Binder, Binder9: Binder, Binder10: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime, <Binder8 as Binder>::Runtime, <Binder9 as Binder>::Runtime, <Binder10 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
Binder8: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder, Binder8: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime, <Binder8 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder,
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
Binder8: Binder,
Binder9: Binder,
Binder10: Binder,
Binder11: Binder,
Binder12: Binder,
Binder13: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder, Binder8: Binder, Binder9: Binder, Binder10: Binder, Binder11: Binder, Binder12: Binder, Binder13: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime, <Binder8 as Binder>::Runtime, <Binder9 as Binder>::Runtime, <Binder10 as Binder>::Runtime, <Binder11 as Binder>::Runtime, <Binder12 as Binder>::Runtime, <Binder13 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2> Binder for (Binder0, Binder1, Binder2)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
impl<Binder0, Binder1, Binder2> Binder for (Binder0, Binder1, Binder2)where Binder0: Binder, Binder1: Binder, Binder2: Binder,
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
Binder8: Binder,
Binder9: Binder,
Binder10: Binder,
Binder11: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder, Binder8: Binder, Binder9: Binder, Binder10: Binder, Binder11: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime, <Binder8 as Binder>::Runtime, <Binder9 as Binder>::Runtime, <Binder10 as Binder>::Runtime, <Binder11 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2, Binder3> Binder for (Binder0, Binder1, Binder2, Binder3)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
impl<Binder0, Binder1, Binder2, Binder3> Binder for (Binder0, Binder1, Binder2, Binder3)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder,
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
Binder8: Binder,
Binder9: Binder,
Binder10: Binder,
Binder11: Binder,
Binder12: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder, Binder8: Binder, Binder9: Binder, Binder10: Binder, Binder11: Binder, Binder12: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime, <Binder8 as Binder>::Runtime, <Binder9 as Binder>::Runtime, <Binder10 as Binder>::Runtime, <Binder11 as Binder>::Runtime, <Binder12 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl Binder for ()
impl Binder for ()
type Runtime = ()
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0> Binder for (Binder0,)where
Binder0: Binder,
impl<Binder0> Binder for (Binder0,)where Binder0: Binder,
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
Binder8: Binder,
Binder9: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder, Binder8: Binder, Binder9: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime, <Binder8 as Binder>::Runtime, <Binder9 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
source§impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13, Binder14> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13, Binder14)where
Binder0: Binder,
Binder1: Binder,
Binder2: Binder,
Binder3: Binder,
Binder4: Binder,
Binder5: Binder,
Binder6: Binder,
Binder7: Binder,
Binder8: Binder,
Binder9: Binder,
Binder10: Binder,
Binder11: Binder,
Binder12: Binder,
Binder13: Binder,
Binder14: Binder,
impl<Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13, Binder14> Binder for (Binder0, Binder1, Binder2, Binder3, Binder4, Binder5, Binder6, Binder7, Binder8, Binder9, Binder10, Binder11, Binder12, Binder13, Binder14)where Binder0: Binder, Binder1: Binder, Binder2: Binder, Binder3: Binder, Binder4: Binder, Binder5: Binder, Binder6: Binder, Binder7: Binder, Binder8: Binder, Binder9: Binder, Binder10: Binder, Binder11: Binder, Binder12: Binder, Binder13: Binder, Binder14: Binder,
type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime, <Binder5 as Binder>::Runtime, <Binder6 as Binder>::Runtime, <Binder7 as Binder>::Runtime, <Binder8 as Binder>::Runtime, <Binder9 as Binder>::Runtime, <Binder10 as Binder>::Runtime, <Binder11 as Binder>::Runtime, <Binder12 as Binder>::Runtime, <Binder13 as Binder>::Runtime, <Binder14 as Binder>::Runtime)
const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)
const fn into_runtime_binder(self) -> Self::Runtime
Implementors§
source§impl<T, System> Binder for BindBorrow<'_, System, T>where
T: 'static,
System: KernelBase + KernelStatic,
impl<T, System> Binder for BindBorrow<'_, System, T>where T: 'static, System: KernelBase + KernelStatic,
Materializes BindBorrow<System, T>
as &'call T
.
type Runtime = RuntimeBindBorrow<System, T>
source§impl<T, System> Binder for BindBorrowMut<'_, System, T>where
T: 'static,
System: KernelBase + KernelStatic,
impl<T, System> Binder for BindBorrowMut<'_, System, T>where T: 'static, System: KernelBase + KernelStatic,
Materializes BindBorrowMut<System, T>
as &'call mut T
.
type Runtime = RuntimeBindBorrowMut<System, T>
source§impl<T, System> Binder for BindRef<System, T>where
T: 'static,
System: KernelBase + KernelStatic,
impl<T, System> Binder for BindRef<System, T>where T: 'static, System: KernelBase + KernelStatic,
Materializes BindRef<System, T>
as &'static T
. Can only be consumed by
executables and not by bindings.
source§impl<T, System> Binder for BindTake<'_, System, T>where
T: 'static,
System: KernelBase + KernelStatic,
impl<T, System> Binder for BindTake<'_, System, T>where T: 'static, System: KernelBase + KernelStatic,
Materializes BindTake<System, T>
as T
.
type Runtime = RuntimeBindTake<System, T>
source§impl<T, System> Binder for BindTakeMut<'_, System, T>where
T: 'static,
System: KernelBase + KernelStatic,
impl<T, System> Binder for BindTakeMut<'_, System, T>where T: 'static, System: KernelBase + KernelStatic,
Materializes BindTakeMut<System, T>
as &'static mut T
.
type Runtime = RuntimeBindTakeMut<System, T>
source§impl<T, System> Binder for BindTakeRef<'_, System, T>where
T: 'static + Sync,
System: KernelBase + KernelStatic,
impl<T, System> Binder for BindTakeRef<'_, System, T>where T: 'static + Sync, System: KernelBase + KernelStatic,
Materializes BindTakeRef<System, T>
as &'static T
.