Struct SignalBuilder

pub struct SignalBuilder { /* private fields */ }
Expand description

Builder for signals.

Implementations§

§

impl SignalBuilder

pub fn param_types( self, param_types: impl IntoIterator<Item = impl Into<SignalType>>, ) -> SignalBuilder

The signal’s parameters.

pub fn return_type<T>(self) -> SignalBuilder
where T: StaticType,

The signal’s returned value type.

pub fn return_type_from(self, type_: impl Into<SignalType>) -> SignalBuilder

The signal’s returned value type.

pub fn run_first(self) -> SignalBuilder

Run the signal class handler in the first emission stage.

pub fn run_last(self) -> SignalBuilder

Run the signal class handler in the third emission stage.

pub fn run_cleanup(self) -> SignalBuilder

Run the signal class handler in the last emission stage.

pub fn no_recurse(self) -> SignalBuilder

Signals being emitted for an object while currently being in emission for this very object will not be emitted recursively, but instead cause the first emission to be restarted.

pub fn detailed(self) -> SignalBuilder

This signal supports “::detail” appendices to the signal name upon handler connections and emissions.

pub fn action(self) -> SignalBuilder

Action signals are signals that may freely be emitted on alive objects from user code.

pub fn no_hooks(self) -> SignalBuilder

No emissions hooks are supported for this signal.

pub fn must_collect(self) -> SignalBuilder

Varargs signal emission will always collect the arguments, even if there are no signal handlers connected.

pub fn deprecated(self) -> SignalBuilder

The signal is deprecated and will be removed in a future version.

pub fn flags(self, flags: SignalFlags) -> SignalBuilder

Explicitly set all flags.

This overrides previously set flags on this builder.

pub fn class_handler<F>(self, func: F) -> SignalBuilder
where F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,

Class handler for this signal.

pub fn accumulator<F>(self, func: F) -> SignalBuilder
where F: Fn(&SignalInvocationHint, Value, &Value) -> ControlFlow<Value, Value> + Send + Sync + 'static,

Accumulator for the return values of the signal.

This is called if multiple signal handlers are connected to the signal for accumulating the return values into a single value.

pub fn build(self) -> Signal

Build the signal.

This does not register the signal yet, which only happens as part of object type registration.

Auto Trait Implementations§

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
§

impl<C> AsyncPosition<()> for C

§

fn position(_index: usize)

Returns the position. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<C, I> Position<(), I> for C

§

fn position(&self, _index: &I)

Returns the position. Read more
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
§

impl<T> ErasedDestructor for T
where T: 'static,