Trait r3_core::bind::Binder

source ·
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§

source

type Runtime: RuntimeBinder

The runtime representation of Self.

Stability

This method is unstable.

Required Methods§

source

fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

Define a binding dependency in CfgBindCtx::bind_registry.

Stability

This method is unstable.

source

fn into_runtime_binder(self) -> Self::Runtime

Convert self to the runtime representation (RuntimeBinder).

Stability

This method is unstable.

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

source§

impl<Binder0, Binder1> Binder for (Binder0, Binder1)where Binder0: Binder, Binder1: Binder,

§

type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime, <Binder4 as Binder>::Runtime)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

type Runtime = (<Binder0 as Binder>::Runtime, <Binder1 as Binder>::Runtime, <Binder2 as Binder>::Runtime, <Binder3 as Binder>::Runtime)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

source§

impl Binder for ()

§

type Runtime = ()

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

source§

impl<Binder0> Binder for (Binder0,)where Binder0: Binder,

§

type Runtime = (<Binder0 as Binder>::Runtime,)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

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,

§

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)

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

source§

impl<const LEN: usize, Binder> Binder for [Binder; LEN]where Binder: Binder,

§

type Runtime = [<Binder as Binder>::Runtime; LEN]

source§

const fn register_dependency(&self, ctx: &mut CfgBindCtx<'_>)

source§

const fn into_runtime_binder(self) -> Self::Runtime

Implementors§

source§

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,

Materializes BindBorrowMut<System, T> as &'call mut T.

source§

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.

§

type Runtime = BindRef<System, T>

source§

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,

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,

Materializes BindTakeRef<System, T> as &'static T.

§

type Runtime = RuntimeBindTakeRef<System, T>