pub struct TimeRangeSelection {
pub selector: i32,
pub start_ms: Option<u64>,
pub grid: Option<Grid>,
}Expand description
Operand of an IN_TIME_RANGE where clause: which window of a
timeRange grid the query selects. Typed rather than riding
DocumentFieldValue — the selection is not a field value, and a
structured message keeps the selector an enum instead of a
magic string.
The relative selectors are resolved server-side: NEWEST is the
freshest started window (largest grid start <= block time; the
latest partial slice of history), OLDEST the oldest window still
active at block time (a near-full trailing window of ~range —
best for “trending over the last window”). The proof verifier
re-derives the same window from the quorum-signed response
metadata time, so neither side trusts the other’s clock.
BY_START names a window absolutely — any window, current or
historic — by its start. start_ms is then required and must lie
on the grid (start_ms == phase + k * step, in milliseconds);
an unaligned start is rejected rather than snapped. A window with
no documents (including one that has not started yet) is a
provable empty answer, not an error. The relative selectors must
NOT carry start_ms — one wire spelling per meaning.
Fields§
§selector: i32§start_ms: Option<u64>BY_START only: the selected window’s start, as a millisecond
timestamp on the grid (see the message docstring). Rejected on
the relative selectors.
grid: Option<Grid>Implementations§
Source§impl TimeRangeSelection
impl TimeRangeSelection
Trait Implementations§
Source§impl Clone for TimeRangeSelection
impl Clone for TimeRangeSelection
Source§fn clone(&self) -> TimeRangeSelection
fn clone(&self) -> TimeRangeSelection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for TimeRangeSelection
Source§impl Debug for TimeRangeSelection
impl Debug for TimeRangeSelection
Source§impl Default for TimeRangeSelection
impl Default for TimeRangeSelection
Source§impl<'de> Deserialize<'de> for TimeRangeSelection
impl<'de> Deserialize<'de> for TimeRangeSelection
Source§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>,
impl Eq for TimeRangeSelection
Source§impl Hash for TimeRangeSelection
impl Hash for TimeRangeSelection
Source§impl Message for TimeRangeSelection
impl Message for TimeRangeSelection
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 Mockable for TimeRangeSelection
impl Mockable for TimeRangeSelection
Source§impl PartialEq for TimeRangeSelection
impl PartialEq for TimeRangeSelection
Source§fn eq(&self, other: &TimeRangeSelection) -> bool
fn eq(&self, other: &TimeRangeSelection) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for TimeRangeSelection
impl Serialize for TimeRangeSelection
impl StructuralPartialEq for TimeRangeSelection
Auto Trait Implementations§
impl Freeze for TimeRangeSelection
impl RefUnwindSafe for TimeRangeSelection
impl Send for TimeRangeSelection
impl Sync for TimeRangeSelection
impl Unpin for TimeRangeSelection
impl UnsafeUnpin for TimeRangeSelection
impl UnwindSafe for TimeRangeSelection
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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<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>
§impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
impl<T, U> IntoPlatformVersioned<U> for Twhere
U: FromPlatformVersioned<T>,
§fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U
§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].