Struct rutabaga_gfx::rutabaga_utils::RutabagaError
source · pub struct RutabagaError {
kind: RutabagaErrorKind,
context: Option<Error>,
}
Expand description
An error generated while using this crate.
Use RutabagaError::kind
to distinguish between different errors.
§Examples
To create a RutabagaError
, create from an anyhow::Error
or a
RutabagaErrorKind
.
use rutabaga_gfx::RutabagaError;
use rutabaga_gfx::RutabagaErrorKind;
let error: RutabagaError = anyhow::anyhow!("test error").into();
assert!(matches!(error.kind(), &RutabagaErrorKind::Internal));
let error: RutabagaError = RutabagaErrorKind::AlreadyInUse.into();
assert!(matches!(error.kind(), &RutabagaErrorKind::AlreadyInUse));
When creating from an anyhow::Error
, if an RutabagaErrorKind
exists in the error chain,
the created RutabagaError
will respect that error kind, so feel free to use
anyhow::Result
and anyhow::Context::context
in the code base, and only convert the
result to RutabagaResult
at the out most public interface.
use anyhow::Context;
use rutabaga_gfx::RutabagaResult;
use rutabaga_gfx::RutabagaErrorKind;
let res = Err::<(), _>(anyhow::anyhow!("test error"))
.context("context 1")
.context(RutabagaErrorKind::InvalidComponent)
.context("context 2");
let res: RutabagaResult<()> = res.map_err(|e| e.into());
let kind = res.err().map(|e| e.kind().clone());
assert!(matches!(kind, Some(RutabagaErrorKind::InvalidComponent)));
let res = Err::<(), _>(anyhow::anyhow!("test error"))
.context("context")
.context(RutabagaErrorKind::InvalidComponent);
let res: RutabagaResult<()> = res.map_err(|e| e.into());
let kind = res.err().map(|e| e.kind().clone());
assert!(matches!(kind, Some(RutabagaErrorKind::InvalidComponent)));
let res = Err::<(), _>(anyhow::anyhow!("test error"))
.context(RutabagaErrorKind::InvalidComponent)
.context("context");
let res: RutabagaResult<()> = res.map_err(|e| e.into());
let kind = res.err().map(|e| e.kind().clone());
assert!(matches!(kind, Some(RutabagaErrorKind::InvalidComponent)));
Fields§
§kind: RutabagaErrorKind
§context: Option<Error>
Implementations§
source§impl RutabagaError
impl RutabagaError
pub fn kind(&self) -> &RutabagaErrorKind
Trait Implementations§
source§impl Debug for RutabagaError
impl Debug for RutabagaError
source§impl Display for RutabagaError
impl Display for RutabagaError
source§impl Error for RutabagaError
impl Error for RutabagaError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
source§impl From<Errno> for RutabagaError
impl From<Errno> for RutabagaError
source§fn from(e: NixError) -> RutabagaError
fn from(e: NixError) -> RutabagaError
Converts to this type from the input type.
source§impl From<Error> for RutabagaError
impl From<Error> for RutabagaError
source§impl From<Error> for RutabagaError
impl From<Error> for RutabagaError
source§fn from(e: IoError) -> RutabagaError
fn from(e: IoError) -> RutabagaError
Converts to this type from the input type.
source§impl From<NulError> for RutabagaError
impl From<NulError> for RutabagaError
source§fn from(e: NulError) -> RutabagaError
fn from(e: NulError) -> RutabagaError
Converts to this type from the input type.
source§impl From<RutabagaErrorKind> for RutabagaError
impl From<RutabagaErrorKind> for RutabagaError
source§fn from(kind: RutabagaErrorKind) -> Self
fn from(kind: RutabagaErrorKind) -> Self
Converts to this type from the input type.
source§impl From<TryFromIntError> for RutabagaError
impl From<TryFromIntError> for RutabagaError
source§fn from(e: TryFromIntError) -> RutabagaError
fn from(e: TryFromIntError) -> RutabagaError
Converts to this type from the input type.
source§impl From<Utf8Error> for RutabagaError
impl From<Utf8Error> for RutabagaError
source§fn from(e: Utf8Error) -> RutabagaError
fn from(e: Utf8Error) -> RutabagaError
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for RutabagaError
impl RefUnwindSafe for RutabagaError
impl Send for RutabagaError
impl Sync for RutabagaError
impl Unpin for RutabagaError
impl UnwindSafe for RutabagaError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more