use http::HeaderValue;
use serde::{Deserialize, Serialize};
pub mod headers;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum Swap {
#[serde(rename = "innerHtml")]
InnerHtml,
#[serde(rename = "outerHtml")]
OuterHtml,
#[serde(rename = "beforebegin")]
BeforeBegin,
#[serde(rename = "afterbegin")]
AfterBegin,
#[serde(rename = "beforeend")]
BeforeEnd,
#[serde(rename = "afterend")]
AfterEnd,
#[serde(rename = "delete")]
Delete,
#[serde(rename = "none")]
None,
}
impl From<Swap> for HeaderValue {
fn from(swap: Swap) -> Self {
match swap {
Swap::InnerHtml => Self::from_static("innerHtml"),
Swap::OuterHtml => Self::from_static("outerHtml"),
Swap::BeforeBegin => Self::from_static("beforebegin"),
Swap::AfterBegin => Self::from_static("afterbegin"),
Swap::BeforeEnd => Self::from_static("beforeend"),
Swap::AfterEnd => Self::from_static("afterend"),
Swap::Delete => Self::from_static("delete"),
Swap::None => Self::from_static("none"),
}
}
}
impl TryFrom<&[u8]> for Swap {
type Error = ();
fn try_from(bytes: &[u8]) -> Result<Self, Self::Error> {
match bytes {
b"innerHtml" => Ok(Self::InnerHtml),
b"outerHtml" => Ok(Self::OuterHtml),
b"beforebegin" => Ok(Self::BeforeBegin),
b"afterbegin" => Ok(Self::AfterBegin),
b"beforeend" => Ok(Self::BeforeEnd),
b"afterend" => Ok(Self::AfterEnd),
b"delete" => Ok(Self::Delete),
b"none" => Ok(Self::None),
_ => Err(()),
}
}
}