tbot 0.5.0

Make cool Telegram bots with Rust easily.
Documentation
use std::{
    fmt::{self, Debug, Formatter},
    sync::Arc,
};

#[derive(PartialEq, Eq, Clone, Hash)]
pub struct Token(Arc<String>);

#[derive(PartialEq, Eq, Clone, Copy, Hash)]
pub struct Ref<'a>(&'a str);

impl Token {
    pub fn new(token: String) -> Self {
        Self(Arc::new(token))
    }

    pub fn as_ref(&self) -> Ref<'_> {
        Ref(self.0.as_str())
    }
}

impl<'a> Ref<'a> {
    pub(crate) const fn as_str(self) -> &'a str {
        self.0
    }
}

impl Debug for Token {
    fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
        formatter.write_str("Token(..)")
    }
}

impl Debug for Ref<'_> {
    fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
        formatter.write_str("Token(..)")
    }
}