Skip to main content

Both

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 Calendar

Trait Implementations§

§

impl Calendar for Both<'_>

§

fn is_weekend(&self, date: NaiveDate) -> bool

Whether date is a weekend (Saturday or Sunday by default).
§

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

Whether date is a good business day (not a weekend, not a holiday).
§

fn name(&self) -> &str

A short name for the calendar (diagnostic).
§

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

Advances date by period (calendar arithmetic), then adjusts the result per convention. Read more
§

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

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

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

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

The first business day on or after date.
§

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

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

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

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).
§

fn holidays( &self, from: NaiveDate, to: NaiveDate, include_weekends: bool, ) -> Vec<NaiveDate>

The holidays in the inclusive range [from, to], ascending. Weekends are included only when include_weekends is set; a “holiday” is any non-business day.
§

fn business_days(&self, from: NaiveDate, to: NaiveDate) -> Vec<NaiveDate>

The business days in the inclusive range [from, to], ascending.

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.