Struct config::CallbackSignature

source ·
pub struct CallbackSignature<'lua, A, R>
where A: IntoLuaMulti<'lua>, R: FromLuaMulti<'lua>,
{ /* private fields */ }
Expand description

CallbackSignature is a bit sugar to aid with statically typing event callback function invocation.

The idea is that you declare a signature instance that is typed with its argument tuple (A), and its return type tuple (R).

The signature instance can then be used to invoke the callback by name.

The register method allows pre-registering events so that kumo.on can reason about them better. The main function enabled by this is allow_multiple; when that is set to true, kumo.on will allow recording multiple callback instances, calling them in sequence until one of them returns a value.

Implementations§

source§

impl<'lua, A, R> CallbackSignature<'lua, A, R>
where A: IntoLuaMulti<'lua>, R: FromLuaMulti<'lua>,

source

pub fn new<S: Into<Cow<'static, str>>>(name: S) -> Self

source

pub fn new_with_multiple<S: Into<Cow<'static, str>>>(name: S) -> Self

Make sure that you call .register() on this from eg: mod_kumo::register in order for it to be instantiated and visible to the config loader

source

pub fn register(&self)

source

pub fn raise_error_if_allow_multiple(&self) -> Result<()>

source

pub fn allow_multiple(&self) -> bool

Return true if this signature allows multiple instances to be registered and called.

source

pub fn name(&self) -> &str

source

pub fn decorated_name(&self) -> String

Auto Trait Implementations§

§

impl<'lua, A, R> Freeze for CallbackSignature<'lua, A, R>

§

impl<'lua, A, R> RefUnwindSafe for CallbackSignature<'lua, A, R>

§

impl<'lua, A, R> Send for CallbackSignature<'lua, A, R>
where A: Sync, R: Sync,

§

impl<'lua, A, R> Sync for CallbackSignature<'lua, A, R>
where A: Sync, R: Sync,

§

impl<'lua, A, R> Unpin for CallbackSignature<'lua, A, R>

§

impl<'lua, A, R> UnwindSafe for CallbackSignature<'lua, A, R>

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

source§

type Output = T

Should always be Self
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more