pub(crate) struct Shared {Show 37 fields
opened_anyway: AtomicBool,
pub(crate) statuses: Mutex<BTreeMap<String, (String, bool)>>,
pub(crate) password_wanted: Mutex<BTreeSet<String>>,
shown: Mutex<BTreeMap<String, ImapOrigin>>,
pub(crate) watchers: Mutex<BTreeMap<String, Arc<Control>>>,
learned: Mutex<BTreeSet<String>>,
generation: AtomicU64,
shown_generation: AtomicU64,
clean: Mutex<BTreeSet<u64>>,
pub(crate) open_folder: Mutex<Option<OpenFolder>>,
pub(crate) pending: Mutex<Vec<Arc<Pending>>>,
pub(crate) mail_generation: AtomicU64,
pub(crate) mail_shown_generation: AtomicU64,
said_at: Mutex<Option<Instant>>,
pub(crate) pim: Mutex<PimState>,
pub(crate) pim_generation: AtomicU64,
pub(crate) pim_shown_generation: AtomicU64,
pub(crate) dav_watchers: Mutex<BTreeMap<String, Arc<Control>>>,
pub(crate) work: Mutex<WorkState>,
pub(crate) work_generation: AtomicU64,
pub(crate) work_shown_generation: AtomicU64,
pub(crate) loaded: Mutex<Option<Arc<Loaded>>>,
pub(crate) realtime: AtomicBool,
pub(crate) locating: AtomicBool,
pub(crate) bitwarden: Mutex<Option<Vault>>,
pub(crate) weather_fetching: AtomicBool,
pub(crate) held_back: Mutex<BTreeSet<String>>,
pub(crate) google_stop: AtomicBool,
pub(crate) github: Mutex<Option<Arc<Control>>>,
pub(crate) active: AtomicI64,
pub(crate) planned_at: AtomicI64,
pub(crate) planned_day: AtomicI64,
views_job: Job,
pub(crate) mail_job: Job,
pub(crate) pim_job: Job,
pub(crate) work_job: Job,
pub(crate) health_job: Job,
}Expand description
What the background threads and the window share.
Fields§
§opened_anyway: AtomicBool“Open it anyway”, until “Done for now”.
statuses: Mutex<BTreeMap<String, (String, bool)>>Per account, the last thing its watcher said, and whether it is a problem.
password_wanted: Mutex<BTreeSet<String>>Accounts whose password is wanted: none here yet, or refused (SyncError::wants_password).
shown: Mutex<BTreeMap<String, ImapOrigin>>Per account, the newest message the window shows: what “Done for now” closes.
watchers: Mutex<BTreeMap<String, Arc<Control>>>The running watchers.
learned: Mutex<BTreeSet<String>>Accounts whose provider id was looked for this session.
generation: AtomicU64Views are computed on threads and may finish out of order: only the newest is shown.
shown_generation: AtomicU64§clean: Mutex<BTreeSet<u64>>Attachments the antivirus found clean this session, by content.
open_folder: Mutex<Option<OpenFolder>>The folder the mail page shows.
pending: Mutex<Vec<Arc<Pending>>>What waits ten seconds for “Undo”.
mail_generation: AtomicU64§mail_shown_generation: AtomicU64§said_at: Mutex<Option<Instant>>When the status line last said what became of something you did: a routine “Mail fetched at…” does not cover it for a while.
pim: Mutex<PimState>The contacts’ search and the agenda’s days.
pim_generation: AtomicU64§pim_shown_generation: AtomicU64§dav_watchers: Mutex<BTreeMap<String, Arc<Control>>>The running syncs of contacts and calendars, by account.
work: Mutex<WorkState>The task and notes pages’ choices.
work_generation: AtomicU64§work_shown_generation: AtomicU64§loaded: Mutex<Option<Arc<Loaded>>>Everything links reach, read after the last change.
realtime: AtomicBoolReal time: every folder each minute, the Porch open.
locating: AtomicBoolAddresses are being placed on the map.
bitwarden: Mutex<Option<Vault>>Bitwarden’s session, once unlocked; in memory only.
weather_fetching: AtomicBoolA forecast is being fetched.
held_back: Mutex<BTreeSet<String>>Accounts whose older mail waits for room on the disk, already said.
google_stop: AtomicBoolCancel on the Google sign-in: its wait for the browser ends.
github: Mutex<Option<Arc<Control>>>GitHub’s issues being brought, when asked.
active: AtomicI64When you were last at this window (Unix seconds): reminders follow you.
planned_at: AtomicI64When the plan was last made again on the clock (Unix seconds), and for which day.
planned_day: AtomicI64§views_job: JobOne computation at a time for each set of pages (coalesced).
mail_job: Job§pim_job: Job§work_job: Job§health_job: JobTrait Implementations§
Auto Trait Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Conv for T
impl<T> Conv for T
§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> 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§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> Pointable for T
impl<T> Pointable for T
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.