Struct ClientResult

Source
pub struct ClientResult<T> { /* private fields */ }
Expand description

The outcome of a client operation.

Different from the standard Result, this one may contain more than one error. And at the same time, even if an error ocurrs, there may be a value to rescue.

It would be mistake if this contains no value and no errors at the same time. This is taken care on creation time, and it can’t be modified afterwards.

Implementations§

Source§

impl<T> ClientResult<T>

Source

pub fn new_ok(value: T) -> Self

Creates a result containing a successful value and no errors.

Source

pub fn new_err(errors: Vec<ClientError>) -> Self

Creates a result containing errors and no value to rescue.

The errors list should be non empty. If it’s empty a default error will be added to avoid the invariant of having no value and no errors at the same time.

Source

pub fn new_ok_and_err(value: T, errors: Vec<ClientError>) -> Self

Creates a result containing errors and a value to rescue.

This method should only be used when there are both errors and a value.

Source

pub fn value(&self) -> Option<&T>

Returns the successful value if there is one.

Source

pub fn errors(&self) -> &[ClientError]

Returns the errors list.

Source

pub fn has_value(&self) -> bool

Returns true if there is a successful value.

Source

pub fn has_errors(&self) -> bool

Returns true if there are errors.

Source

pub fn into_value(self) -> Option<T>

Consume the result and return the successful value if there is one.

Source

pub fn into_errors(self) -> Vec<ClientError>

Consume the result and return the errors list.

Source

pub fn into_value_and_errors(self) -> (Option<T>, Vec<ClientError>)

Consume the result and return the successful value and the errors list.

Source

pub fn into_result(self) -> Result<T, Vec<ClientError>>

Consume the result to convert it into a standard Result.

Trait Implementations§

Source§

impl<T: Debug> Debug for ClientResult<T>

Source§

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

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

impl<T> From<ClientError> for ClientResult<T>

Source§

fn from(error: ClientError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<T> Freeze for ClientResult<T>
where T: Freeze,

§

impl<T> !RefUnwindSafe for ClientResult<T>

§

impl<T> Send for ClientResult<T>
where T: Send,

§

impl<T> Sync for ClientResult<T>
where T: Sync,

§

impl<T> Unpin for ClientResult<T>
where T: Unpin,

§

impl<T> !UnwindSafe for ClientResult<T>

Blanket Implementations§

§

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

§

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

§

fn ref_cast_type_id(&self) -> TypeId
where Self: 'static,

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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.

§

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

§

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
§

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

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> PlatformSend for T

Source§

impl<T> PlatformSendInner for T
where T: Send,