pub struct RangeFrameBounds {
pub order_data_type: DataType,
pub order_type: OrderType,
pub offset_data_type: DataType,
pub start: RangeFrameBound,
pub end: RangeFrameBound,
}
Fields§
§order_data_type: DataType
§order_type: OrderType
§offset_data_type: DataType
§start: RangeFrameBound
§end: RangeFrameBound
Implementations§
source§impl RangeFrameBounds
impl RangeFrameBounds
pub(super) fn from_protobuf(bounds: &PbRangeFrameBounds) -> Result<Self>
pub(super) fn to_protobuf(&self) -> PbRangeFrameBounds
source§impl RangeFrameBounds
impl RangeFrameBounds
sourcepub fn frame_start_of(
&self,
order_value: impl ToOwnedDatum,
) -> Sentinelled<Datum>
pub fn frame_start_of( &self, order_value: impl ToOwnedDatum, ) -> Sentinelled<Datum>
Get the frame start for a given order column value.
§Examples
For the following frames:
ORDER BY x ASC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
ORDER BY x DESC RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
For any CURRENT ROW with any order value, the frame start is always the first-most row, which is
represented by Sentinelled::Smallest
.
For the following frame:
ORDER BY x ASC RANGE BETWEEN 10 PRECEDING AND CURRENT ROW
For CURRENT ROW with order value 100
, the frame start is the FIRST row with order value 90
.
For the following frame:
ORDER BY x DESC RANGE BETWEEN 10 PRECEDING AND CURRENT ROW
For CURRENT ROW with order value 100
, the frame start is the FIRST row with order value 110
.
sourcepub fn frame_end_of(&self, order_value: impl ToOwnedDatum) -> Sentinelled<Datum>
pub fn frame_end_of(&self, order_value: impl ToOwnedDatum) -> Sentinelled<Datum>
Get the frame end for a given order column value. It’s very similar to frame_start_of
, just with
everything on the other direction.
sourcepub fn first_curr_of(
&self,
order_value: impl ToOwnedDatum,
) -> Sentinelled<Datum>
pub fn first_curr_of( &self, order_value: impl ToOwnedDatum, ) -> Sentinelled<Datum>
Get the order value of the CURRENT ROW of the first frame that includes the given order value.
§Examples
For the following frames:
ORDER BY x ASC RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
ORDER BY x DESC RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING
For any given order value, the first CURRENT ROW is always the first-most row, which is
represented by Sentinelled::Smallest
.
For the following frame:
ORDER BY x ASC RANGE BETWEEN CURRENT ROW AND 10 FOLLOWING
For a given order value 100
, the first CURRENT ROW should have order value 90
.
For the following frame:
ORDER BY x DESC RANGE BETWEEN CURRENT ROW AND 10 FOLLOWING
For a given order value 100
, the first CURRENT ROW should have order value 110
.
sourcepub fn last_curr_of(&self, order_value: impl ToOwnedDatum) -> Sentinelled<Datum>
pub fn last_curr_of(&self, order_value: impl ToOwnedDatum) -> Sentinelled<Datum>
Get the order value of the CURRENT ROW of the last frame that includes the given order value.
It’s very similar to first_curr_of
, just with everything on the other direction.
Trait Implementations§
source§impl Clone for RangeFrameBounds
impl Clone for RangeFrameBounds
source§fn clone(&self) -> RangeFrameBounds
fn clone(&self) -> RangeFrameBounds
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RangeFrameBounds
impl Debug for RangeFrameBounds
source§impl Display for RangeFrameBounds
impl Display for RangeFrameBounds
source§impl FrameBoundsImpl for RangeFrameBounds
impl FrameBoundsImpl for RangeFrameBounds
source§impl Hash for RangeFrameBounds
impl Hash for RangeFrameBounds
source§impl PartialEq for RangeFrameBounds
impl PartialEq for RangeFrameBounds
impl Eq for RangeFrameBounds
impl StructuralPartialEq for RangeFrameBounds
Auto Trait Implementations§
impl Freeze for RangeFrameBounds
impl !RefUnwindSafe for RangeFrameBounds
impl Send for RangeFrameBounds
impl Sync for RangeFrameBounds
impl Unpin for RangeFrameBounds
impl !UnwindSafe for RangeFrameBounds
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync 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.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§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
§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<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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> 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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.