Trait twilio_async::Error1.0.0[][src]

pub trait Error: Debug + Display {
    fn description(&self) -> &str { ... }
fn cause(&self) -> Option<&Error> { ... } }

Error is a trait representing the basic expectations for error values, i.e. values of type E in Result<T, E>. Errors must describe themselves through the Display and [Debug] traits, and may provide cause chain information:

The cause method is generally used when errors cross "abstraction boundaries", i.e. when a one module must report an error that is "caused" by an error from a lower-level module. This setup makes it possible for the high-level module to provide its own errors that do not commit to any particular implementation, but also reveal some of its implementation for debugging via cause chains.

Provided Methods

This method is soft-deprecated.

Although using it won’t cause compilation warning, new code should use Display instead and new impls can omit it.

To obtain error description as a string, use to_string().

Examples

match "xc".parse::<u32>() {
    Err(e) => {
        // Print `e` itself, not `e.description()`.
        println!("Error: {}", e);
    }
    _ => println!("No error"),
}

The lower-level cause of this error, if any.

Examples

use std::error::Error;
use std::fmt;

#[derive(Debug)]
struct SuperError {
    side: SuperErrorSideKick,
}

impl fmt::Display for SuperError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "SuperError is here!")
    }
}

impl Error for SuperError {
    fn description(&self) -> &str {
        "I'm the superhero of errors"
    }

    fn cause(&self) -> Option<&Error> {
        Some(&self.side)
    }
}

#[derive(Debug)]
struct SuperErrorSideKick;

impl fmt::Display for SuperErrorSideKick {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "SuperErrorSideKick is here!")
    }
}

impl Error for SuperErrorSideKick {
    fn description(&self) -> &str {
        "I'm SuperError side kick"
    }
}

fn get_super_error() -> Result<(), SuperError> {
    Err(SuperError { side: SuperErrorSideKick })
}

fn main() {
    match get_super_error() {
        Err(e) => {
            println!("Error: {}", e.description());
            println!("Caused by: {}", e.cause().unwrap());
        }
        _ => println!("No error"),
    }
}

Methods

impl Error + 'static
[src]

Returns true if the boxed type is the same as T

Returns some reference to the boxed value if it is of type T, or None if it isn't.

Returns some mutable reference to the boxed value if it is of type T, or None if it isn't.

impl Error + 'static + Send
[src]

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

impl Error + 'static + Send + Sync
[src]

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

Forwards to the method defined on the type Any.

impl Error + 'static
[src]

Attempt to downcast the box to a concrete type.

impl Error + 'static + Send
[src]

Attempt to downcast the box to a concrete type.

impl Error + 'static + Send + Sync
[src]

Attempt to downcast the box to a concrete type.

Implementations on Foreign Types

impl Error for !
[src]

impl<T> Error for SendError<T> where
    T: Send
[src]

impl Error for ParseBoolError
[src]

impl Error for VarError
[src]

impl Error for DecodeUtf16Error
[src]

impl Error for RecvError
[src]

impl Error for NulError
[src]

impl Error for ParseFloatError
[src]

impl Error for Utf8Error
[src]

impl<T> Error for TrySendError<T> where
    T: Send
[src]

impl Error for FromUtf16Error
[src]

impl<T> Error for PoisonError<T>
[src]

impl Error for TryFromIntError
[src]

impl Error for IntoStringError
[src]

impl<T> Error for TryLockError<T>
[src]

impl Error for FromUtf8Error
[src]

impl Error for AddrParseError
[src]

impl Error for TryFromSliceError
[src]

impl Error for FromBytesWithNulError
[src]

impl Error for StripPrefixError
[src]

impl Error for JoinPathsError
[src]

impl Error for RecvTimeoutError
[src]

impl Error for CannotReallocInPlace
[src]

impl Error for ParseIntError
[src]

impl Error for SystemTimeError
[src]

impl Error for ParseError
[src]

impl Error for TryRecvError
[src]

impl Error for CharTryFromError
[src]

impl Error for ParseCharError
[src]

impl Error for LayoutErr
[src]

impl<T> Error for Box<T> where
    T: Error
[src]

impl Error for AllocErr
[src]

impl<T, E> Error for SendError<T, E> where
    E: Any,
    T: Any
[src]

impl<T> Error for SendError<T> where
    T: Any
[src]

impl<T> Error for TrySendError<T> where
    T: Any
[src]

impl<T> Error for ReuniteError<T> where
    T: Any
[src]

impl Error for Canceled
[src]

impl<T> Error for SendError<T> where
    T: Any
[src]

impl Error for Error
[src]

impl Error for UriError
[src]

impl Error for DecodeError

impl Error for Error
[src]

impl Error for Error

impl Error for SetLoggerError
[src]

impl Error for ParseLevelError
[src]

impl Error for FromStrError
[src]

impl Error for OutOfRangeError
[src]

impl Error for ParseError
[src]

impl Error for BlockingError
[src]

impl Error for ParkError
[src]

impl Error for TimerError
[src]

impl<T> Error for DeadlineError<T> where
    T: Error
[src]

impl Error for Error
[src]

impl Error for ShutdownLoggerError
[src]

impl Error for SetLoggerError
[src]

impl Error for Error
[src]

impl<S> Error for HandshakeError<S> where
    S: Any + Debug
[src]

impl<S> Error for HandshakeError<S> where
    S: Any + Debug
[src]

impl Error for RetryError
[src]

impl Error for ErrorStack
[src]

impl Error for Error
[src]

impl Error for Error
[src]

impl Error for X509VerifyError
[src]

impl Error for Error
[src]

impl Error for Error
[src]

impl Error for ParseError
[src]

impl Error for Error
[src]

impl Error for EmitterError
[src]

Implementors