Skip to main content

BackendError

Trait BackendError 

Source
pub trait BackendError: Error { }
Expand description

Associated error type used by all fallible backend methods.

Backends that are infallible (e.g. Headless, SoftwareRenderer) use core::convert::Infallible. Fallible backends (e.g. Crossterm) use std::io::Error.

Requiring core::error::Error rather than just Display + Debug lets generic code convert B::Error into Box<dyn Error> or any error-trait-based caller error with a plain ?, and exposes source() chains for concrete error types that wrap an inner error.

§Examples

use retroglyph_core::backend::BackendError;
use core::fmt;

#[derive(Debug)]
struct MyBackendError;

impl fmt::Display for MyBackendError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "my backend failed")
    }
}

impl core::error::Error for MyBackendError {}
impl BackendError for MyBackendError {}

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl BackendError for Error

Available on crate feature std only.
Source§

impl BackendError for Infallible

Implementors§