Skip to main content

WriteResult

Enum WriteResult 

Source
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: TablePreview

The exact structural effect.

§

EditedTable

A table mutation applied.

Fields

§edit: TablePreview

Same effect metadata as the preview.

§

RefusedTable

Table addressing failed closed.

Fields

§error: TableError

Typed refusal, without user prose.

§

WouldMutateNamedRange

Preview of one named-range mutation. Counts contain no prose.

Fields

§preview: Preview

Complete resolved effect.

§

MutatedNamedRange

One named-range request succeeded.

Fields

§preview: Preview

Complete effect, including the server-assigned create ID when returned.

§

RefusedNamedRange

Scope or named-range content cannot safely identify the requested effect.

Fields

§error: Error

Typed refusal without document text or range names.

§

WouldReplace

A dry run of a replace: how many occurrences the snapshot held.

Fields

§occurrences: usize

Counted client-side. Display-only — see count_occurrences.

§

WouldAppend

A dry run of an append.

Fields

§document_end_index: Option<i64>

The body’s last endIndex, purely informational — nothing computes from it (ADR-0076 §5).

§chars: usize

Unicode scalar values being inserted.

§bytes: usize

UTF-8 bytes being inserted.

§

WouldInsert

Dry-run metadata for insertion.

Fields

§edit: EditPreview

Resolved effect, in UTF-16 units.

§

WouldDelete

Dry-run metadata for deletion.

Fields

§edit: EditPreview

Resolved effect, in UTF-16 units.

§

Inserted

An insertion landed at the resolved position.

Fields

§edit: EditPreview

The same metadata as the preview.

§

Deleted

A deletion landed over the resolved range.

Fields

§edit: EditPreview

The same metadata as the preview.

§

WouldFormatList

Metadata-only preview of whole-paragraph list formatting.

Fields

§edit: ListPreview

Range 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: ListPreview

The same metadata as the preview.

§preset: Option<BulletPreset>

Some for creation, None for removal.

§

WouldFormat

Exact requested formatting effect before mutation.

Fields

§edit: EditPreview

Affected range and character/paragraph counts (no text mutation).

§style: StylePatch

Explicit style properties.

§fields: String

Derived property mask.

§

Formatted

The same requested formatting effect after a successful mutation.

Fields

§edit: EditPreview

Affected range and counts.

§style: StylePatch

Explicit style properties.

§fields: String

Derived property mask.

§

RefusedAnchor

An anchor could not safely identify a unique effect.

Fields

§error: AnchorError

Typed reason containing no anchor text.

§

RefusedNotADocument

The target is not a Google Doc.

Fields

§mime_type: String

Its actual mime type.

§

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: i64

What 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.

Fields

§chars: usize

Unicode scalar values inserted.

§bytes: usize

UTF-8 bytes inserted.

§

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

§required_revision_id: String

The lease presented, for the log and for support.

§detail: String

The server’s own message, unaltered.

§

Failed

Anything else.

Fields

§detail: String

The error, verbatim.

Trait Implementations§

Source§

impl Clone for WriteResult

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WriteResult

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for WriteResult

Source§

impl PartialEq for WriteResult

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for WriteResult

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for WriteResult

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more