tesla-common/src/lib.rs
2024-02-12 11:26:01 +11:00

26 lines
604 B
Rust

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<RefreshToken>,
}
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),
}