Skip to main content

TemporalContext

Struct TemporalContext 

Source
pub struct TemporalContext { /* private fields */ }
Expand description

Unified temporal-context bundle for business-day / holiday awareness.

Arc<TemporalContext> is the intended ownership model — construct once in the orchestrator, clone into each generator via generator.set_temporal_context(Arc::clone(&ctx)).

Implementations§

Source§

impl TemporalContext

Source

pub fn new(region: Region, start_date: NaiveDate, end_date: NaiveDate) -> Self

Build a temporal context that covers the inclusive span [start_date, end_date] in the given region.

Holiday calendars are loaded per-year and merged into a single calendar so multi-year pipelines work correctly.

Source

pub fn shared( region: Region, start_date: NaiveDate, end_date: NaiveDate, ) -> Arc<Self>

Convenience wrapper around TemporalContext::new that returns an Arc.

Source

pub fn region(&self) -> Region

Region this context was built for.

Source

pub fn start_date(&self) -> NaiveDate

Inclusive start of the covered span.

Source

pub fn end_date(&self) -> NaiveDate

Inclusive end of the covered span.

Source

pub fn calculator(&self) -> &BusinessDayCalculator

Access the wrapped BusinessDayCalculator directly. Useful when callers need settlement-rule or half-day APIs the shortcuts below don’t expose.

Source

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

Is date a business day in this region?

Source

pub fn adjust_to_business_day(&self, date: NaiveDate) -> NaiveDate

Snap date forward to the next business day (inclusive — if date is already a business day, it’s returned unchanged). Used by document-flow generators to ensure posting dates never land on a weekend or holiday.

Source

pub fn adjust_to_previous_business_day(&self, date: NaiveDate) -> NaiveDate

Snap date backward to the previous business day (inclusive).

Source

pub fn sample_business_day_in_range<R: Rng + ?Sized>( &self, rng: &mut R, start: NaiveDate, end: NaiveDate, ) -> NaiveDate

Sample a business day uniformly from [start, end] (inclusive).

Implementation strategy: sample a raw offset from the RNG, then snap forward to the next business day. This preserves existing RNG call counts for unit tests that rely on a specific draw sequence — each sample consumes exactly one rng.random_range(...) call, just like the pre-v3.4.1 raw rng.random_range(0..=days_range) pattern.

If snapping forward would exceed end, the result is clamped to the nearest preceding business day (to guarantee the result stays in range).

Trait Implementations§

Source§

impl Clone for TemporalContext

Source§

fn clone(&self) -> TemporalContext

Returns a duplicate 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 TemporalContext

Source§

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

Formats the value using the given formatter. Read more

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

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

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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

Source§

type Output = T

Should always be Self
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, 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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