allow non-'static HTTP method names

Background: RTSP uses HTTP digest authentication (see RFC 2326 section
1.4). I'm using the rtsp-types crate. It works fine with digest_auth,
except that [rtsp_types::Method::Extension](https://docs.rs/rtsp-types/0.0.1/rtsp_types/enum.Method.html#variant.Extension)
has a non-static lifetime.
pull/5/head
Scott Lamb 3 years ago
parent 750294cd97
commit 2e61615da0
  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
pub body: Option<Cow<'a, [u8]>>,
/// 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)
pub cnonce: Option<Cow<'a, str>>,
}
@ -202,7 +202,7 @@ impl<'a> AuthContext<'a> {
password: PW,
uri: UR,
body: Option<BD>,
method: HttpMethod,
method: HttpMethod<'a>,
) -> Self
where
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)
#[derive(Debug)]
pub enum HttpMethod {
pub enum HttpMethod<'a> {
GET,
POST,
HEAD,
OTHER(&'static str),
OTHER(&'a str),
}
impl Default for HttpMethod {
impl<'a> Default for HttpMethod<'a> {
fn default() -> Self {
HttpMethod::GET
}
}
impl Display for HttpMethod {
impl<'a> Display for HttpMethod<'a> {
/// Convert to uppercase string
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
f.write_str(match self {

Loading…
Cancel
Save