## Snapshot

# Struct Snapshot

Source

    #[non_exhaustive]pub struct Snapshot {
        pub name: String,
        pub topic: String,
        pub expire_time: Option<Timestamp>,
        pub labels: HashMap<String, String>,
        /* private fields */
    }

Expand description

A snapshot resource. Snapshots are used in Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

## Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional `Struct { .. }` syntax; cannot be matched against without a wildcard `..`; and struct update syntax will not work.
§`name: String`

Optional. The name of the snapshot.

§`topic: String`

Optional. The name of the topic from which this snapshot is retaining messages.

§`expire_time: Option<Timestamp>`

Optional. The snapshot is guaranteed to exist up until this time. A newly-created snapshot expires no later than 7 days from the time of its creation. Its exact lifetime is determined at creation by the existing backlog in the source subscription. Specifically, the lifetime of the snapshot is `7 days - (age of oldest unacked message in the subscription)`. For example, consider a subscription whose oldest unacked message is 3 days old. If a snapshot is created from this subscription, the snapshot – which will always capture this 3-day-old backlog as long as the snapshot exists – will expire in 4 days. The service will refuse to create a snapshot that would expire in less than 1 hour after creation.

§`labels: HashMap<String, String>`

Optional. See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels).

## Implementations§

Source§

### impl Snapshot

Source

#### pub fn new() -> Self

Source

#### pub fn set_name<T: Into<String>>(self, v: T) -> Self

Sets the value of name.

##### §Example

ⓘ

    let x = Snapshot::new().set_name("example");

Source

#### pub fn set_topic<T: Into<String>>(self, v: T) -> Self

Sets the value of topic.

##### §Example

ⓘ

    let x = Snapshot::new().set_topic("example");

Source

#### pub fn set_expire_time<T>(self, v: T) -> Self
where T: Into<Timestamp>,

Sets the value of expire_time.

##### §Example

ⓘ

    use wkt::Timestamp;
    let x = Snapshot::new().set_expire_time(Timestamp::default()/* use setters */);

Source

#### pub fn set_or_clear_expire_time<T>(self, v: Option<T>) -> Self
where T: Into<Timestamp>,

Sets or clears the value of expire_time.

##### §Example

ⓘ

    use wkt::Timestamp;
    let x = Snapshot::new().set_or_clear_expire_time(Some(Timestamp::default()/* use setters */));
    let x = Snapshot::new().set_or_clear_expire_time(None::<Timestamp>);

Source

#### pub fn set_labels<T, K, V>(self, v: T) -> Self
where T: IntoIterator<Item = (K, V)>, K: Into<String>, V: Into<String>,

Sets the value of labels.

##### §Example

ⓘ

    let x = Snapshot::new().set_labels([
        ("key0", "abc"),
        ("key1", "xyz"),
    ]);

## Trait Implementations§

Source§

### impl Clone for Snapshot

Source§

#### fn clone(&self) -> Snapshot

Returns a duplicate of the value. Read more
1.0.0 · Source§

#### fn clone_from(&mut self, source: &Self)

Performs copy-assignment from `source`. Read more
Source§

### impl Debug for Snapshot

Source§

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

### impl Default for Snapshot

Source§

#### fn default() -> Snapshot

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

### impl Message for Snapshot

Source§

#### fn typename() -> &'static str

The typename of this message.
Source§

### impl PartialEq for Snapshot

Source§

#### fn eq(&self, other: &Snapshot) -> bool

Tests for `self` and `other` values to be equal, and is used by `==`.
1.0.0 · Source§

#### fn ne(&self, other: &Rhs) -> bool

Tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

### impl StructuralPartialEq for Snapshot

## Auto Trait Implementations§

§

### impl Freeze for Snapshot

§

### impl RefUnwindSafe for Snapshot

§

### impl Send for Snapshot

§

### impl Sync for Snapshot

§

### impl Unpin for Snapshot

§

### impl UnwindSafe for Snapshot

## 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> CloneToUninit for T
where T: Clone,

Source§

#### unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (`clone_to_uninit`)
Performs copy-assignment from `self` to `dest`. 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> ToOwned for T
where T: Clone,

Source§

#### type Owned = T

The resulting type after obtaining ownership.
Source§

#### fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

#### fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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
Source§

### impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,