gelbooru_api/
auth.rs

1use crate::Error;
2
3/// Credentials for use with API
4#[derive(Clone, Debug)]
5pub struct AuthDetails {
6    pub user: usize,
7    pub key: String,
8}
9
10impl AuthDetails {
11    pub fn from_query_string(qs: &str) -> Result<Self, Error> {
12        let user_start = qs.find("&user_id=").ok_or(Error::ParseAuth)?;
13        let user_raw = &qs[user_start + 9..];
14        let user = user_raw.parse().map_err(|err| Error::ParseUserId(err))?;
15        let key = qs[9..user_start].to_string();
16
17        Ok(Self { user, key })
18    }
19}