heroku_rs/framework/
auth.rs

1use reqwest::blocking::RequestBuilder;
2
3/// Credentials enum, currently only supporting token authentication
4#[derive(Debug)]
5pub enum Credentials {
6    UserAuthToken { token: String },
7}
8
9impl Credentials {
10    pub fn headers(&self) -> Vec<(&'static str, String)> {
11        match self {
12            Self::UserAuthToken { token } => vec![("Authorization", format!("Bearer {}", token))],
13        }
14    }
15}
16
17pub trait AuthClient {
18    fn auth(self, credentials: &Credentials) -> Self;
19}
20
21impl AuthClient for RequestBuilder {
22    fn auth(mut self, credentials: &Credentials) -> Self {
23        for (k, v) in credentials.headers() {
24            self = self.header(k, v);
25        }
26        self
27    }
28}