use hyper::header::{HeaderValue, ETAG, LAST_MODIFIED, USER_AGENT};
use hyper::HeaderMap;
use std::str::FromStr;
pub fn has_github_hookshot(head: &HeaderMap) -> bool {
head.get(USER_AGENT).map_or(false, |user_agent| {
user_agent
.to_str()
.ok()
.map_or(false, |s| s.starts_with("GitHub-Hookshot"))
})
}
pub fn etag(head: &HeaderMap) -> Option<&HeaderValue> {
head.get(ETAG)
}
pub fn last_modified(head: &HeaderMap) -> Option<&HeaderValue> {
head.get(LAST_MODIFIED)
}
pub fn rate_limit_remaining(head: &HeaderMap) -> Option<u32> {
head.get("X-RateLimit-Remaining")
.map(|limit| u32::from_str(limit.to_str().unwrap_or("")).ok())
.unwrap_or(None)
}
pub fn rate_limit(head: &HeaderMap) -> Option<u32> {
head.get("X-RateLimit-Limit")
.map(|limit| u32::from_str(limit.to_str().unwrap_or("")).ok())
.unwrap_or(None)
}
pub fn rate_limit_reset(head: &HeaderMap) -> Option<u32> {
head.get("X-RateLimit-Reset")
.map(|limit| u32::from_str(limit.to_str().unwrap_or("")).ok())
.unwrap_or(None)
}