1use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
5pub struct AuthToken {
6 pub id: String,
7 pub user: String,
8}
9
10impl AuthToken {
11 pub fn new(id: impl Into<String>, user: impl Into<String>) -> Self {
12 Self {
13 id: id.into(),
14 user: user.into(),
15 }
16 }
17
18 pub fn to_bytes(&self) -> Vec<u8> {
19 rmp_serde::to_vec(self).expect("auth token serialization should not fail")
20 }
21
22 pub fn from_bytes(bytes: &[u8]) -> Option<Self> {
23 rmp_serde::from_slice(bytes).ok()
24 }
25}