tide_auth/traits.rs
1use async_trait::async_trait;
2use http_types::headers::{HeaderName, HeaderValue};
3
4use crate::Result;
5
6#[async_trait]
7pub trait Scheme {
8 fn header_name() -> HeaderName;
9
10 async fn parse(&self, header_value: &HeaderValue) -> Result<AuthValue>;
11}
12
13#[derive(Debug)]
14pub enum AuthValue {
15 Bearer(String),
16 Basic(User),
17}
18
19#[derive(Debug)]
20pub struct User {
21 pub username: String,
22 pub password: String,
23}