Struct Display

pub struct Display<'a> { pub(in ::ffi::c_str) c_str: &'a CStr }

Helper struct for safely printing a CStr with format! and {}.

A CStr might contain non-Unicode data. This struct implements the Display trait in a way that mitigates that. It is created by the display method on CStr. This may perform lossy conversion, depending on the platform. If you would like an implementation which escapes the CStr please use Debug instead.

Examples

let s = c"Hello, world!";
println!("{}", s.display());

Fields

c_str: &'a CStr

Trait Implementations

impl Debug for Display<'_>

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Display for Display<'_>

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Auto Trait Implementations

impl<'a> Freeze for Display<'a>

impl<'a> RefUnwindSafe for Display<'a>

impl<'a> Send for Display<'a>

impl<'a> Sync for Display<'a>

impl<'a> Unpin for Display<'a>

impl<'a> UnsafeUnpin for Display<'a>

impl<'a> UnwindSafe for Display<'a>

Blanket Implementations

impl<T> Any for Display<'a> where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for Display<'a> where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for Display<'a> where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> From<T> for Display<'a>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> SizeHint for Display<'a> where T: ?Sized,

fn lower_bound(&self) -> usize
fn upper_bound(&self) -> Option<usize>

impl<T> SizedTypeProperties for Display<'a>

impl<T, U> Into<U> for Display<'a> where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for Display<'a> where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for Display<'a> where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>