pub struct ClockSpan {
pub line: u32,
pub outline: Vec<String>,
pub day: i64,
pub minutes: u32,
}Expand description
OA.14b: a file’s clocked time, reported beside its rows. OA.14b: time clocked on one headline on one day.
Independent of [entry] on purpose — see scan’s doc. A span is
reported for every clocked headline the guest saw, whether or not that
headline became an agenda row.
Aggregated per (headline, day) by the guest, not one span per
CLOCK: line. A headline clocked four times in a morning is one span,
which is the granularity every report actually renders and keeps a file
with years of history from crossing thousands of records it would only
sum again.
Every span the file has, not just the ones in view. The report’s
range is the agenda’s span — day, week, month or year — and the host
filters on day when it builds the table. Carrying them all is what
lets gD switch that range and redraw from data already in hand
instead of re-walking the corpus for each answer.
Fields§
§line: u320-based line of the HEADLINE the time was logged under (not of the
CLOCK: line), so a report row can locate its entry.
outline: Vec<String>The headline’s outline path: outermost ancestor first, the headline
itself last. Its length is the outline level, which is what emacs’s
:maxlevel bounds.
A PATH rather than a name plus a level, because the report is a hierarchy and totals roll up it. An ancestor that logged no time of its own emits no span, so the host cannot name it from the span list — carrying the chain is what lets the tree be rebuilt without inventing zero-minute rows for every parent.
day: i64Days since the Unix epoch that the clocked time is filed under.
A span crossing midnight is counted whole on the day it began rather than split. Emacs splits it; matching that is a refinement this record can carry later without changing shape.
minutes: u32Minutes clocked. A running (unclosed) clock contributes nothing — its duration is not yet a fact, and guessing one would make the report disagree with the file.
Trait Implementations§
impl ComponentType for ClockSpan
impl Lift for ClockSpan
impl Lower for ClockSpan
Auto Trait Implementations§
impl Freeze for ClockSpan
impl RefUnwindSafe for ClockSpan
impl Send for ClockSpan
impl Sync for ClockSpan
impl Unpin for ClockSpan
impl UnsafeUnpin for ClockSpan
impl UnwindSafe for ClockSpan
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more