shield_credentials/
credentials.rs

1use async_trait::async_trait;
2use serde::de::DeserializeOwned;
3use shield::{Form, ShieldError, User};
4
5#[async_trait]
6pub trait Credentials<U: User, D: DeserializeOwned>: Send + Sync {
7    fn form(&self) -> Form;
8
9    async fn sign_in(&self, data: D) -> Result<U, ShieldError>;
10}