mirror of
https://github.com/eyre-rs/eyre.git
synced 2025-10-02 15:26:08 +00:00
Remove std dependency from context's Debug impl
Replacing the std-only to_string() call in the previous implementation is required for introducing no_std support.
This commit is contained in:
parent
4f123aee8b
commit
2e711d6afa
@ -2,7 +2,7 @@ use crate::error::ContextError;
|
|||||||
use crate::{Context, Error};
|
use crate::{Context, Error};
|
||||||
use std::convert::Infallible;
|
use std::convert::Infallible;
|
||||||
use std::error::Error as StdError;
|
use std::error::Error as StdError;
|
||||||
use std::fmt::{self, Debug, Display};
|
use std::fmt::{self, Debug, Display, Write};
|
||||||
|
|
||||||
#[cfg(backtrace)]
|
#[cfg(backtrace)]
|
||||||
use std::backtrace::Backtrace;
|
use std::backtrace::Backtrace;
|
||||||
@ -103,7 +103,7 @@ where
|
|||||||
{
|
{
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
f.debug_struct("Error")
|
f.debug_struct("Error")
|
||||||
.field("context", &self.context.to_string())
|
.field("context", &Quoted(&self.context))
|
||||||
.field("source", &self.error)
|
.field("source", &self.error)
|
||||||
.finish()
|
.finish()
|
||||||
}
|
}
|
||||||
@ -147,6 +147,26 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct Quoted<C>(C);
|
||||||
|
|
||||||
|
impl<C> Debug for Quoted<C>
|
||||||
|
where
|
||||||
|
C: Display,
|
||||||
|
{
|
||||||
|
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
formatter.write_char('"')?;
|
||||||
|
Quoted(&mut *formatter).write_fmt(format_args!("{}", self.0))?;
|
||||||
|
formatter.write_char('"')?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Write for Quoted<&mut fmt::Formatter<'_>> {
|
||||||
|
fn write_str(&mut self, s: &str) -> fmt::Result {
|
||||||
|
Display::fmt(&s.escape_debug(), self.0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) mod private {
|
pub(crate) mod private {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user