risingwave_common::types

Struct Interval

source
pub struct Interval {
    months: i32,
    days: i32,
    usecs: i64,
}
Expand description

Every interval can be represented by a Interval.

Note that the difference between Interval and Instant. For example, 5 yrs 1 month 25 days 23:22:57 is a interval (Can be interpreted by Interval Unit with months = 61, days = 25, usecs = (57 + 23 * 3600 + 22 * 60) * 1000000), 1970-01-01 04:05:06 is a Instant or Timestamp One month may contain 28/31 days. One day may contain 23/25 hours. This internals is learned from PG: https://www.postgresql.org/docs/9.1/datatype-datetime.html#:~:text=field%20is%20negative.-,Internally,-interval%20values%20are

Fields§

§months: i32§days: i32§usecs: i64

Implementations§

source§

impl Interval

source

pub const MIN: Self = _

Smallest interval value.

source

pub const USECS_PER_DAY: i64 = 86_400_000_000i64

source

pub const USECS_PER_MONTH: i64 = 2_592_000_000_000i64

source

pub const USECS_PER_SEC: i64 = 1_000_000i64

source

pub fn from_month_day_usec(months: i32, days: i32, usecs: i64) -> Self

Creates a new Interval from the given number of months, days, and microseconds.

source

pub fn months(&self) -> i32

Returns the total number of whole months.

Note the difference between months and months_field.

We have: months = years_field * 12 + months_field

§Example
let interval: Interval = "5 yrs 1 month".parse().unwrap();
assert_eq!(interval.months(), 61);
assert_eq!(interval.months_field(), 1);
source

pub fn days(&self) -> i32

Returns the number of days.

source

pub fn usecs(&self) -> i64

Returns the number of microseconds.

Note the difference between usecs and seconds_in_micros.

We have: usecs = (hours_field * 3600 + minutes_field * 60) * 1_000_000 + seconds_in_micros.

source

pub fn usecs_of_day(&self) -> u64

Calculates the remaining number of microseconds. range: 0..86_400_000_000

Note the difference between usecs and usecs_of_day.

let interval: Interval = "-1:00:00".parse().unwrap();
assert_eq!(interval.usecs(), -1 * 60 * 60 * 1_000_000);
assert_eq!(interval.usecs_of_day(), 23 * 60 * 60 * 1_000_000);
source

pub fn years_field(&self) -> i32

Returns the years field. range: unlimited

§Example
let interval: Interval = "2332 yrs 12 months".parse().unwrap();
assert_eq!(interval.years_field(), 2333);
source

pub fn months_field(&self) -> i32

Returns the months field. range: -11..=11

§Example
let interval: Interval = "15 months".parse().unwrap();
assert_eq!(interval.months_field(), 3);

let interval: Interval = "-15 months".parse().unwrap();
assert_eq!(interval.months_field(), -3);
source

pub fn days_field(&self) -> i32

Returns the days field. range: unlimited

§Example
let interval: Interval = "1 months 100 days 25:00:00".parse().unwrap();
assert_eq!(interval.days_field(), 100);
source

pub fn hours_field(&self) -> i64

Returns the hours field. range: unlimited

§Example
let interval: Interval = "25:00:00".parse().unwrap();
assert_eq!(interval.hours_field(), 25);

let interval: Interval = "-25:00:00".parse().unwrap();
assert_eq!(interval.hours_field(), -25);
source

pub fn minutes_field(&self) -> i32

Returns the minutes field. range: -59..=-59

§Example
let interval: Interval = "00:20:00".parse().unwrap();
assert_eq!(interval.minutes_field(), 20);

let interval: Interval = "-00:20:00".parse().unwrap();
assert_eq!(interval.minutes_field(), -20);
source

pub fn seconds_in_micros(&self) -> i32

Returns the seconds field, including fractional parts, in microseconds. range: -59_999_999..=59_999_999

§Example
let interval: Interval = "01:02:03.45678".parse().unwrap();
assert_eq!(interval.seconds_in_micros(), 3_456_780);

let interval: Interval = "-01:02:03.45678".parse().unwrap();
assert_eq!(interval.seconds_in_micros(), -3_456_780);
source

pub fn epoch_in_micros(&self) -> i128

Returns the total number of microseconds, as defined by PostgreSQL extract.

Note this value is not used by interval ordering (IntervalCmpValue) and is not consistent with it.

source

pub fn from_protobuf(cursor: &mut Cursor<&[u8]>) -> ArrayResult<Interval>

source

pub fn to_protobuf<T: Write>(self, output: &mut T) -> ArrayResult<usize>

source

pub fn checked_mul_int<I>(&self, rhs: I) -> Option<Self>
where I: TryInto<i32>,

Multiple Interval by an integer with overflow check.

source

fn from_floats(months: f64, days: f64, usecs: f64) -> Option<Self>

Internal utility used by Self::mul_float and Self::div_float to adjust fractional units. Not intended as general constructor.

source

pub fn div_float<I>(&self, rhs: I) -> Option<Self>
where I: TryInto<F64>,

Divides Interval by an integer/float with zero check.

source

pub fn mul_float<I>(&self, rhs: I) -> Option<Self>
where I: TryInto<F64>,

times Interval with an integer/float.

source

pub fn exact_div(&self, rhs: &Self) -> Option<i64>

Performs an exact division, returns None if for any unit, lhs % rhs != 0.

source

pub fn is_positive(&self) -> bool

Checks if Interval is positive.

source

pub fn is_never_negative(&self) -> bool

Checks if all fields of Interval are all non-negative.

source

pub const fn truncate_millis(self) -> Self

Truncate the interval to the precision of milliseconds.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(
    interval.truncate_millis().to_string(),
    "5 years 1 mon 25 days 23:22:57.123"
);
source

pub const fn truncate_second(self) -> Self

Truncate the interval to the precision of seconds.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(
    interval.truncate_second().to_string(),
    "5 years 1 mon 25 days 23:22:57"
);
source

pub const fn truncate_minute(self) -> Self

Truncate the interval to the precision of minutes.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(
    interval.truncate_minute().to_string(),
    "5 years 1 mon 25 days 23:22:00"
);
source

pub const fn truncate_hour(self) -> Self

Truncate the interval to the precision of hours.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(
    interval.truncate_hour().to_string(),
    "5 years 1 mon 25 days 23:00:00"
);
source

pub const fn truncate_day(self) -> Self

Truncate the interval to the precision of days.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(interval.truncate_day().to_string(), "5 years 1 mon 25 days");
source

pub const fn truncate_month(self) -> Self

Truncate the interval to the precision of months.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(interval.truncate_month().to_string(), "5 years 1 mon");
source

pub const fn truncate_quarter(self) -> Self

Truncate the interval to the precision of quarters.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(interval.truncate_quarter().to_string(), "5 years");
source

pub const fn truncate_year(self) -> Self

Truncate the interval to the precision of years.

§Example
let interval: Interval = "5 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(interval.truncate_year().to_string(), "5 years");
source

pub const fn truncate_decade(self) -> Self

Truncate the interval to the precision of decades.

§Example
let interval: Interval = "15 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(interval.truncate_decade().to_string(), "10 years");
source

pub const fn truncate_century(self) -> Self

Truncate the interval to the precision of centuries.

§Example
let interval: Interval = "115 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(interval.truncate_century().to_string(), "100 years");
source

pub const fn truncate_millennium(self) -> Self

Truncate the interval to the precision of millenniums.

§Example
let interval: Interval = "1115 years 1 mon 25 days 23:22:57.123".parse().unwrap();
assert_eq!(interval.truncate_millennium().to_string(), "1000 years");
source

pub fn justify_hour(self) -> Option<Self>

source§

impl Interval

source

pub fn as_iso_8601(&self) -> String

source

pub fn from_iso_8601(s: &str) -> Result<Self, IntervalParseError>

Converts str to interval

The input str must have the following format: P<years>Y<months>M<days>DT<hours>H<minutes>M<seconds>S

Example

  • P1Y2M3DT4H5M6.78S
source§

impl Interval

Trait Implementations§

source§

impl Add for Interval

source§

type Output = Interval

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self

Performs the + operation. Read more
source§

impl CheckedAdd<Interval> for Timestamp

source§

impl CheckedAdd for Interval

source§

fn checked_add(&self, other: &Self) -> Option<Self>

Adds two numbers, checking for overflow. If overflow happens, None is returned.
source§

impl CheckedNeg for Interval

source§

fn checked_neg(&self) -> Option<Self>

Negates a number, returning None for results that can’t be represented, like signed MIN values that can’t be positive, or non-zero unsigned values that can’t be negative. Read more
source§

impl CheckedSub for Interval

source§

fn checked_sub(&self, other: &Self) -> Option<Self>

Subtracts two numbers, checking for underflow. If underflow happens, None is returned.
source§

impl Clone for Interval

source§

fn clone(&self) -> Interval

Returns a copy 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 Interval

source§

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

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

impl Default for Interval

source§

fn default() -> Interval

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

impl<'de> Deserialize<'de> for Interval

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for Interval

source§

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

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

impl From<&Interval> for Interval

source§

fn from(p: &PbInterval) -> Self

Converts to this type from the input type.
source§

impl From<Interval> for IntervalCmpValue

source§

fn from(value: Interval) -> Self

Converts to this type from the input type.
source§

impl From<Interval> for ScalarImpl

source§

fn from(val: Interval) -> Self

Converts to this type from the input type.
source§

impl<'scalar> From<Interval> for ScalarRefImpl<'scalar>

source§

fn from(val: Interval) -> Self

Converts to this type from the input type.
source§

impl From<Interval> for Time

In PostgreSQL, casting from interval to time discards the days part.

§Example

use std::str::FromStr;

use risingwave_common::types::{Interval, Time};

let interval = Interval::from_month_day_usec(1, 2, 61000003);
let time = Time::from(interval);
assert_eq!(time, Time::from_str("00:01:01.000003").unwrap());

let interval = Interval::from_month_day_usec(0, 0, -61000003);
let time = Time::from(interval);
assert_eq!(time, Time::from_str("23:58:58.999997").unwrap());
source§

fn from(interval: Interval) -> Self

Converts to this type from the input type.
source§

impl From<Time> for Interval

source§

fn from(time: Time) -> Self

Converts to this type from the input type.
source§

impl FromIntoArrow for Interval

source§

type ArrowType = IntervalMonthDayNano

The corresponding element type in the Arrow array.
source§

fn from_arrow(value: Self::ArrowType) -> Self

source§

fn into_arrow(self) -> Self::ArrowType

source§

impl FromIntoArrow for Interval

source§

type ArrowType = IntervalMonthDayNano

The corresponding element type in the Arrow array.
source§

fn from_arrow(value: Self::ArrowType) -> Self

source§

fn into_arrow(self) -> Self::ArrowType

source§

impl<'a> FromSql<'a> for Interval

source§

fn from_sql( _: &Type, raw: &'a [u8], ) -> Result<Interval, Box<dyn Error + Sync + Send>>

Creates a new value of this type from a buffer of data of the specified Postgres Type in its binary format. Read more
source§

fn accepts(ty: &Type) -> bool

Determines if a value of this type can be created from the specified Postgres Type.
§

fn from_sql_null(ty: &Type) -> Result<Self, Box<dyn Error + Sync + Send>>

Creates a new value of this type from a NULL SQL value. Read more
§

fn from_sql_nullable( ty: &Type, raw: Option<&'a [u8]>, ) -> Result<Self, Box<dyn Error + Sync + Send>>

A convenience function that delegates to from_sql and from_sql_null depending on the value of raw.
source§

impl FromStr for Interval

source§

type Err = IntervalParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, IntervalParseError>

Parses a string s to return a value of this type. Read more
source§

impl Hash for Interval

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl HashKeyDe for Interval

source§

fn deserialize(_data_type: &DataType, buf: impl Buf) -> Self

source§

impl HashKeySer<'_> for Interval

source§

fn serialize_into(self, buf: impl BufMut)

Serialize the scalar into the given buffer.
source§

fn exact_size() -> Option<usize>

Returns Some if the serialized size is known for this scalar type.
source§

fn estimated_size(self) -> usize

Returns the estimated serialized size for this scalar.
source§

impl IntervalTestExt for Interval

source§

fn from_ymd(year: i32, month: i32, days: i32) -> Self

source§

fn from_month(months: i32) -> Self

source§

fn from_days(days: i32) -> Self

source§

fn from_millis(ms: i64) -> Self

source§

fn from_minutes(minutes: i64) -> Self

source§

impl Into<Interval> for Interval

Duplicated logic only used by HopWindow. See #8452.

source§

fn into(self) -> PbInterval

Converts this type into the (usually inferred) input type.
source§

impl Neg for Interval

source§

type Output = Interval

The resulting type after applying the - operator.
source§

fn neg(self) -> Self

Performs the unary - operation. Read more
source§

impl Ord for Interval

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Interval

source§

fn eq(&self, other: &Self) -> 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 PartialOrd for Interval

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl PrimitiveArrayItemType for Interval

source§

const DATA_TYPE: DataType = DataType::Interval

The data type.
source§

fn erase_array_type(arr: PrimitiveArray<Self>) -> ArrayImpl

A helper to convert a primitive array to ArrayImpl.
source§

fn try_into_array(arr: ArrayImpl) -> Option<PrimitiveArray<Self>>

A helper to convert ArrayImpl to self.
source§

fn try_into_array_ref(arr: &ArrayImpl) -> Option<&PrimitiveArray<Self>>

A helper to convert ArrayImpl to self.
source§

fn array_type() -> ArrayType

Returns array type of the primitive array
source§

fn to_protobuf<T: Write>(self, output: &mut T) -> ArrayResult<usize>

source§

fn from_protobuf(cur: &mut Cursor<&[u8]>) -> ArrayResult<Self>

source§

impl RandValue for Interval

source§

fn rand_value<R: Rng>(rand: &mut R) -> Self

source§

impl Scalar for Interval

Implement Scalar for Interval.

source§

type ScalarRefType<'a> = Interval

Type for reference of Scalar
source§

fn as_scalar_ref(&self) -> Interval

Get a reference to current scalar.
source§

fn to_scalar_value(self) -> ScalarImpl

source§

impl ScalarRef<'_> for Interval

Implement ScalarRef for Interval.

source§

type ScalarType = Interval

ScalarType is the owned type of current ScalarRef.
source§

fn to_owned_scalar(&self) -> Interval

Convert ScalarRef to an owned scalar.
source§

fn hash_scalar<H: Hasher>(&self, state: &mut H)

A wrapped hash function to get the hash value for this scaler.
source§

impl Serialize for Interval

Loss of information during the process due to IntervalCmpValue. Only intended for memcomparable encoding.

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Sub for Interval

source§

type Output = Interval

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self

Performs the - operation. Read more
source§

impl ToBinary for Interval

source§

impl ToSql for Interval

source§

fn to_sql_checked( &self, ty: &Type, out: &mut BytesMut, ) -> Result<IsNull, Box<dyn Error + Sync + Send>>

An adaptor method used internally by Rust-Postgres. Read more
source§

fn to_sql( &self, _: &Type, out: &mut BytesMut, ) -> Result<IsNull, Box<dyn Error + Send + Sync + 'static>>

Converts the value of self into the binary format of the specified Postgres Type, appending it to out. Read more
source§

fn accepts(ty: &Type) -> bool

Determines if a value of this type can be converted to the specified Postgres Type.
§

fn encode_format(&self, _ty: &Type) -> Format

Specify the encode format
source§

impl ToText for Interval

source§

fn write<W: Write>(&self, f: &mut W) -> Result

Write the text to the writer regardless of its data type Read more
source§

fn write_with_type<W: Write>(&self, ty: &DataType, f: &mut W) -> Result

Write the text to the writer according to its data type
source§

fn to_text_with_type(&self, ty: &DataType) -> String

Convert to text according to its data type
source§

fn to_text(&self) -> String

to_text is a special version of to_text_with_type, it convert the scalar to default type text. E.g. for Int64, it will convert to text as a Int64 type. We should prefer to use to_text_with_type because it’s more clear and readable. Read more
source§

impl TryFrom<ScalarImpl> for Interval

source§

type Error = ArrayError

The type returned in the event of a conversion error.
source§

fn try_from(val: ScalarImpl) -> ArrayResult<Self>

Performs the conversion.
source§

impl<'scalar> TryFrom<ScalarRefImpl<'scalar>> for Interval

source§

type Error = ArrayError

The type returned in the event of a conversion error.
source§

fn try_from(val: ScalarRefImpl<'scalar>) -> ArrayResult<Self>

Performs the conversion.
source§

impl<'a> WithDataType for &'a Interval

source§

fn default_data_type() -> DataType

Returns the most obvious DataType for the rust type.
source§

impl<'a> WithDataType for &'a mut Interval

source§

fn default_data_type() -> DataType

Returns the most obvious DataType for the rust type.
source§

impl WithDataType for Box<Interval>

source§

fn default_data_type() -> DataType

Returns the most obvious DataType for the rust type.
source§

impl WithDataType for Interval

source§

fn default_data_type() -> DataType

Returns the most obvious DataType for the rust type.
source§

impl Zero for Interval

source§

fn zero() -> Self

Returns the additive identity element of Self, 0. Read more
source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
source§

impl Copy for Interval

source§

impl Eq for Interval

source§

impl ZeroHeapSize for Interval

Auto Trait Implementations§

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
§

impl<T> BorrowToSql for T
where T: ToSql,

§

fn borrow_to_sql(&self) -> &dyn ToSql

Returns a reference to self as a ToSql trait object.
source§

impl<T> CheckedAdd for T
where T: CheckedAdd,

source§

type Output = T

source§

fn checked_add(self, rhs: T) -> Option<T>

source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> EstimateSize for T
where T: ZeroHeapSize,

source§

fn estimated_heap_size(&self) -> usize

The estimated heap size of the current struct in bytes.
source§

fn estimated_size(&self) -> usize
where Self: Sized,

The estimated total size of the current struct in bytes, including the estimated_heap_size and the size of Self.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

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.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<T> IntoResult<T> for T

§

type Err = Infallible

§

fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>

source§

impl<T> IsNegative for T
where T: Zero + Ord,

source§

impl<M> MetricVecRelabelExt for M

source§

fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>

source§

fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>

source§

fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>

Equivalent to RelabeledMetricVec::with_metric_level_relabel_n with metric_level set to MetricLevel::Debug and relabel_num set to 1.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ScalarPartialOrd for T

source§

fn scalar_cmp(&self, other: T) -> Option<Ordering>

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> ToOwnedDatum for T
where T: Into<ScalarImpl>,

source§

fn to_owned_datum(self) -> Option<ScalarImpl>

Convert the datum to an owned Datum.
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. 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> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

source§

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

§

impl<T> DevConfig for T
where T: Send + Sync + 'static + Debug,

§

impl<T> FromSqlOwned for T
where T: for<'a> FromSql<'a>,

§

impl<T> Key for T
where T: Send + Sync + 'static + Hash + Eq,

source§

impl<T> LruKey for T
where T: Eq + Send + Hash,

source§

impl<T> LruValue for T
where T: Send + Sync,

source§

impl<M> Measure for M
where M: Debug + PartialOrd + Add<Output = M> + Default + Clone,

source§

impl<N> NodeTrait for N
where N: Copy + Ord + Hash,

§

impl<T> StorageKey for T
where T: Key + Serialize + DeserializeOwned,

§

impl<T> StorageValue for T
where T: Value + Serialize + DeserializeOwned,

§

impl<T> Value for T
where T: Send + Sync + 'static,