#[non_exhaustive]pub struct Watermark {
pub cursor: Option<Bytes>,
pub checkpoint_hi: Option<u64>,
pub checkpoint_lo: Option<u64>,
}unstable only.Expand description
Progress markers for a query scan. Carried both on every item and as standalone wire frames between items when the underlying scan advances without producing a matching item.
Exactly one of checkpoint_hi / checkpoint_lo is set per response
stream — whichever matches the request ordering. The unscanned side is
always unset.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.cursor: Option<Bytes>Opaque cursor at this scan position. Use as options.after
(ascending) or options.before (descending) on the next request to
resume from here. Clients should track the most recently received
cursor across both standalone and item-embedded watermarks as the
safe resume point.
checkpoint_hi: Option<u64>Ascending scans only. Every matching item in checkpoints
<= checkpoint_hi has been emitted; checkpoints strictly greater
may still hold unscanned matches. Non-decreasing across the stream.
Unset only on frames whose scan position is still at the genesis checkpoint (cp 0). Set on every subsequent frame.
checkpoint_lo: Option<u64>Descending scans only. Every matching item in checkpoints
>= checkpoint_lo has been emitted; checkpoints strictly less may
still hold unscanned matches. Non-increasing across the stream.
Implementations§
Source§impl Watermark
impl Watermark
pub const CURSOR_FIELD: &'static MessageField
pub const CHECKPOINT_HI_FIELD: &'static MessageField
pub const CHECKPOINT_LO_FIELD: &'static MessageField
Source§impl Watermark
impl Watermark
pub fn path_builder() -> WatermarkFieldPathBuilder
Source§impl Watermark
impl Watermark
pub const fn const_default() -> Self
Sourcepub fn cursor_opt(&self) -> Option<&[u8]>
pub fn cursor_opt(&self) -> Option<&[u8]>
Sourcepub fn set_cursor<T: Into<Bytes>>(&mut self, field: T)
pub fn set_cursor<T: Into<Bytes>>(&mut self, field: T)
Sets cursor with the provided value.
Sourcepub fn with_cursor<T: Into<Bytes>>(self, field: T) -> Self
pub fn with_cursor<T: Into<Bytes>>(self, field: T) -> Self
Sets cursor with the provided value.
Sourcepub fn checkpoint_hi_opt_mut(&mut self) -> Option<&mut u64>
pub fn checkpoint_hi_opt_mut(&mut self) -> Option<&mut u64>
Sourcepub fn checkpoint_hi_mut(&mut self) -> &mut u64
pub fn checkpoint_hi_mut(&mut self) -> &mut u64
Returns a mutable reference to checkpoint_hi.
If the field is unset, it is first initialized with the default value.
Sourcepub fn checkpoint_hi_opt(&self) -> Option<u64>
pub fn checkpoint_hi_opt(&self) -> Option<u64>
Sourcepub fn set_checkpoint_hi(&mut self, field: u64)
pub fn set_checkpoint_hi(&mut self, field: u64)
Sets checkpoint_hi with the provided value.
Sourcepub fn with_checkpoint_hi(self, field: u64) -> Self
pub fn with_checkpoint_hi(self, field: u64) -> Self
Sets checkpoint_hi with the provided value.
Sourcepub fn checkpoint_lo_opt_mut(&mut self) -> Option<&mut u64>
pub fn checkpoint_lo_opt_mut(&mut self) -> Option<&mut u64>
Sourcepub fn checkpoint_lo_mut(&mut self) -> &mut u64
pub fn checkpoint_lo_mut(&mut self) -> &mut u64
Returns a mutable reference to checkpoint_lo.
If the field is unset, it is first initialized with the default value.
Sourcepub fn checkpoint_lo_opt(&self) -> Option<u64>
pub fn checkpoint_lo_opt(&self) -> Option<u64>
Sourcepub fn set_checkpoint_lo(&mut self, field: u64)
pub fn set_checkpoint_lo(&mut self, field: u64)
Sets checkpoint_lo with the provided value.
Sourcepub fn with_checkpoint_lo(self, field: u64) -> Self
pub fn with_checkpoint_lo(self, field: u64) -> Self
Sets checkpoint_lo with the provided value.
Source§impl Watermark
impl Watermark
Sourcepub fn cursor(&self) -> &[u8] ⓘ
pub fn cursor(&self) -> &[u8] ⓘ
Returns the value of cursor, or the default value if cursor is unset.
Sourcepub fn checkpoint_hi(&self) -> u64
pub fn checkpoint_hi(&self) -> u64
Returns the value of checkpoint_hi, or the default value if checkpoint_hi is unset.
Sourcepub fn checkpoint_lo(&self) -> u64
pub fn checkpoint_lo(&self) -> u64
Returns the value of checkpoint_lo, or the default value if checkpoint_lo is unset.
Trait Implementations§
§impl<'de> Deserialize<'de> for Watermark
impl<'de> Deserialize<'de> for Watermark
§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Message for Watermark
impl Message for Watermark
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl MessageFields for Watermark
impl MessageFields for Watermark
const FIELDS: &'static [&'static MessageField]
impl Eq for Watermark
impl StructuralPartialEq for Watermark
Auto Trait Implementations§
impl !Freeze for Watermark
impl RefUnwindSafe for Watermark
impl Send for Watermark
impl Sync for Watermark
impl Unpin for Watermark
impl UnsafeUnpin for Watermark
impl UnwindSafe for Watermark
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
impl<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
fn from_bcs<'de>(bytes: &'de [u8]) -> Result<Self, Error>where
Self: Deserialize<'de>,
fn from_bcs_base64(base64: &str) -> Result<Self, Error>where
Self: DeserializeOwned,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.