proc_macro2/
num.rs

1// TODO: use NonZero<char> in Rust 1.89+
2#[derive(#[automatically_derived]
impl ::core::marker::Copy for NonZeroChar { }Copy, #[automatically_derived]
impl ::core::clone::Clone for NonZeroChar {
    #[inline]
    fn clone(&self) -> NonZeroChar {
        let _: ::core::clone::AssertParamIsClone<char>;
        *self
    }
}Clone, #[automatically_derived]
impl ::core::fmt::Debug for NonZeroChar {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::debug_tuple_field1_finish(f, "NonZeroChar",
            &&self.0)
    }
}Debug, #[automatically_derived]
impl ::core::cmp::PartialEq for NonZeroChar {
    #[inline]
    fn eq(&self, other: &NonZeroChar) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for NonZeroChar {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_receiver_is_total_eq(&self) -> () {
        let _: ::core::cmp::AssertParamIsEq<char>;
    }
}Eq)]
3pub struct NonZeroChar(char);
4
5impl NonZeroChar {
6    pub fn new(ch: char) -> Option<Self> {
7        if ch == '\0' {
8            None
9        } else {
10            Some(NonZeroChar(ch))
11        }
12    }
13
14    pub fn get(self) -> char {
15        self.0
16    }
17}