webdav_headers/
lock_token.rs1use crate::{utils::HeaderIteratorExt, CodedUrl, LOCK_TOKEN};
6
7#[derive(Clone, Debug, PartialEq)]
9pub struct LockToken(pub CodedUrl);
10
11impl headers::Header for LockToken {
12 fn name() -> &'static http::HeaderName {
13 &LOCK_TOKEN
14 }
15
16 fn decode<'i, I>(values: &mut I) -> Result<Self, headers::Error>
17 where
18 Self: Sized,
19 I: Iterator<Item = &'i http::HeaderValue>,
20 {
21 values
22 .extract_str()?
23 .parse()
24 .map(Self)
25 .map_err(|_| headers::Error::invalid())
26 }
27
28 fn encode<E: Extend<http::HeaderValue>>(&self, values: &mut E) {
29 values.extend(std::iter::once(self.0.to_string().parse().unwrap()))
30 }
31}