pub enum WriteResult {
Show 15 variants
WouldReplace {
occurrences: usize,
},
WouldAppend {
document_end_index: Option<i64>,
chars: usize,
bytes: usize,
},
RefusedNotADocument {
mime_type: String,
},
RefusedShortcut,
RefusedNoVisibleParents,
RefusedNoRevisionId,
Blocked {
decided_by: Option<DecidingRule>,
},
RefusedNoLease,
RefusedLeaseExpired,
RefusedLeaseWrongFile,
RefusedLeaseStale,
Replaced {
occurrences_changed: i64,
},
Appended {
chars: usize,
bytes: usize,
},
StaleRevision {
required_revision_id: String,
detail: String,
},
Failed {
detail: String,
},
}Expand description
What happened (or, under --dry-run, would happen).
Variants§
WouldReplace
A dry run of a replace: how many occurrences the snapshot held.
Fields
occurrences: usizeCounted client-side. Display-only — see count_occurrences.
WouldAppend
A dry run of an append.
Fields
RefusedNotADocument
The target is not a Google Doc.
RefusedShortcut
The target is a shortcut, which is never followed.
RefusedNoVisibleParents
The target has no parent folder this account can see, so no
folder rule can apply and no file_id rule named it either.
RefusedNoRevisionId
documents.get returned no revisionId, which Google populates only
for callers with edit access — so no lease can be taken, and there is
no unleased path (ADR-0076 §3).
Blocked
The write-permission gate refused it.
Fields
decided_by: Option<DecidingRule>The rule that decided, when one did.
RefusedNoLease
No --lease was presented, and the deciding rule requires one
(ADR-0080 §9).
RefusedLeaseExpired
The presented lease has expired, or was never a token this ledger knows about.
RefusedLeaseWrongFile
The presented lease is bound to a different file id.
RefusedLeaseStale
The file has moved since the lease’s recorded version — the
staleness check (ADR-0080 §6). Distinct from Self::StaleRevision,
which is ADR-0076’s own, unrelated Docs revision check.
Replaced
A replace landed.
Fields
occurrences_changed: i64What the server reported changing.
Not Option: a replace always has an answer, and “nothing
matched” is a count rather than an absence of one. Docs omits
occurrencesChanged entirely when it is zero (proto3), so the
zero is resolved at the boundary — see
crate::drive::docs::write_types::BatchUpdateDocumentResponse::occurrences_changed_for_replace.
Appended
An append landed.
StaleRevision
The document changed between the read that computed this mutation
and the batchUpdate that would have applied it. Nothing was
written — a one-request batch is atomic.
Fields
Failed
Anything else.
Trait Implementations§
Source§impl Clone for WriteResult
impl Clone for WriteResult
Source§impl Debug for WriteResult
impl Debug for WriteResult
impl Eq for WriteResult
Source§impl PartialEq for WriteResult
impl PartialEq for WriteResult
Source§impl Serialize for WriteResult
impl Serialize for WriteResult
impl StructuralPartialEq for WriteResult
Auto Trait Implementations§
impl Freeze for WriteResult
impl RefUnwindSafe for WriteResult
impl Send for WriteResult
impl Sync for WriteResult
impl Unpin for WriteResult
impl UnsafeUnpin for WriteResult
impl UnwindSafe for WriteResult
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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