use serde::{Deserialize, Serialize}; use std::path::Path; use teslatte::auth::{AccessToken, RefreshToken}; use thiserror::Error; #[derive(Serialize, Deserialize, Clone)] pub struct AuthInfo { pub access_token: AccessToken, pub refresh_token: Option, } impl AuthInfo { pub fn save(&self, path: &Path) -> Result<(), SaveError> { std::fs::write(path, ron::ser::to_string(self)?)?; Ok(()) } } #[derive(Error, Debug)] pub enum SaveError { #[error("stdio error")] StdIo(#[from] std::io::Error), #[error("ron")] RonSpanned(#[from] ron::Error), }