cooplan_auth/
token.rs

1use std::time::Instant;
2
3pub struct Token {
4    token: String,
5    generated_at: Instant,
6    validity_in_seconds: u64,
7}
8
9impl Token {
10    pub fn new(token: String, generated_at: Instant, validity_in_seconds: u64) -> Token {
11        Token {
12            token,
13            generated_at,
14            validity_in_seconds,
15        }
16    }
17
18    pub fn is_expired(&self) -> bool {
19        self.generated_at.elapsed().as_secs() > self.validity_in_seconds
20    }
21
22    pub fn does_expire_after(&self, seconds: u64) -> bool {
23        (self.generated_at.elapsed().as_secs() + seconds) > self.validity_in_seconds
24    }
25
26    pub fn value(&self) -> &str {
27        &self.token
28    }
29}