1use http::HeaderValue;
4use serde::{Deserialize, Serialize};
5
6pub mod headers;
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
13pub enum Swap {
14 #[serde(rename = "innerHtml")]
16 InnerHtml,
17
18 #[serde(rename = "outerHtml")]
20 OuterHtml,
21
22 #[serde(rename = "beforebegin")]
24 BeforeBegin,
25
26 #[serde(rename = "afterbegin")]
28 AfterBegin,
29
30 #[serde(rename = "beforeend")]
32 BeforeEnd,
33
34 #[serde(rename = "afterend")]
36 AfterEnd,
37
38 #[serde(rename = "delete")]
40 Delete,
41
42 #[serde(rename = "none")]
45 None,
46}
47
48impl From<Swap> for HeaderValue {
49 fn from(swap: Swap) -> Self {
50 match swap {
51 Swap::InnerHtml => Self::from_static("innerHtml"),
52 Swap::OuterHtml => Self::from_static("outerHtml"),
53 Swap::BeforeBegin => Self::from_static("beforebegin"),
54 Swap::AfterBegin => Self::from_static("afterbegin"),
55 Swap::BeforeEnd => Self::from_static("beforeend"),
56 Swap::AfterEnd => Self::from_static("afterend"),
57 Swap::Delete => Self::from_static("delete"),
58 Swap::None => Self::from_static("none"),
59 }
60 }
61}
62
63impl TryFrom<&[u8]> for Swap {
64 type Error = ();
65
66 fn try_from(bytes: &[u8]) -> Result<Self, Self::Error> {
67 match bytes {
68 b"innerHtml" => Ok(Self::InnerHtml),
69 b"outerHtml" => Ok(Self::OuterHtml),
70 b"beforebegin" => Ok(Self::BeforeBegin),
71 b"afterbegin" => Ok(Self::AfterBegin),
72 b"beforeend" => Ok(Self::BeforeEnd),
73 b"afterend" => Ok(Self::AfterEnd),
74 b"delete" => Ok(Self::Delete),
75 b"none" => Ok(Self::None),
76 _ => Err(()),
77 }
78 }
79}