Skip to main content

Effectivity

Enum Effectivity 

Source
pub enum Effectivity {
    InForce {
        from: NaiveDate,
        until: Option<NaiveDate>,
    },
    Pending {
        empowerment: &'static str,
        adoption_deadline: Option<NaiveDate>,
    },
}
Expand description

Whether, and from when, a ruleset version is legally in force.

The two variants are not “now” and “later” — they are “we know the date” and “the date is not knowable yet”. EU staged obligations are routinely written as “from <date> or N months after the entry into force of <act>, whichever is the latest — see Regulation (EU) 2023/1542 Art. 7(1)–(3), Art. 8(1) and Art. 10(2)–(3). Until that act enters into force the application date is genuinely unknown, and asserting one anyway (a far-future sentinel, say) states a fact the regulation does not.

Variants§

§

InForce

In force from a known calendar date, until an optional end date.

Fields

§from: NaiveDate

First day this ruleset version applies (inclusive).

§until: Option<NaiveDate>

Last day it applies (inclusive), or None if open-ended.

§

Pending

The instrument that will date this ruleset has not entered into force, so no application date can be stated.

Fields

§empowerment: &'static str

The empowerment being waited on, e.g. "EU 2023/1542 Art. 10(5), first subparagraph".

§adoption_deadline: Option<NaiveDate>

The Commission’s own deadline to adopt, where the regulation sets one. A deadline is not an application date — it can pass unmet, and several already have.

Implementations§

Source§

impl Effectivity

Source

pub const fn open(from: NaiveDate) -> Self

In force from from, open-ended.

Source

pub const fn closed(from: NaiveDate, until: NaiveDate) -> Self

In force for a closed period.

Source

pub const fn pending( empowerment: &'static str, adoption_deadline: Option<NaiveDate>, ) -> Self

Awaiting an instrument that has not entered into force.

Source

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

Whether this ruleset governs date.

A Pending ruleset governs no date at all — not even a far-future one.

Source

pub fn ensure_active_on( &self, id: &RulesetId, date: NaiveDate, ) -> Result<(), CalcError>

Error unless this ruleset governs date.

Distinguishes three outcomes that must never be conflated: a ruleset that is not yet effective on a known date, one that has expired, and one whose date is undetermined because the instrument dating it has not entered into force.

Trait Implementations§

Source§

impl Clone for Effectivity

Source§

fn clone(&self) -> Effectivity

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Effectivity

Source§

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

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

impl Deserialize<'static> for Effectivity

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'static>,

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

impl PartialEq for Effectivity

Source§

fn eq(&self, other: &Effectivity) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for Effectivity

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 StructuralPartialEq for Effectivity

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