Struct async_nats::jetstream::context::Publish
source · pub struct Publish { /* private fields */ }Expand description
Used for building customized publish message.
Implementations§
source§impl Publish
impl Publish
sourcepub fn build() -> Self
pub fn build() -> Self
Creates a new custom Publish struct to be used with.
Examples found in repository?
src/jetstream/context.rs (line 121)
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
pub async fn publish(
&self,
subject: String,
payload: Bytes,
) -> Result<PublishAckFuture, Error> {
self.send_publish(subject, Publish::build().payload(payload))
.await
}
/// Publish a message with headers to a given subject associated with a stream and returns an acknowledgment from
/// the server that the message has been successfully delivered.
///
/// If the stream does not exist, `no responders` error will be returned.
///
/// # Examples
///
/// ```no_run
/// # #[tokio::main]
/// # async fn main() -> Result<(), async_nats::Error> {
/// let client = async_nats::connect("localhost:4222").await?;
/// let jetstream = async_nats::jetstream::new(client);
///
/// let mut headers = async_nats::HeaderMap::new();
/// headers.append("X-key", "Value");
/// let ack = jetstream.publish_with_headers("events".to_string(), headers, "data".into()).await?;
/// # Ok(())
/// # }
/// ```
pub async fn publish_with_headers(
&self,
subject: String,
headers: crate::header::HeaderMap,
payload: Bytes,
) -> Result<PublishAckFuture, Error> {
self.send_publish(subject, Publish::build().payload(payload).headers(headers))
.await
}sourcepub fn payload(self, payload: Bytes) -> Self
pub fn payload(self, payload: Bytes) -> Self
Sets the payload for the message.
Examples found in repository?
src/jetstream/context.rs (line 121)
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
pub async fn publish(
&self,
subject: String,
payload: Bytes,
) -> Result<PublishAckFuture, Error> {
self.send_publish(subject, Publish::build().payload(payload))
.await
}
/// Publish a message with headers to a given subject associated with a stream and returns an acknowledgment from
/// the server that the message has been successfully delivered.
///
/// If the stream does not exist, `no responders` error will be returned.
///
/// # Examples
///
/// ```no_run
/// # #[tokio::main]
/// # async fn main() -> Result<(), async_nats::Error> {
/// let client = async_nats::connect("localhost:4222").await?;
/// let jetstream = async_nats::jetstream::new(client);
///
/// let mut headers = async_nats::HeaderMap::new();
/// headers.append("X-key", "Value");
/// let ack = jetstream.publish_with_headers("events".to_string(), headers, "data".into()).await?;
/// # Ok(())
/// # }
/// ```
pub async fn publish_with_headers(
&self,
subject: String,
headers: crate::header::HeaderMap,
payload: Bytes,
) -> Result<PublishAckFuture, Error> {
self.send_publish(subject, Publish::build().payload(payload).headers(headers))
.await
}sourcepub fn header<N: IntoHeaderName, V: IntoHeaderValue>(
self,
name: N,
value: V
) -> Self
pub fn header<N: IntoHeaderName, V: IntoHeaderValue>(
self,
name: N,
value: V
) -> Self
A shorthand to add a single header.
Examples found in repository?
src/jetstream/context.rs (line 904)
903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937
pub fn message_id<T: AsRef<str>>(self, id: T) -> Self {
self.header(header::NATS_MESSAGE_ID, id.as_ref())
}
/// Sets expected last message ID.
/// It sets the `Nats-Expected-Last-Msg-Id` header with provided value.
pub fn expected_last_message_id<T: AsRef<str>>(self, last_message_id: T) -> Self {
self.header(
header::NATS_EXPECTED_LAST_MESSAGE_ID,
last_message_id.as_ref(),
)
}
/// Sets the last expected stream sequence.
/// It sets the `Nats-Expected-Last-Sequence` header with provided value.
pub fn expected_last_sequence(self, last_sequence: u64) -> Self {
self.header(
header::NATS_EXPECTED_LAST_SEQUENCE,
HeaderValue::from(last_sequence),
)
}
/// Sets the last expected stream sequence for a subject this message will be published to.
/// It sets the `Nats-Expected-Last-Subject-Sequence` header with provided value.
pub fn expected_last_subject_sequence(self, subject_sequence: u64) -> Self {
self.header(
header::NATS_EXPECTED_LAST_SUBJECT_SEQUENCE,
HeaderValue::from(subject_sequence),
)
}
/// Sets the expected stream name.
/// It sets the `Nats-Expected-Stream` header with provided value.
pub fn expected_stream<T: AsRef<str>>(self, stream: T) -> Self {
self.header(
header::NATS_EXPECTED_STREAM,
HeaderValue::from(stream.as_ref()),
)
}sourcepub fn message_id<T: AsRef<str>>(self, id: T) -> Self
pub fn message_id<T: AsRef<str>>(self, id: T) -> Self
Sets the Nats-Msg-Id header, that is used by stream deduplicate window.
sourcepub fn expected_last_message_id<T: AsRef<str>>(self, last_message_id: T) -> Self
pub fn expected_last_message_id<T: AsRef<str>>(self, last_message_id: T) -> Self
Sets expected last message ID.
It sets the Nats-Expected-Last-Msg-Id header with provided value.
sourcepub fn expected_last_sequence(self, last_sequence: u64) -> Self
pub fn expected_last_sequence(self, last_sequence: u64) -> Self
Sets the last expected stream sequence.
It sets the Nats-Expected-Last-Sequence header with provided value.
sourcepub fn expected_last_subject_sequence(self, subject_sequence: u64) -> Self
pub fn expected_last_subject_sequence(self, subject_sequence: u64) -> Self
Sets the last expected stream sequence for a subject this message will be published to.
It sets the Nats-Expected-Last-Subject-Sequence header with provided value.
sourcepub fn expected_stream<T: AsRef<str>>(self, stream: T) -> Self
pub fn expected_stream<T: AsRef<str>>(self, stream: T) -> Self
Sets the expected stream name.
It sets the Nats-Expected-Stream header with provided value.