1pub use biscuit::jws::Compact as Jws;
2use biscuit::CompactJson;
3
4use crate::{Bearer, Claims, IdToken, StandardClaims};
5
6#[allow(missing_debug_implementations)]
10pub struct Token<C: CompactJson + Claims = StandardClaims> {
11 pub bearer: Bearer,
15 pub id_token: Option<IdToken<C>>,
19}
20
21impl<C: CompactJson + Claims> From<Bearer> for Token<C> {
22 fn from(bearer: Bearer) -> Self {
23 let id_token = bearer
24 .id_token
25 .as_ref()
26 .map(|token| Jws::new_encoded(token));
27 Self { bearer, id_token }
28 }
29}