license_api/
traits.rs

1use std::error::Error;
2use crate::models::{LoginRequest, LoginResponse, MeResponse};
3
4#[async_trait::async_trait]
5pub trait Authenticator {
6    async fn login(
7        &self,
8        creds: &LoginRequest,
9    ) -> Result<LoginResponse, Box<dyn Error + Send + Sync>>;
10
11    async fn me(&self, access_token: &str) -> Result<MeResponse, Box<dyn Error + Send + Sync>>;
12
13    async fn link_hwid(
14        &self,
15        hwid: &str,
16        access_token: &str,
17    ) -> Result<String, Box<dyn Error + Send + Sync>>;
18}