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}