pub enum EnvelopeDiff {
FullListRequired {
new_state: Option<Vec<u8>>,
},
Incremental {
new_state: Vec<u8>,
flag_updates: Vec<FlagUpdate>,
new_envelopes: Vec<Envelope>,
vanished_ids: Vec<String>,
},
}Expand description
Outcome of an incremental envelope-diff call.
new_state is the opaque per-backend checkpoint to persist for the
next call; format is private to the backend impl (IMAP packs
(uid_validity, highest_mod_seq, highest_uid); JMAP stores the raw
Email/state bytes). Callers treat it as a Vec<u8> blob.
Variants§
FullListRequired
First sync, server-side state invalidated, or capability
missing. The caller must fall back to a regular
list_envelopes round-trip and treat the result as the new
baseline. new_state may be None when the backend could not
cheaply capture a baseline without listing.
Incremental
The backend returned a pre-diffed delta. The three buckets are disjoint; the caller applies them against the stored ancestor.
Trait Implementations§
Source§impl Clone for EnvelopeDiff
impl Clone for EnvelopeDiff
Source§fn clone(&self) -> EnvelopeDiff
fn clone(&self) -> EnvelopeDiff
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for EnvelopeDiff
impl RefUnwindSafe for EnvelopeDiff
impl Send for EnvelopeDiff
impl Sync for EnvelopeDiff
impl Unpin for EnvelopeDiff
impl UnsafeUnpin for EnvelopeDiff
impl UnwindSafe for EnvelopeDiff
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> OrderedSeq<'_, T> for Twhere
T: Clone,
Source§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
Source§impl<T, S> SpanWrap<S> for Twhere
S: WrappingSpan<T>,
impl<T, S> SpanWrap<S> for Twhere
S: WrappingSpan<T>,
Source§fn with_span(self, span: S) -> <S as WrappingSpan<Self>>::Spanned
fn with_span(self, span: S) -> <S as WrappingSpan<Self>>::Spanned
Invokes
WrappingSpan::make_wrapped to wrap an AST node in a span.