pub enum WriteResult {
Show 30 variants
WouldEditTable {
edit: TablePreview,
},
EditedTable {
edit: TablePreview,
},
RefusedTable {
error: TableError,
},
WouldMutateNamedRange {
preview: Preview,
},
MutatedNamedRange {
preview: Preview,
},
RefusedNamedRange {
error: Error,
},
WouldReplace {
occurrences: usize,
},
WouldAppend {
document_end_index: Option<i64>,
chars: usize,
bytes: usize,
},
WouldInsert {
edit: EditPreview,
},
WouldDelete {
edit: EditPreview,
},
Inserted {
edit: EditPreview,
},
Deleted {
edit: EditPreview,
},
WouldFormatList {
edit: ListPreview,
preset: Option<BulletPreset>,
},
ListFormatted {
edit: ListPreview,
preset: Option<BulletPreset>,
},
WouldFormat {
edit: EditPreview,
style: StylePatch,
fields: String,
},
Formatted {
edit: EditPreview,
style: StylePatch,
fields: String,
},
RefusedAnchor {
error: AnchorError,
},
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§
WouldEditTable
Snapshot-resolved table preview.
Fields
edit: TablePreviewThe exact structural effect.
EditedTable
A table mutation applied.
Fields
edit: TablePreviewSame effect metadata as the preview.
RefusedTable
Table addressing failed closed.
Fields
error: TableErrorTyped refusal, without user prose.
WouldMutateNamedRange
Preview of one named-range mutation. Counts contain no prose.
MutatedNamedRange
One named-range request succeeded.
RefusedNamedRange
Scope or named-range content cannot safely identify the requested effect.
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
WouldInsert
Dry-run metadata for insertion.
Fields
edit: EditPreviewResolved effect, in UTF-16 units.
WouldDelete
Dry-run metadata for deletion.
Fields
edit: EditPreviewResolved effect, in UTF-16 units.
Inserted
An insertion landed at the resolved position.
Fields
edit: EditPreviewThe same metadata as the preview.
Deleted
A deletion landed over the resolved range.
Fields
edit: EditPreviewThe same metadata as the preview.
WouldFormatList
Metadata-only preview of whole-paragraph list formatting.
Fields
edit: ListPreviewRange before any leading tabs are removed.
preset: Option<BulletPreset>Some for creation, None for removal.
ListFormatted
List formatting applied; indices still describe the pre-write snapshot.
Fields
edit: ListPreviewThe same metadata as the preview.
preset: Option<BulletPreset>Some for creation, None for removal.
WouldFormat
Exact requested formatting effect before mutation.
Fields
edit: EditPreviewAffected range and character/paragraph counts (no text mutation).
style: StylePatchExplicit style properties.
Formatted
The same requested formatting effect after a successful mutation.
RefusedAnchor
An anchor could not safely identify a unique effect.
Fields
error: AnchorErrorTyped reason containing no anchor text.
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