license_api/auth/
traits.rs

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