#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct AuthSession {
pub client_id: Option<u64>,
pub request_id: Option<Vec<u8>>,
pub poll_interval: Option<f32>,
pub allowed_confirmations: Vec<GuardType>,
pub steam_id: Option<u64>,
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct QrAuthSession {
pub client_id: Option<u64>,
pub request_id: Option<Vec<u8>>,
pub challenge_url: Option<String>,
pub poll_interval: Option<f32>,
pub allowed_confirmations: Vec<GuardType>,
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub struct AuthTokens {
pub access_token: String,
pub refresh_token: String,
pub account_name: Option<String>,
}
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
#[non_exhaustive]
pub enum GuardType {
None,
EmailCode,
DeviceCode,
DeviceConfirmation,
}
impl GuardType {
pub fn from_proto(value: i32) -> Option<Self> {
match value {
1 => Some(Self::None),
2 => Some(Self::EmailCode),
3 => Some(Self::DeviceCode),
4 => Some(Self::DeviceConfirmation),
_ => Option::None,
}
}
pub fn to_proto(self) -> i32 {
match self {
Self::None => 1,
Self::EmailCode => 2,
Self::DeviceCode => 3,
Self::DeviceConfirmation => 4,
}
}
}