mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-25 08:13:27 +00:00
move ContextError
's fmt logic in its Display impl
This commit is contained in:
parent
df7a6defa8
commit
08b8e96c40
@ -1,6 +1,8 @@
|
|||||||
use core::fmt;
|
use core::fmt;
|
||||||
use std::{error::Error, sync::Arc};
|
use std::{error::Error, sync::Arc};
|
||||||
|
|
||||||
|
use thiserror::Error;
|
||||||
|
|
||||||
pub struct ErrorFormatter<'a> {
|
pub struct ErrorFormatter<'a> {
|
||||||
writer: &'a mut dyn fmt::Write,
|
writer: &'a mut dyn fmt::Write,
|
||||||
}
|
}
|
||||||
@ -71,9 +73,16 @@ pub fn format_pretty_any(writer: &mut dyn fmt::Write, error: &(dyn Error + 'stat
|
|||||||
fmt.error(error)
|
fmt.error(error)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Error)]
|
||||||
|
#[error(
|
||||||
|
"In {fn_ident}{}{}{}",
|
||||||
|
if self.label.is_empty() { "" } else { ", label = '" },
|
||||||
|
self.label,
|
||||||
|
if self.label.is_empty() { "" } else { "'" }
|
||||||
|
)]
|
||||||
pub struct ContextError {
|
pub struct ContextError {
|
||||||
pub fn_ident: &'static str,
|
pub fn_ident: &'static str,
|
||||||
|
#[source]
|
||||||
#[cfg(send_sync)]
|
#[cfg(send_sync)]
|
||||||
pub source: Box<dyn Error + Send + Sync + 'static>,
|
pub source: Box<dyn Error + Send + Sync + 'static>,
|
||||||
#[cfg(not(send_sync))]
|
#[cfg(not(send_sync))]
|
||||||
@ -81,27 +90,7 @@ pub struct ContextError {
|
|||||||
pub label: String,
|
pub label: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PrettyError for ContextError {
|
impl PrettyError for ContextError {}
|
||||||
fn fmt_pretty(&self, fmt: &mut ErrorFormatter) {
|
|
||||||
writeln!(fmt.writer, " In {}", self.fn_ident).expect("Error formatting error");
|
|
||||||
if !self.label.is_empty() {
|
|
||||||
writeln!(fmt.writer, " note: label = `{}`", self.label)
|
|
||||||
.expect("Error formatting error");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl fmt::Display for ContextError {
|
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
||||||
write!(f, "In {}", self.fn_ident)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Error for ContextError {
|
|
||||||
fn source(&self) -> Option<&(dyn Error + 'static)> {
|
|
||||||
Some(self.source.as_ref())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Don't use this error type with thiserror's #[error(transparent)]
|
/// Don't use this error type with thiserror's #[error(transparent)]
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
Loading…
Reference in New Issue
Block a user