pub struct ZmqQueuePublisher { /* private fields */ }Expand description
Publishes into the queue over a lazily attached PUSH socket.
On an endpoint a subscription of this service bound, the socket dials that subscription, so a
publish reaches it and nothing else: one under the subscription’s own name (a retry copy, a
job the service feeds itself) is sent, and one under any other name returns
ZmqError::Send rather than arriving at the subscription as its next delivery. On an
endpoint a subscription of this service dials, the peer there only pushes, so every publish
returns ZmqError::Send naming that subscription.
Trait Implementations§
Source§impl Clone for ZmqQueuePublisher
impl Clone for ZmqQueuePublisher
Source§impl Debug for ZmqQueuePublisher
impl Debug for ZmqQueuePublisher
Source§impl Publisher for ZmqQueuePublisher
impl Publisher for ZmqQueuePublisher
Source§type Payload = Take
type Payload = Take
A frame owns its bytes: the payload becomes the message’s third frame and the socket keeps it until the send completes.
Source§type Options = ()
type Options = ()
ZMTP carries no per-message setting: a send takes the frames and nothing else, so there is nothing for a call site to adjust. See the crate documentation.
Source§async fn publish(
&self,
msg: OutgoingMessage<'_, BytesMut>,
_options: Option<&Self::Options>,
) -> Result<(), Self::Error>
async fn publish( &self, msg: OutgoingMessage<'_, BytesMut>, _options: Option<&Self::Options>, ) -> Result<(), Self::Error>
§Cancel safety
Cancel-safe. A publish dropped before the socket takes its message sends nothing. One dropped mid-send, while the peer applies back-pressure, leaves its message with the publisher: the next publish through it or a clone completes that send before its own, and a failure of it is logged against its name.
Auto Trait Implementations§
impl !RefUnwindSafe for ZmqQueuePublisher
impl !UnwindSafe for ZmqQueuePublisher
impl Freeze for ZmqQueuePublisher
impl Send for ZmqQueuePublisher
impl Sync for ZmqQueuePublisher
impl Unpin for ZmqQueuePublisher
impl UnsafeUnpin for ZmqQueuePublisher
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<P> PublishExt for P
impl<P> PublishExt for P
Source§fn message<'a, T>(
&'a self,
value: &'a T,
) -> PublishBuilder<&'a Self, MessageBody<'a, T>, UnnamedCodec, HeadersUnset, <T as OutgoingDestination>::Form>where
T: OutgoingDestination,
fn message<'a, T>(
&'a self,
value: &'a T,
) -> PublishBuilder<&'a Self, MessageBody<'a, T>, UnnamedCodec, HeadersUnset, <T as OutgoingDestination>::Form>where
T: OutgoingDestination,
#[derive(Outgoing)] value, encoded with the crate’s
default codec (name another one with with_codec(..)). A
Serialized value’s bytes leave as they are instead - the wire is
the type’s own (MessageWire), and no codec runs on it. Read moreSource§fn begin(
&self,
) -> impl Future<Output = Result<TransactionScope<'_, Self, UnnamedCodec, AnyDeclared>, Self::Error>> + Sendwhere
Self: Sized + TransactionalPublisher,
fn begin(
&self,
) -> impl Future<Output = Result<TransactionScope<'_, Self, UnnamedCodec, AnyDeclared>, Self::Error>> + Sendwhere
Self: Sized + TransactionalPublisher,
TransactionScope that
owns it. Read moreSource§fn owned_transaction(
&self,
) -> impl Future<Output = Result<TypedTransaction<Self::Transaction, UnnamedCodec, AnyDeclared>, Self::Error>> + Sendwhere
Self: Sized + OwnedTransactions,
fn owned_transaction(
&self,
) -> impl Future<Output = Result<TypedTransaction<Self::Transaction, UnnamedCodec, AnyDeclared>, Self::Error>> + Sendwhere
Self: Sized + OwnedTransactions,
TypedTransaction that owns it. Read more