Skip to main content

Calendar

Struct Calendar 

Source
pub struct Calendar {
    pub events: Vec<EventState>,
    pub last_adjourned: Option<DateTime<Utc>>,
    pub today: NaiveDate,
}
Expand description

Every stored event and what pending means today

Fields§

§events: Vec<EventState>§last_adjourned: Option<DateTime<Utc>>

When the Council last adjourned (a cancelled meeting is not a sitting); None before the first sitting

§today: NaiveDate

Implementations§

Source§

impl Calendar

Source

pub fn new( events: Vec<EventState>, last_adjourned: Option<DateTime<Utc>>, now: DateTime<Utc>, ) -> Self

The calendar of events (each at its newest change), as of now

Source

pub fn pending(&self, e: &EventState) -> bool

An event that has not happened: no meeting linked, not marked held, and expected after the last adjournment. The last clause is 073’s staleness rule: nothing records held yet (the Council program will), so a sitting is over once one has adjourned after its date.

Source

pub fn next_sitting(&self) -> Option<&EventState>

The sitting next_sitting means: the earliest pending sitting, regular or special, that is scheduled

Source

pub fn event(&self, id: CalendarEventId) -> Option<&EventState>

Source

pub fn resolve( &self, until: Option<&Until>, decided: impl Fn(&GovernanceLogId) -> bool, ) -> Resolved

When until comes to now. decided says whether a decision is in the log yet, for after_decision.

  • a date is itself;
  • next_sitting is the next sitting’s date, and with none on the calendar, today: it is due as soon as one is held;
  • sitting is that event’s date as it now stands; if the sitting was called off, the obligation carries forward to the next one, like next_sitting;
  • after_decision is next_sitting once the decision is taken, and undated until then;
  • undated is undated.
Source

pub fn sitting_items( &self, due_at: &[(CalendarEventId, ObligationStatus)], ) -> Vec<CalendarItem>

The stored events still to come, as calendar items: pending sittings that are scheduled. obligations_due counts the open and lapsed obligations due at each.

Source

pub fn upcoming( &self, obligations: &[ResolvedObligation], skip_next: bool, limit: usize, ) -> Vec<CalendarItem>

What is coming up, soonest first, at most limit items: pending sittings and obligations due on a date. obligations is every obligation, resolved against this calendar. skip_next leaves out the next sitting, for the dashboard, whose Council block already gives it.

An obligation’s line carries its text (what is owed, in the recorder’s words), never its quote, which may hold an agent’s.

Trait Implementations§

Source§

impl Clone for Calendar

Source§

fn clone(&self) -> Self

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 Calendar

Source§

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

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

impl Eq for Calendar

Source§

impl PartialEq for Calendar

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Calendar

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> PendingHandle for T
where T: Send + 'static,

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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