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: u32Minutes between the heads-up and the time it starts.
later: u32Minutes “Later” moves a block, today only.
Implementations§
Source§impl Needs
impl Needs
Sourcepub fn rebased(&self, shown: &Needs, current: &Needs) -> Needs
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
impl Needs
Sourcepub fn kept_around(
&self,
now: &Zoned,
days: &Days,
held: &[(i64, i64)],
) -> Vec<Kept>
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.
Sourcepub fn kept_on(
&self,
date: Date,
zone: &TimeZone,
shift: &dyn Fn(&str) -> i64,
) -> Vec<Kept>
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”).
Sourcepub fn kept_with(
&self,
date: Date,
zone: &TimeZone,
days: &Days,
shift: &dyn Fn(&str) -> i64,
) -> Vec<Kept>
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.
Sourcepub fn blocks_of(
&self,
date: Date,
zone: &TimeZone,
days: &Days,
shift: &dyn Fn(&str) -> i64,
) -> Vec<Kept>
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.
Sourcefn day_blocks(
&self,
date: Date,
zone: &TimeZone,
days: &Days,
shift: &dyn Fn(&str) -> i64,
) -> Vec<Kept>
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.
Sourcefn night_of(
&self,
night: Date,
zone: &TimeZone,
days: &Days,
shift: i64,
) -> Option<Kept>
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.
Sourcepub fn alarm_of(
&self,
night: Date,
zone: &TimeZone,
days: &Days,
) -> Option<Alarm>
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.
Sourcepub fn wakings(&self, now: &Zoned, days: &Days, ahead: i64) -> Vec<Alarm>
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.
Sourcepub fn past_events_on(
&self,
date: Date,
zone: &TimeZone,
days: &Days,
held: &[(i64, i64)],
) -> BTreeMap<String, i64>
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.
Sourcepub fn past_events(
&self,
date: Date,
zone: &TimeZone,
moved: &BTreeMap<String, i64>,
held: &[(i64, i64)],
) -> BTreeMap<String, i64>
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.
Sourcepub fn busy_on(
&self,
date: Date,
zone: &TimeZone,
shift: &dyn Fn(&str) -> i64,
) -> Vec<(i64, i64)>
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.
Sourcepub fn lengths(
&self,
date: Date,
key: &str,
days: &Days,
) -> Option<(u32, u32, u32)>
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.
Sourcepub fn change_day(
&self,
days: &mut Days,
date: Date,
edit: &DayEdit,
now: &Zoned,
held: &[(i64, i64)],
) -> Result<(), DayProblem>
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.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Needs
impl<'de> Deserialize<'de> for Needs
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Needs
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§
§impl<T> AnyEq for T
impl<T> AnyEq for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
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) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
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
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.