use std::fmt;
use serde::{Deserialize, Serialize};
use super::Extras;
use crate::seed::token_book::SecretString;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PairStatus {
#[serde(default)]
pub paired: bool,
#[serde(default)]
pub client_count: u32,
#[serde(default)]
pub pairing_window_open: bool,
#[serde(default)]
pub window_remaining_secs: u32,
#[serde(flatten)]
pub extras: Extras,
}
#[derive(Debug, Clone, Serialize, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct PairCreate {
pub client_name: String,
}
#[derive(Clone, Serialize, Deserialize)]
pub struct PairCreateResponse {
#[serde(default)]
pub client_name: String,
#[serde(default)]
pub token: SecretString,
#[serde(default)]
pub expires_at: Option<String>,
#[serde(flatten)]
pub extras: Extras,
}
impl fmt::Debug for PairCreateResponse {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("PairCreateResponse")
.field("client_name", &self.client_name)
.field("token", &"<redacted>")
.field("expires_at", &self.expires_at)
.field("extras", &self.extras)
.finish()
}
}