use crate::sql::{Expr, Literal};
use crate::types::PublicDuration;
#[derive(Debug, Clone, Eq, PartialEq)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
pub struct AccessDuration {
pub grant: Expr,
pub token: Expr,
pub session: Expr,
}
impl Default for AccessDuration {
fn default() -> Self {
Self {
grant: Expr::Literal(Literal::Duration(
PublicDuration::from_days(30).expect("30 days should fit in a duration"),
)),
token: Expr::Literal(Literal::Duration(
PublicDuration::from_hours(1).expect("1 hour should fit in a duration"),
)),
session: Expr::Literal(Literal::None),
}
}
}
impl From<AccessDuration> for crate::expr::access::AccessDuration {
fn from(v: AccessDuration) -> Self {
Self {
grant: v.grant.into(),
token: v.token.into(),
session: v.session.into(),
}
}
}
impl From<crate::expr::access::AccessDuration> for AccessDuration {
fn from(v: crate::expr::access::AccessDuration) -> Self {
Self {
grant: v.grant.into(),
token: v.token.into(),
session: v.session.into(),
}
}
}