Struct glib::subclass::signal::SignalBuilder

source ·
pub struct SignalBuilder {
    name: String,
    flags: SignalFlags,
    param_types: Vec<SignalType>,
    return_type: SignalType,
    class_handler: Option<Box<dyn Fn(&SignalClassHandlerToken, &[Value]) -> Option<Value> + Send + Sync + 'static>>,
    accumulator: Option<Box<dyn Fn(&SignalInvocationHint, &mut Value, &Value) -> bool + Send + Sync + 'static>>,
}
Expand description

Builder for signals.

Fields§

§name: String§flags: SignalFlags§param_types: Vec<SignalType>§return_type: SignalType§class_handler: Option<Box<dyn Fn(&SignalClassHandlerToken, &[Value]) -> Option<Value> + Send + Sync + 'static>>§accumulator: Option<Box<dyn Fn(&SignalInvocationHint, &mut Value, &Value) -> bool + Send + Sync + 'static>>

Implementations§

source§

impl SignalBuilder

source

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

The signal’s parameters.

source

pub fn return_type<T: StaticType>(self) -> Self

The signal’s returned value type.

source

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

The signal’s returned value type.

source

pub fn run_first(self) -> Self

Run the signal class handler in the first emission stage.

source

pub fn run_last(self) -> Self

Run the signal class handler in the third emission stage.

source

pub fn run_cleanup(self) -> Self

Run the signal class handler in the last emission stage.

source

pub fn no_recurse(self) -> Self

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.

source

pub fn detailed(self) -> Self

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

source

pub fn action(self) -> Self

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

source

pub fn no_hooks(self) -> Self

No emissions hooks are supported for this signal.

source

pub fn must_collect(self) -> Self

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

source

pub fn deprecated(self) -> Self

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

source

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

Explicitly set all flags.

This overrides previously set flags on this builder.

source

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

Class handler for this signal.

source

pub fn accumulator<F: Fn(&SignalInvocationHint, &mut Value, &Value) -> bool + Send + Sync + 'static>( self, func: F, ) -> Self

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.

source

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
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.

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, 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.