allow non-'static HTTP method names #5

Merged
MightyPork merged 1 commits from :pr-method-lifetime into master 4 years ago
  1. 4
      src/digest.rs
  2. 8
      src/enums.rs

@ -161,7 +161,7 @@ pub struct AuthContext<'a> {
/// May be left out if not using auth-int /// May be left out if not using auth-int
pub body: Option<Cow<'a, [u8]>>, pub body: Option<Cow<'a, [u8]>>,
/// HTTP method used (defaults to GET) /// HTTP method used (defaults to GET)
pub method: HttpMethod, pub method: HttpMethod<'a>,
/// Spoofed client nonce (use only for tests; a random nonce is generated automatically) /// Spoofed client nonce (use only for tests; a random nonce is generated automatically)
pub cnonce: Option<Cow<'a, str>>, pub cnonce: Option<Cow<'a, str>>,
} }
@ -202,7 +202,7 @@ impl<'a> AuthContext<'a> {
password: PW, password: PW,
uri: UR, uri: UR,
body: Option<BD>, body: Option<BD>,
method: HttpMethod, method: HttpMethod<'a>,
) -> Self ) -> Self
where where
UN: Into<Cow<'a, str>>, UN: Into<Cow<'a, str>>,

@ -168,20 +168,20 @@ impl Display for Charset {
/// HTTP method (used when generating the response hash for some Qop options) /// HTTP method (used when generating the response hash for some Qop options)
#[derive(Debug)] #[derive(Debug)]
pub enum HttpMethod { pub enum HttpMethod<'a> {
GET, GET,
POST, POST,
HEAD, HEAD,
OTHER(&'static str), OTHER(&'a str),
} }
impl Default for HttpMethod { impl<'a> Default for HttpMethod<'a> {
fn default() -> Self { fn default() -> Self {
HttpMethod::GET HttpMethod::GET
} }
} }
impl Display for HttpMethod { impl<'a> Display for HttpMethod<'a> {
/// Convert to uppercase string /// Convert to uppercase string
fn fmt(&self, f: &mut Formatter) -> fmt::Result { fn fmt(&self, f: &mut Formatter) -> fmt::Result {
f.write_str(match self { f.write_str(match self {

Loading…
Cancel
Save