From 2c53d5d2ca6fdad893842b287f2e62b44bb1fe47 Mon Sep 17 00:00:00 2001 From: Bodil Stokke Date: Sat, 17 Nov 2018 21:49:38 +0000 Subject: [PATCH] Implement Metadata + HTTPEquiv types for meta elements. --- typed-html/src/elements.rs | 4 ++-- typed-html/src/types/mod.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/typed-html/src/elements.rs b/typed-html/src/elements.rs index 669b8f3..e4a32da 100644 --- a/typed-html/src/elements.rs +++ b/typed-html/src/elements.rs @@ -53,8 +53,8 @@ declare_elements!{ meta { charset: String, // FIXME IANA standard names content: String, - http_equiv: String, // FIXME string enum - name: String, // FIXME string enum + http_equiv: HTTPEquiv, + name: Metadata, } in [MetadataContent]; style { type: Mime, diff --git a/typed-html/src/types/mod.rs b/typed-html/src/types/mod.rs index 41fa1ae..a1d157c 100644 --- a/typed-html/src/types/mod.rs +++ b/typed-html/src/types/mod.rs @@ -84,6 +84,14 @@ pub enum FormMethod { Get, } +#[derive(EnumString, Display, PartialEq, Eq, PartialOrd, Ord, AsRefStr, AsStaticStr)] +pub enum HTTPEquiv { + #[strum(to_string = "content-security-policy")] + ContentSecurityPolicy, + #[strum(to_string = "refresh")] + Refresh, +} + #[derive(EnumString, Display, PartialEq, Eq, PartialOrd, Ord, AsRefStr, AsStaticStr)] pub enum ImageDecoding { #[strum(to_string = "sync")] @@ -190,6 +198,32 @@ pub enum LinkType { Tag, } +#[derive(EnumString, Display, PartialEq, Eq, PartialOrd, Ord, AsRefStr, AsStaticStr)] +pub enum Metadata { + #[strum(to_string = "application-name")] + ApplicationName, + #[strum(to_string = "author")] + Author, + #[strum(to_string = "description")] + Description, + #[strum(to_string = "generator")] + Generator, + #[strum(to_string = "keywords")] + Keywords, + #[strum(to_string = "referrer")] + Referrer, + #[strum(to_string = "creator")] + Creator, + #[strum(to_string = "googlebot")] + Googlebot, + #[strum(to_string = "publisher")] + Publisher, + #[strum(to_string = "robots")] + Robots, + #[strum(to_string = "viewport")] + Viewport, +} + #[derive(EnumString, Display, PartialEq, Eq, PartialOrd, Ord, AsRefStr, AsStaticStr)] pub enum OnOff { #[strum(to_string = "on")]