pub struct SubscribeRequestView<'a> {
pub table: &'a str,
pub where_sql: &'a str,
pub since_sequence_number: Option<u64>,
pub __buffa_unknown_fields: UnknownFieldsView<'a>,
}Expand description
Stream every batch whose rows match where_sql.
Fields§
§table: &'a strTable name registered in the server-side KvSchema.
Field 1: table
where_sql: &'a strScalar SQL boolean expression over this table’s columns (no WHERE
keyword). Compiled once before subscribing, then evaluated for each batch.
Empty means “emit every decoded row”. Subqueries, aggregates, window
functions, and row-expanding expressions are not supported. Stable time
functions use the subscription start time. Volatile functions run for
each batch. Bounded to keep server-side compile cost predictable.
Field 2: where_sql
since_sequence_number: Option<u64>Resume cursor over the underlying store batch log. Use
SubscribeResponse.sequence_number + 1 to resume after a disconnect.
Field 3: since_sequence_number
__buffa_unknown_fields: UnknownFieldsView<'a>Trait Implementations§
Source§impl<'a> Clone for SubscribeRequestView<'a>
impl<'a> Clone for SubscribeRequestView<'a>
Source§fn clone(&self) -> SubscribeRequestView<'a>
fn clone(&self) -> SubscribeRequestView<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a> Debug for SubscribeRequestView<'a>
impl<'a> Debug for SubscribeRequestView<'a>
Source§impl<'a> Default for SubscribeRequestView<'a>
impl<'a> Default for SubscribeRequestView<'a>
Source§fn default() -> SubscribeRequestView<'a>
fn default() -> SubscribeRequestView<'a>
Source§impl<'v> DefaultViewInstance for SubscribeRequestView<'v>
impl<'v> DefaultViewInstance for SubscribeRequestView<'v>
Source§fn default_view_instance<'a>() -> &'a Selfwhere
Self: 'a,
fn default_view_instance<'a>() -> &'a Selfwhere
Self: 'a,
Source§impl<'a> MessageName for SubscribeRequestView<'a>
impl<'a> MessageName for SubscribeRequestView<'a>
Source§const PACKAGE: &'static str = "sql.v1"
const PACKAGE: &'static str = "sql.v1"
Source§const NAME: &'static str = "SubscribeRequest"
const NAME: &'static str = "SubscribeRequest"
. between nesting levels. Read moreSource§impl<'a> MessageView<'a> for SubscribeRequestView<'a>
impl<'a> MessageView<'a> for SubscribeRequestView<'a>
Source§type Owned = SubscribeRequest
type Owned = SubscribeRequest
Source§fn decode_view(buf: &'a [u8]) -> Result<Self, DecodeError>
fn decode_view(buf: &'a [u8]) -> Result<Self, DecodeError>
Source§fn decode_view_with_ctx(
buf: &'a [u8],
ctx: DecodeContext<'_>,
) -> Result<Self, DecodeError>
fn decode_view_with_ctx( buf: &'a [u8], ctx: DecodeContext<'_>, ) -> Result<Self, DecodeError>
Source§fn merge_view_field(
&mut self,
tag: Tag,
cur: &'a [u8],
before_tag: &'a [u8],
ctx: DecodeContext<'_>,
) -> Result<&'a [u8], DecodeError>
fn merge_view_field( &mut self, tag: Tag, cur: &'a [u8], before_tag: &'a [u8], ctx: DecodeContext<'_>, ) -> Result<&'a [u8], DecodeError>
Source§fn to_owned_message(&self) -> Result<SubscribeRequest, DecodeError>
fn to_owned_message(&self) -> Result<SubscribeRequest, DecodeError>
Source§fn to_owned_from_source(
&self,
__buffa_src: Option<&Bytes>,
) -> Result<SubscribeRequest, DecodeError>
fn to_owned_from_source( &self, __buffa_src: Option<&Bytes>, ) -> Result<SubscribeRequest, DecodeError>
bytes::Bytes-typed fields from source instead of copying. Read moreSource§fn decode_view_ctx(
buf: &'a [u8],
ctx: DecodeContext<'_>,
) -> Result<Self, DecodeError>where
Self: Default,
fn decode_view_ctx(
buf: &'a [u8],
ctx: DecodeContext<'_>,
) -> Result<Self, DecodeError>where
Self: Default,
DecodeContext
(remaining recursion depth and unknown-field allowance), driving the
provided tag loop over merge_view_field. Read moreSource§fn merge_into_view(
&mut self,
buf: &'a [u8],
ctx: DecodeContext<'_>,
) -> Result<(), DecodeError>
fn merge_into_view( &mut self, buf: &'a [u8], ctx: DecodeContext<'_>, ) -> Result<(), DecodeError>
buf into this view (proto merge semantics):
repeated fields append, singular fields last-wins, singular message
fields merge recursively. Read moreSource§impl<'__a> Serialize for SubscribeRequestView<'__a>
Serializes this view as protobuf JSON.
impl<'__a> Serialize for SubscribeRequestView<'__a>
Serializes this view as protobuf JSON.
Implicit-presence fields with default values are omitted, required
fields are always emitted, explicit-presence (optional) fields are
emitted only when set, bytes fields are base64-encoded, and enum
values are their proto name strings.
This impl uses serialize_map(None) because the number of emitted
fields depends on default-omission rules; serializers that require
known map lengths (e.g. bincode) will return a runtime error.
Use the owned message type for those formats.
Source§impl<'a> ViewEncode<'a> for SubscribeRequestView<'a>
impl<'a> ViewEncode<'a> for SubscribeRequestView<'a>
Source§fn compute_size(&self, _cache: &mut SizeCache) -> u32
fn compute_size(&self, _cache: &mut SizeCache) -> u32
Source§fn write_to(&self, _cache: &mut SizeCache, buf: &mut impl EncodeSink)
fn write_to(&self, _cache: &mut SizeCache, buf: &mut impl EncodeSink)
cache (populated by a prior
compute_size call on the same cache). Read moreSource§fn encode(&self, buf: &mut impl EncodeSink)
fn encode(&self, buf: &mut impl EncodeSink)
Source§fn try_encode(&self, buf: &mut impl EncodeSink) -> Result<(), EncodeError>
fn try_encode(&self, buf: &mut impl EncodeSink) -> Result<(), EncodeError>
MAX_MESSAGE_BYTES). Read moreSource§fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl EncodeSink)
fn encode_with_cache(&self, cache: &mut SizeCache, buf: &mut impl EncodeSink)
Source§fn try_encode_with_cache(
&self,
cache: &mut SizeCache,
buf: &mut impl EncodeSink,
) -> Result<(), EncodeError>
fn try_encode_with_cache( &self, cache: &mut SizeCache, buf: &mut impl EncodeSink, ) -> Result<(), EncodeError>
SizeCache,
returning an error instead of panicking if the encoded size exceeds
the 2 GiB protobuf limit (MAX_MESSAGE_BYTES).
Clears the cache first. Read moreSource§fn try_encode_bounded(
&self,
max_bytes: u32,
buf: &mut impl EncodeSink,
) -> Result<u32, EncodeError>
fn try_encode_bounded( &self, max_bytes: u32, buf: &mut impl EncodeSink, ) -> Result<u32, EncodeError>
buf only if its encoded size fits within
max_bytes, using a single size pass that is then reused for the write. Read moreSource§fn try_encode_bounded_with_cache(
&self,
max_bytes: u32,
cache: &mut SizeCache,
buf: &mut impl EncodeSink,
) -> Result<u32, EncodeError>
fn try_encode_bounded_with_cache( &self, max_bytes: u32, cache: &mut SizeCache, buf: &mut impl EncodeSink, ) -> Result<u32, EncodeError>
Source§fn encoded_len(&self) -> u32
fn encoded_len(&self) -> u32
Source§fn try_encoded_len(&self) -> Result<u32, EncodeError>
fn try_encoded_len(&self) -> Result<u32, EncodeError>
MAX_MESSAGE_BYTES). Read moreSource§fn encode_length_delimited(&self, buf: &mut impl EncodeSink)
fn encode_length_delimited(&self, buf: &mut impl EncodeSink)
Source§fn try_encode_length_delimited(
&self,
buf: &mut impl EncodeSink,
) -> Result<(), EncodeError>
fn try_encode_length_delimited( &self, buf: &mut impl EncodeSink, ) -> Result<(), EncodeError>
MAX_MESSAGE_BYTES). Read moreSource§fn try_encode_to_vec(&self) -> Result<Vec<u8>, EncodeError>
fn try_encode_to_vec(&self) -> Result<Vec<u8>, EncodeError>
Vec<u8>, returning an error instead of panicking
if the encoded size exceeds the 2 GiB protobuf limit
(MAX_MESSAGE_BYTES). Read moreSource§fn encode_to_bytes(&self) -> Bytes
fn encode_to_bytes(&self) -> Bytes
bytes::Bytes. Read moreSource§fn try_encode_to_bytes(&self) -> Result<Bytes, EncodeError>
fn try_encode_to_bytes(&self) -> Result<Bytes, EncodeError>
bytes::Bytes, returning an error instead of
panicking if the encoded size exceeds the 2 GiB protobuf limit
(MAX_MESSAGE_BYTES). Read moreSource§impl ViewReborrow for SubscribeRequestView<'static>
impl ViewReborrow for SubscribeRequestView<'static>
Source§type Reborrowed<'b> = SubscribeRequestView<'b>
type Reborrowed<'b> = SubscribeRequestView<'b>
'b.Source§fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b>
fn reborrow<'b>(this: &'b Self) -> &'b Self::Reborrowed<'b>
&'b Self (= &'b FooView<'static>) to
&'b Self::Reborrowed<'b> (= &'b FooView<'b>). The canonical body
is just this; the compiler accepts it via standard lifetime
variance for covariant view types. Read moreAuto Trait Implementations§
impl<'a> Freeze for SubscribeRequestView<'a>
impl<'a> RefUnwindSafe for SubscribeRequestView<'a>
impl<'a> Send for SubscribeRequestView<'a>
impl<'a> Sync for SubscribeRequestView<'a>
impl<'a> Unpin for SubscribeRequestView<'a>
impl<'a> UnsafeUnpin for SubscribeRequestView<'a>
impl<'a> UnwindSafe for SubscribeRequestView<'a>
Blanket Implementations§
impl<T> Allocation for T
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 more