pub struct TokenData {
pub token: Secret<String>,
pub expires_at: DateTime<Utc>,
pub obtained_at: DateTime<Utc>,
}Expand description
Enhanced token data structure with secure storage and timestamp tracking
Fields§
§token: Secret<String>§expires_at: DateTime<Utc>§obtained_at: DateTime<Utc>Implementations§
Source§impl TokenData
impl TokenData
Sourcepub fn new(token: String, expires_at: DateTime<Utc>) -> Self
pub fn new(token: String, expires_at: DateTime<Utc>) -> Self
Creates a new TokenData instance
§Examples
let expires_at = Utc::now() + Duration::hours(24);
let token_data = TokenData::new("my_token".to_string(), expires_at);
assert!(!token_data.is_expired());Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Checks if the token is expired
§Examples
// Create an expired token
let expires_at = Utc::now() - Duration::hours(1);
let token_data = TokenData::new("expired_token".to_string(), expires_at);
assert!(token_data.is_expired());
// Create a valid token
let expires_at = Utc::now() + Duration::hours(1);
let token_data = TokenData::new("valid_token".to_string(), expires_at);
assert!(!token_data.is_expired());Sourcepub fn expires_soon(&self, threshold: Duration) -> bool
pub fn expires_soon(&self, threshold: Duration) -> bool
Checks if the token expires within the given threshold
§Examples
// Token expires in 30 minutes
let expires_at = Utc::now() + Duration::minutes(30);
let token_data = TokenData::new("token".to_string(), expires_at);
// Check if it expires within 1 hour
assert!(token_data.expires_soon(Duration::hours(1)));
// Check if it expires within 15 minutes
assert!(!token_data.expires_soon(Duration::minutes(15)));Sourcepub fn age(&self) -> Duration
pub fn age(&self) -> Duration
Returns the age of the token
§Examples
let expires_at = Utc::now() + Duration::hours(24);
let token_data = TokenData::new("token".to_string(), expires_at);
// Token age should be very small (just created)
let age = token_data.age();
assert!(age < Duration::seconds(1));Trait Implementations§
Source§impl<'de> Deserialize<'de> for TokenData
impl<'de> Deserialize<'de> for TokenData
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for TokenData
impl RefUnwindSafe for TokenData
impl Send for TokenData
impl Sync for TokenData
impl Unpin for TokenData
impl UnsafeUnpin for TokenData
impl UnwindSafe for TokenData
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more