Struct Both
struct Both<'a>(&'a dyn Calendar, &'a dyn Calendar);Expand description
The days good on both calendars, read as one for the settle roll only. A per-call view, so the roll builds no holiday grid; private, so no caller holds a calendar answering for two.
Tuple Fields§
§0: &'a dyn Calendar§1: &'a dyn CalendarTrait Implementations§
§impl Calendar for Both<'_>
impl Calendar for Both<'_>
§fn is_weekend(&self, date: NaiveDate) -> bool
fn is_weekend(&self, date: NaiveDate) -> bool
Whether
date is a weekend (Saturday or Sunday by default).§fn is_holiday(&self, date: NaiveDate) -> bool
fn is_holiday(&self, date: NaiveDate) -> bool
Whether
date is closed for a reason beyond the weekend: a listed
closure, not a Saturday. A weekend day carrying no listed closure is not
a holiday, and the default answers false for every date accordingly. Read more§fn is_business_day(&self, date: NaiveDate) -> bool
fn is_business_day(&self, date: NaiveDate) -> bool
Whether
date is a good business day (not a weekend, not a holiday).§fn adjust(
&self,
date: NaiveDate,
convention: BusinessDayConvention,
) -> NaiveDate
fn adjust( &self, date: NaiveDate, convention: BusinessDayConvention, ) -> NaiveDate
Rolls
date to a business day per convention.§fn advance(
&self,
date: NaiveDate,
period: Period,
convention: BusinessDayConvention,
end_of_month: bool,
) -> NaiveDate
fn advance( &self, date: NaiveDate, period: Period, convention: BusinessDayConvention, end_of_month: bool, ) -> NaiveDate
§fn advance_with_roll(
&self,
date: NaiveDate,
period: Period,
roll: RollConvention,
convention: BusinessDayConvention,
end_of_month: bool,
) -> NaiveDate
fn advance_with_roll( &self, date: NaiveDate, period: Period, roll: RollConvention, convention: BusinessDayConvention, end_of_month: bool, ) -> NaiveDate
Advances
date by period, snaps the result by roll, then adjusts it
per convention — the roll-aware form of Calendar::advance, which is
this method under RollConvention::None. Read more§fn end_of_month(&self, date: NaiveDate) -> NaiveDate
fn end_of_month(&self, date: NaiveDate) -> NaiveDate
The last business day of
date’s month — the latest good business
day in the month (weekends and holidays rolled back). Read more§fn is_end_of_month(&self, date: NaiveDate) -> bool
fn is_end_of_month(&self, date: NaiveDate) -> bool
Whether
date is the last business day of its month (its business
end-of-month). Strict: a trailing
weekend day after the last business day is not end-of-month (use
Calendar::is_month_end_anchor for the end-of-month roll gate, which
also fires on those trailing days).§fn is_month_end_anchor(&self, date: NaiveDate) -> bool
fn is_month_end_anchor(&self, date: NaiveDate) -> bool
Whether
date anchors the end-of-month roll: it is on or after its
month’s last business day. This fires for the last business day and any
trailing weekend/holiday days (so a month-end falling on a weekend, e.g.
Sat 28-Feb, still anchors the rule), matching the end-of-month advance
behaviour in Calendar::advance.§fn next_business_day(&self, date: NaiveDate) -> NaiveDate
fn next_business_day(&self, date: NaiveDate) -> NaiveDate
The first business day on or after
date.§fn previous_business_day(&self, date: NaiveDate) -> NaiveDate
fn previous_business_day(&self, date: NaiveDate) -> NaiveDate
The first business day on or before
date.§fn add_business_days(&self, date: NaiveDate, n: i64) -> NaiveDate
fn add_business_days(&self, date: NaiveDate, n: i64) -> NaiveDate
Shifts
date by n good business days, skipping weekends and holidays.
Negative n looks backward; n == 0 returns date unchanged (even if it
is itself a holiday). Each counted step lands on a business day — this is
the primitive a fixing lag (e.g. -2 business days off the reset anchor)
is built on.§fn business_days_between(&self, start: NaiveDate, end: NaiveDate) -> i64
fn business_days_between(&self, start: NaiveDate, end: NaiveDate) -> i64
The number of business days in the half-open interval
[start, end).
Returns 0 when start >= end. This is the count BUS/252 divides by
252. The default iterates day by day; the data-backed calendars
(DataCalendar, JointCalendar) override it with an O(1)
prefix-sum subtraction over their precomputed business-day grid.§fn business_days_between_inc(
&self,
from: NaiveDate,
to: NaiveDate,
include_first: bool,
include_last: bool,
) -> i64
fn business_days_between_inc( &self, from: NaiveDate, to: NaiveDate, include_first: bool, include_last: bool, ) -> i64
The number of business days between
from and to with caller-controlled
inclusion of each endpoint. When
to < from the count is the negation of the forward count with the
inclusion flags swapped; when to == from the result is 1 only if both
endpoints are included and the date is a business day. The two-argument
Calendar::business_days_between is the [start, end) case
(include_first = true, include_last = false).Auto Trait Implementations§
impl<'a> !RefUnwindSafe for Both<'a>
impl<'a> !UnwindSafe for Both<'a>
impl<'a> Freeze for Both<'a>
impl<'a> Send for Both<'a>
impl<'a> Sync for Both<'a>
impl<'a> Unpin for Both<'a>
impl<'a> UnsafeUnpin for Both<'a>
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