#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(missing_docs)]
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Debug, Clone, Copy, Eq, PartialEq, Hash)]
pub struct SessionKey(pub uuid::Uuid);
#[cfg(feature="uuid-v4")]
impl SessionKey {
#[cfg_attr(docsrs, doc(cfg(feature = "uuid-v4")))]
pub fn new() -> Self {
SessionKey(uuid::Uuid::new_v4())
}
}
#[derive(Serialize, Deserialize, Debug, Clone, Copy, Eq, PartialEq, Hash)]
pub struct ConnectionKey(pub u32);
#[derive(Clone, Debug)]
pub struct CallbackDataAndSession<T> {
pub payload: T,
pub session_key: SessionKey,
}
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub enum AccessToken {
NoToken,
PreSharedToken(String),
}
impl AccessToken {
pub fn does_match(&self, test_str: &str) -> bool {
match self {
&AccessToken::NoToken => true,
&AccessToken::PreSharedToken(ref s) => s==test_str,
}
}
}