use core::fmt;
#[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Default)]
pub struct Token(usize);
impl Token {
pub const fn from_usize(value: usize) -> Self {
Self(value)
}
pub const fn as_usize(self) -> usize {
self.0
}
}
impl From<usize> for Token {
fn from(value: usize) -> Self {
Token::from_usize(value)
}
}
impl From<Token> for usize {
fn from(token: Token) -> Self {
token.as_usize()
}
}
impl fmt::Debug for Token {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_tuple("Token").field(&self.0).finish()
}
}