Skip to main content

ThinStatus

Struct ThinStatus 

Source
pub struct ThinStatus { /* private fields */ }
Expand description

Holds a non-OK status code (in most cases ErrorCode), a descriptive string message, and optionally (if enabled by feature use_any) also [google_cloud_wkt::Any].

It occupies only a single pointer word, which either wraps a tagged integer code (if there is neither message nor details), or a ThinArc pointer that holds a more complex value. Furthermore its representation is never nullptr, therefore Option<ThinStatus> and Result<(), ThinStatus> occupy just a single memory word.

Note that Copy, Eq, PartialOrd and Hash are only provided (derived) when feature use_any is disabled, since the Any datatype doesn’t provide them.

Implementations§

Source§

impl ThinStatus

Source

pub fn builder<'a, C: Into<NonZeroI32>>(code: C) -> ThinStatusBuilder<'a>

Constructs a builder that allows convenient creation of ThinStatus instances.

Source

pub fn from_code<C: Into<NonZeroI32>>(code: C) -> Self

A utility function to create a status with just a raw code. If it fits, it’ll be stored just as a tagged integer inside an internal pointer.

Source

pub fn code(&self) -> Option<ErrorCode>

Returns the stored error code, or None if the raw numerical value doesn’t match any of the ErrorCode values.

Source

pub fn code_or_unknown(&self) -> ErrorCode

Convenience wrapper to code() that converts an unknown error to ErrorCode::Unknown.

Source

pub fn code_raw(&self) -> NonZeroI32

Returns the raw numerical error code.

Source

pub fn message(&self) -> &str

Returns the message attached to the status (if any).

Trait Implementations§

Source§

impl Clone for ThinStatus

Source§

fn clone(&self) -> ThinStatus

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 ThinStatus

Source§

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

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

impl Display for ThinStatus

If the contained error code corresponds to an ErrorCode (code() returns Some(...)), it’s printed as an upper-case string (such as NOT_FOUND); otherwise just as a number. This is followed by a colon, space and the contained message (if there is any).

Source§

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

If the alternate flag is set, always prints the error code as a number.

Source§

impl Eq for ThinStatus

Source§

impl Error for ThinStatus

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<&Error> for ThinStatus

Source§

fn from(err: &Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for ThinStatus

Source§

fn from(err: Error) -> Self

Converts to this type from the input type.
Source§

impl From<ErrorCode> for ThinStatus

Source§

fn from(code: ErrorCode) -> Self

Converts to this type from the input type.
Source§

impl From<ThinStatusBuilder<'_>> for ThinStatus

Source§

fn from(builder: ThinStatusBuilder<'_>) -> Self

Converts to this type from the input type.
Source§

impl Hash for ThinStatus

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for ThinStatus

Source§

fn cmp(&self, other: &ThinStatus) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for ThinStatus

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl PartialOrd for ThinStatus

Source§

fn partial_cmp(&self, other: &ThinStatus) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for ThinStatus

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, 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<M> ThinStatusExt for M
where M: Display,

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.