pub struct Interval {
pub months: i64,
pub days: i64,
pub nanos: i128,
}Expand description
Calendar-aware time interval.
Stores months, days, and nanoseconds separately to preserve semantics.
Fields§
§months: i64§days: i64§nanos: i128Implementations§
Source§impl Interval
impl Interval
pub const ZERO: Interval
pub const DAYS_IN_MONTH: f64 = 30.0
pub const DAYS_IN_MONTH_AVG: f64 = 30.436875
pub const SECS_IN_DAY: i64
pub const NANOS_IN_SEC: i128 = 1_000_000_000
pub const NANOS_IN_HOUR: i128
pub const NANOS_IN_DAY: i128
pub const MICROS_IN_DAY: i128
pub const fn new(months: i64, days: i64, nanos: i128) -> Self
pub const fn from_duration(duration: &Duration) -> Self
pub const fn from_nanos(value: i128) -> Self
pub const fn from_micros(value: i128) -> Self
pub const fn from_millis(value: i128) -> Self
pub const fn from_secs(value: i64) -> Self
pub const fn from_mins(value: i64) -> Self
pub const fn from_hours(value: i64) -> Self
pub const fn from_days(value: i64) -> Self
pub const fn from_weeks(value: i64) -> Self
pub const fn from_months(value: i64) -> Self
pub const fn from_years(value: i64) -> Self
Sourcepub const fn as_hmsns(&self) -> (i128, u8, u8, u32)
pub const fn as_hmsns(&self) -> (i128, u8, u8, u32)
Deconstruct into (hours, minutes, seconds, nanoseconds).
pub const fn is_zero(&self) -> bool
Sourcepub const fn as_duration(&self, days_in_month: f64) -> Duration
pub const fn as_duration(&self, days_in_month: f64) -> Duration
Convert to std::time::Duration (approximate).
Uses days_in_month for conversion.
pub const fn units_and_factors(&self) -> &[(IntervalUnit, i128)]
Sourcepub fn units_mask(&self) -> u8
pub fn units_mask(&self) -> u8
Identify non-zero components (year, month, etc.).
Sourcepub fn unit_value(&self, unit: IntervalUnit) -> i128
pub fn unit_value(&self, unit: IntervalUnit) -> i128
Extract value for a specific unit (e.g. number of full years).
Trait Implementations§
Source§impl AddAssign for Interval
impl AddAssign for Interval
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+= operation. Read moreimpl Copy for Interval
impl Eq for Interval
Source§impl Expression for Interval
impl Expression for Interval
Source§fn write_query(
&self,
writer: &dyn SqlWriter,
context: &mut Context,
out: &mut DynQuery,
)
fn write_query( &self, writer: &dyn SqlWriter, context: &mut Context, out: &mut DynQuery, )
Generates the SQL representation of this expression.
Source§fn accept_visitor(
&self,
_matcher: &mut dyn ExpressionVisitor,
_writer: &dyn SqlWriter,
_context: &mut Context,
_out: &mut DynQuery,
) -> bool
fn accept_visitor( &self, _matcher: &mut dyn ExpressionVisitor, _writer: &dyn SqlWriter, _context: &mut Context, _out: &mut DynQuery, ) -> bool
Traverses the expression with a visitor. Read more
Source§fn as_identifier(&self, context: &mut Context) -> String
fn as_identifier(&self, context: &mut Context) -> String
Renders the expression as a string suitable for use as an identifier.
Source§impl OpPrecedence for Interval
impl OpPrecedence for Interval
Source§fn precedence(&self, _: &dyn SqlWriter) -> i32
fn precedence(&self, _: &dyn SqlWriter) -> i32
Lower numbers bind weaker, writers parenthesize when child precedence <= operator precedence.
Auto Trait Implementations§
impl Freeze for Interval
impl RefUnwindSafe for Interval
impl Send for Interval
impl Sync for Interval
impl Unpin for Interval
impl UnsafeUnpin for Interval
impl UnwindSafe for Interval
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
Mutably borrows from an owned value. Read more