Skip to main content

ErrorInfo

Struct ErrorInfo 

Source
#[non_exhaustive]
pub struct ErrorInfo { pub domain: Option<String>, pub metadatas: HashMap<String, String>, pub reason: Option<String>, /* private fields */ }
Available on crate features addresses or autoscalers or backend-buckets or backend-services or cross-site-networks or disks or external-vpn-gateways or firewall-policies or firewalls or forwarding-rules or future-reservations or global-addresses or global-forwarding-rules or global-network-endpoint-groups or global-operations or global-organization-operations or global-public-delegated-prefixes or health-checks or http-health-checks or https-health-checks or images or instance-group-manager-resize-requests or instance-group-managers or instance-groups or instance-settings or instance-templates or instances or instant-snapshots or interconnect-attachment-groups or interconnect-attachments or interconnect-groups or interconnects or licenses or machine-images or network-attachments or network-edge-security-services or network-endpoint-groups or network-firewall-policies or networks or node-groups or node-templates or organization-security-policies or packet-mirrorings or preview-features or projects or public-advertised-prefixes or public-delegated-prefixes or region-autoscalers or region-backend-services or region-commitments or region-disks or region-health-check-services or region-health-checks or region-instance-group-managers or region-instance-groups or region-instance-templates or region-instances or region-instant-snapshots or region-network-endpoint-groups or region-network-firewall-policies or region-notification-endpoints or region-operations or region-security-policies or region-ssl-certificates or region-ssl-policies or region-target-http-proxies or region-target-https-proxies or region-target-tcp-proxies or region-url-maps or reservation-blocks or reservation-slots or reservation-sub-blocks or reservations or resource-policies or routers or routes or security-policies or service-attachments or snapshot-settings or snapshots or ssl-certificates or ssl-policies or storage-pools or subnetworks or target-grpc-proxies or target-http-proxies or target-https-proxies or target-instances or target-pools or target-ssl-proxies or target-tcp-proxies or target-vpn-gateways or url-maps or vpn-gateways or vpn-tunnels or wire-groups or zone-operations only.
Expand description

Describes the cause of the error with structured details.

Example of an error when contacting the “pubsub.googleapis.com” API when it is not enabled:

{ "reason": "API_DISABLED"
  "domain": "googleapis.com"
  "metadata": {
    "resource": "projects/123",
    "service": "pubsub.googleapis.com"
  }
}

This response indicates that the pubsub.googleapis.com API is not enabled.

Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock:

{ "reason": "STOCKOUT"
  "domain": "spanner.googleapis.com",
  "metadata": {
    "availableRegions": "us-central1,us-east2"
  }
}

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§domain: Option<String>

The logical grouping to which the “reason” belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: “pubsub.googleapis.com”. If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is “googleapis.com”.

§metadatas: HashMap<String, String>

Additional structured details about this error.

Keys must match a regular expression of a-z+ but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.

§reason: Option<String>

The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of A-Z+[A-Z0-9], which represents UPPER_SNAKE_CASE.

Implementations§

Source§

impl ErrorInfo

Source

pub fn new() -> Self

Source

pub fn set_domain<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of domain.

§Example
let x = ErrorInfo::new().set_domain("example");
Source

pub fn set_or_clear_domain<T>(self, v: Option<T>) -> Self
where T: Into<String>,

Sets or clears the value of domain.

§Example
let x = ErrorInfo::new().set_or_clear_domain(Some("example"));
let x = ErrorInfo::new().set_or_clear_domain(None::<String>);
Source

pub fn set_metadatas<T, K, V>(self, v: T) -> Self
where T: IntoIterator<Item = (K, V)>, K: Into<String>, V: Into<String>,

Sets the value of metadatas.

§Example
let x = ErrorInfo::new().set_metadatas([
    ("key0", "abc"),
    ("key1", "xyz"),
]);
Source

pub fn set_reason<T>(self, v: T) -> Self
where T: Into<String>,

Sets the value of reason.

§Example
let x = ErrorInfo::new().set_reason("example");
Source

pub fn set_or_clear_reason<T>(self, v: Option<T>) -> Self
where T: Into<String>,

Sets or clears the value of reason.

§Example
let x = ErrorInfo::new().set_or_clear_reason(Some("example"));
let x = ErrorInfo::new().set_or_clear_reason(None::<String>);

Trait Implementations§

Source§

impl Clone for ErrorInfo

Source§

fn clone(&self) -> ErrorInfo

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ErrorInfo

Source§

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

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

impl Default for ErrorInfo

Source§

fn default() -> ErrorInfo

Returns the “default value” for a type. Read more
Source§

impl Message for ErrorInfo

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for ErrorInfo

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ErrorInfo

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,