cipherstash-client 0.12.5

The official CipherStash SDK
Documentation
use serde::{Deserialize, Serialize};

use crate::credentials::TokenExpiry;

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserToken {
    pub(crate) refresh_token: String,
    pub(crate) access_token: String,
    pub(crate) expiry: u64,
}

impl UserToken {
    pub fn access_token(&self) -> String {
        self.access_token.to_string()
    }

    pub fn as_header(&self) -> String {
        format!("Bearer {}", self.access_token)
    }
}

impl<'a> TokenExpiry<'a> for UserToken {
    fn expires_at_secs(&self) -> u64 {
        self.expiry
    }
}