Skip to main content

Needs

Struct Needs 

Source
pub struct Needs {
    pub meals_on: bool,
    pub meals: Vec<Block>,
    pub naps_on: bool,
    pub naps: Vec<Block>,
    pub sleep_on: bool,
    pub sleep: Sleep,
    pub heads_up: u32,
    pub later: u32,
}
Expand description

Meals, naps and the night, each kind on or off; three meals when meals are first turned on, one of them in the evening (Murphy et al. 2010).

Fields§

§meals_on: bool§meals: Vec<Block>§naps_on: bool§naps: Vec<Block>§sleep_on: bool§sleep: Sleep§heads_up: u32

Minutes between the heads-up and the time it starts.

§later: u32

Minutes “Later” moves a block, today only.

Implementations§

Source§

impl Needs

Source

pub fn rebased(&self, shown: &Needs, current: &Needs) -> Needs

The settings’ change, from what the page showed (shown) to what it sends (self), set over the settings as the file holds them now (current): each field the page changed, the page’s; the others as they are now; the meals and naps as lists (settings::rebased), so that one another device added meanwhile stays.

Source§

impl Needs

Source

pub fn kept_around( &self, now: &Zoned, days: &Days, held: &[(i64, i64)], ) -> Vec<Kept>

What is kept free around now, in order of start: today’s and tomorrow’s meals and naps (those added for the day too), and the nights ending this morning, starting tonight and tomorrow night; each as its day has it (days: moved, times changed), meals pushed past the events in held (their times with their margins, Unix seconds). A block taken out that day is not there; a quiet one is (it is still kept: only its notices are off). For whatever asks whether a meal, a nap or the night is on at some time (the hours’ states): kept stable.

Source

pub fn kept_on( &self, date: Date, zone: &TimeZone, shift: &dyn Fn(&str) -> i64, ) -> Vec<Kept>

What is kept free on date, in order: each meal and nap on that weekday, and the nights touching it (the one ending that morning, the one starting that evening). shift moves a block that day only, in minutes, by its key (“Later”).

Source

pub fn kept_with( &self, date: Date, zone: &TimeZone, days: &Days, shift: &dyn Fn(&str) -> i64, ) -> Vec<Kept>

The same with each day’s changes (days): a block moved, its times changed, quiet (no notice) or off that day, and those added that day. Notices are said by the day a block starts on: the night ending this morning said its own yesterday, unless its bedtime was after midnight.

Source

pub fn blocks_of( &self, date: Date, zone: &TimeZone, days: &Days, shift: &dyn Fn(&str) -> i64, ) -> Vec<Kept>

The blocks that are date’s own, in order: its meals and naps, those added that day, and the night starting that evening (its bedtime after midnight: the next morning). What the Health page lists for a day.

Source

fn day_blocks( &self, date: Date, zone: &TimeZone, days: &Days, shift: &dyn Fn(&str) -> i64, ) -> Vec<Kept>

date’s meals and naps on that weekday, as changed that day, and those added that day.

Source

fn night_of( &self, night: Date, zone: &TimeZone, days: &Days, shift: i64, ) -> Option<Kept>

The night starting the evening of night (its bedtime after midnight: the next morning), as changed that day, moved shift minutes; none when off that day.

Source

pub fn alarm_of( &self, night: Date, zone: &TimeZone, days: &Days, ) -> Option<Alarm>

The alarm at the end of the night starting the evening of night, as that day has it (its waking moved or changed): when the weekday of the morning it ends on is ticked (Sleep::alarm). None when no night is set, when it is taken out that day, or when that weekday is not ticked; skipped when “No alarm” was asked for that night. A night “Not that day” (quiet) still rings. Zoned: the waking is on the clock in zone, whatever the change of hour that night.

Source

pub fn wakings(&self, now: &Zoned, days: &Days, ahead: i64) -> Vec<Alarm>

The alarms that ring after now, in order, until the same time ahead days later (days on the clock, not 24 hours): each night’s end, as its day has it (alarm_of), those skipped left out.

Source

pub fn past_events_on( &self, date: Date, zone: &TimeZone, days: &Days, held: &[(i64, i64)], ) -> BTreeMap<String, i64>

The day’s meals pushed past the events they would fall in (held: the events’ times with their margins, Unix seconds), as minutes by key: to the end of the event, by whole five minutes; a meal pushed into a next event goes past it too. Not a meal whose time you set for that day, nor one added that day: you chose it, the day in view.

Source

pub fn past_events( &self, date: Date, zone: &TimeZone, moved: &BTreeMap<String, i64>, held: &[(i64, i64)], ) -> BTreeMap<String, i64>

Moves given as minutes by key (moved), each meal pushed past the events it would fall in (held: their times with their margins, Unix seconds): from those moves, later only, to the end of the event, by whole five minutes; a meal pushed into a next event goes past it too. The days’ changes go through past_events_on.

Source

pub fn busy_on( &self, date: Date, zone: &TimeZone, shift: &dyn Fn(&str) -> i64, ) -> Vec<(i64, i64)>

The spans kept free on date, for the plan: no task in them.

Source

pub fn lengths( &self, date: Date, key: &str, days: &Days, ) -> Option<(u32, u32, u32)>

A block’s lengths on date, as that day has them, in minutes: it lasts, to get it ready (the night: to wind down), to come back after it. None for a key that names no block.

Source

pub fn change_day( &self, days: &mut Days, date: Date, edit: &DayEdit, now: &Zoned, held: &[(i64, i64)], ) -> Result<(), DayProblem>

edit made on days, for date only, as the Health page asks: “later” (by minutes, else as many as “Later” moves by), “move” (to start at from), “times” (from–to; a meal’s minutes to get it ready, a nap’s to come back, the night’s bedtime), “quiet” and “loud” (no notice that day, or back), “off” and “on” (taken out that day, or put back; one added that day goes), “usual” (as usual that day), “add” (one for that day only, a meal or a rest); the night’s “no-alarm” and “alarm” (no alarm the morning it ends, or back). A day before now’s stays as it was, but for the alarm of a night still going on (after midnight, yesterday’s). Moves count from the block as the page shows it (meals pushed past the events in held), and are kept as times on the clock; lengths only where they differ from the usual ones.

Source

pub fn long_gaps(&self) -> Vec<(String, String)>

Meals planned more than four hours apart, as (end of one, start of the next) on a usual day: said quietly where they are set, never in a notice (Murphy et al. 2010: rarely more than four hours between).

Trait Implementations§

Source§

impl Clone for Needs

Source§

fn clone(&self) -> Needs

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 Needs

Source§

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

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

impl Default for Needs

Source§

fn default() -> Needs

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Needs

Source§

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

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

impl Eq for Needs

Source§

impl PartialEq for Needs

Source§

fn eq(&self, other: &Needs) -> 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 Needs

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 Needs

Auto Trait Implementations§

§

impl Freeze for Needs

§

impl RefUnwindSafe for Needs

§

impl Send for Needs

§

impl Sync for Needs

§

impl Unpin for Needs

§

impl UnsafeUnpin for Needs

§

impl UnwindSafe for Needs

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
§

impl<T> AnyEq for T
where T: Any + PartialEq,

§

fn equals(&self, other: &(dyn Any + 'static)) -> bool

§

fn as_any(&self) -> &(dyn Any + 'static)

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
§

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

§

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
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

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

§

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

§

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

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

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

§

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

Compare self to key and return true if they are equal.
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. 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.

§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

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

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
§

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

§

fn vzip(self) -> V