// config.mbt — 框架配置:构造期注入,无全局无环境变量(D-G5)

///|
/// 框架配置。allowed_drift 界内算有效(时钟漂移容忍);TTL 单位毫秒。
pub(all) struct GuardConfig {
  issuer : String
  audience : String
  allowed_drift_ms : Int64
  access_ttl_ms : Int64
  refresh_ttl_ms : Int64
} derive(Eq, Debug)

///|
/// 默认形:allowed_drift 5000ms(D-AUTH8/D-G5);TTL 由消费方给。
/// 标签实参形——调用点自述每个参数的身份。
pub fn GuardConfig::make(
  issuer~ : String,
  audience~ : String,
  access_ttl_ms~ : Int64,
  refresh_ttl_ms~ : Int64,
) -> GuardConfig {
  { issuer, audience, allowed_drift_ms: 5000L, access_ttl_ms, refresh_ttl_ms, }
}