## StreamingPull

# Struct StreamingPull

Source

    pub struct StreamingPull { /* private fields */ }

Expand description

Builder for the `client::Subscriber::streaming_pull` method.

## Implementations§

Source§

### impl StreamingPull

Source

#### pub async fn start(self) -> Result<Session>

Creates a new session to receive messages from the subscription.

##### §Example

    let mut session = client
        .streaming_pull("projects/my-project/subscriptions/my-subscription")
        .start()
        .await?;
    while let Some((m, h)) = session.next().await.transpose()? {
        println!("Received message m={m:?}");
        h.ack();
    }

Source

#### pub fn set_ack_deadline_seconds<T: Into<i32>>(self, v: T) -> Self

Sets the ack deadline to use for the stream.

This value represents how long the application has to ack or nack an incoming message. Note that this value is independent of the deadline configured on the server-side subscription.

If the server does not hear back from the client within this deadline (e.g. if an application crashes), it will resend any unacknowledged messages to another subscriber.

The minimum deadline you can specify is 10 seconds. The maximum deadline you can specify is 600 seconds (10 minutes).

The default value is 10 seconds.

##### §Example

    let session = client.streaming_pull("projects/my-project/subscriptions/my-subscription")
        .set_ack_deadline_seconds(20)
        .start();

Source

#### pub fn set_max_outstanding_messages<T: Into<i64>>(self, v: T) -> Self

Flow control settings for the maximum number of outstanding messages.

The server will stop sending messages to a client when this many messages are outstanding (i.e. that have not been acked or nacked).

The server resumes sending messages when the outstanding message count drops below this value.

Use a value <= 0 to set no limit on the number of outstanding messages.

The default value is 1000 messages.

##### §Example

    let session = client.streaming_pull("projects/my-project/subscriptions/my-subscription")
        .set_max_outstanding_messages(2000)
        .start();

Source

#### pub fn set_max_outstanding_bytes<T: Into<i64>>(self, v: T) -> Self

Flow control settings for the maximum number of outstanding bytes.

The server will stop sending messages to a client when this many bytes of messages are outstanding (i.e. that have not been acked or nacked).

The server resumes sending messages when the outstanding byte count drops below this value.

Use a value <= 0 to set no limit on the number of outstanding bytes.

The default value is 100 MiB.

##### §Example

    # use google_cloud_pubsub::client::Subscriber;
    # async fn sample() -> anyhow::Result<()> {
    # let client = Subscriber::builder().build().await?;
    const MIB: i64 = 1024 * 1024;
    let session = client.streaming_pull("projects/my-project/subscriptions/my-subscription")
        .set_max_outstanding_bytes(200 * MIB)
        .start();
    # Ok(()) }

## Auto Trait Implementations§

§

### impl Freeze for StreamingPull

§

### impl !RefUnwindSafe for StreamingPull

§

### impl Send for StreamingPull

§

### impl Sync for StreamingPull

§

### impl Unpin for StreamingPull

§

### impl !UnwindSafe for StreamingPull

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

§

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

§

### impl<T> IntoRequest<T> for T

§

#### fn into_request(self) -> Request<T>

Wrap the input message `T` in a `tonic::Request`
§

### impl<L> LayerExt<L> for L

§

#### fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in [`Layered`].
§

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