use core::fmt;
use core::fmt::Display;
use core::mem;
use core::result;
use super::escape;
#[derive(Debug, Eq, PartialEq)]
pub struct Error(pub(super) fmt::Error);
impl Display for Error {
#[inline]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
self.0.fmt(f)
}
}
#[cfg(feature = "std")]
impl ::std::error::Error for Error {}
pub type Result = result::Result<(), Error>;
#[repr(transparent)]
pub struct Formatter<'a>(pub(super) fmt::Formatter<'a>);
impl<'a> Formatter<'a> {
pub(super) fn new<'b>(f: &'b mut fmt::Formatter<'a>) -> &'b mut Self {
unsafe { mem::transmute(f) }
}
pub fn escape_utf16<I>(&mut self, iter: I) -> Result
where
I: IntoIterator<Item = u16>,
{
escape::escape_utf16(iter, &mut self.0).map_err(Error)
}
}