dust-mail 0.4.0

A multi protocol email client
pub struct OAuthCredentials {
    username: String,
    token: String,
}

impl async_imap::Authenticator for OAuthCredentials {
    type Response = String;

    fn process(&mut self, _: &[u8]) -> Self::Response {
        format!(
            "user={}\x01auth=Bearer {}\x01\x01",
            self.username, self.token
        )
    }
}

impl OAuthCredentials {
    pub fn new<Username: Into<String>, Token: Into<String>>(
        username: Username,
        token: Token,
    ) -> Self {
        Self {
            username: username.into(),
            token: token.into(),
        }
    }
}