Struct ractor::port::output::OutputPort

source ·
pub struct OutputPort<TMsg>
where TMsg: OutputMessage,
{ /* private fields */ }
Expand description

An OutputPort is a publish-subscribe mechanism for connecting actors together. It allows actors to emit messages without knowing which downstream actors are subscribed.

You can subscribe to the output port with an ActorRef and a message converter from the output type to the actor’s expected input type. If the actor is dropped or stops, the subscription will be dropped and if the output port is dropped, then the subscription will also be dropped automatically.

Implementations§

source§

impl<TMsg> OutputPort<TMsg>
where TMsg: OutputMessage,

source

pub fn subscribe<TReceiverMsg, F>( &self, receiver: ActorRef<TReceiverMsg>, converter: F )
where F: Fn(TMsg) -> Option<TReceiverMsg> + Send + 'static, TReceiverMsg: Message,

Subscribe to the output port, passing in a converter to convert to the input message of another actor

  • receiver - The reference to the actor which will receive forwarded messages
  • converter - The converter which will convert the output message type to the receiver’s input type and return [Some(_)] if the message should be forwarded, None if the message should be skipped.
source

pub fn send(&self, msg: TMsg)

Send a message on the output port

  • msg: The message to send

Trait Implementations§

source§

impl<TMsg> Default for OutputPort<TMsg>
where TMsg: OutputMessage,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<TMsg> Drop for OutputPort<TMsg>
where TMsg: OutputMessage,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<TMsg> !Freeze for OutputPort<TMsg>

§

impl<TMsg> !RefUnwindSafe for OutputPort<TMsg>

§

impl<TMsg> Send for OutputPort<TMsg>

§

impl<TMsg> Sync for OutputPort<TMsg>

§

impl<TMsg> Unpin for OutputPort<TMsg>

§

impl<TMsg> !UnwindSafe for OutputPort<TMsg>

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> Instrument for T

source§

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

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

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> Message for T
where T: Any + Send + 'static,

source§

fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>

Convert a BoxedMessage to this concrete type
source§

fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>

Convert this message to a BoxedMessage
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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

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

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> State for T
where T: Any + Send + 'static,