|
@@ -6,11 +6,73 @@
|
|
//! An added benefit of this approach is the ability to lend comprehensive documentation on how to use these elements inside
|
|
//! An added benefit of this approach is the ability to lend comprehensive documentation on how to use these elements inside
|
|
//! of the Rsx and Html macros. Each element comes with a substantial amount of documentation on how to best use it, hopefully
|
|
//! of the Rsx and Html macros. Each element comes with a substantial amount of documentation on how to best use it, hopefully
|
|
//! making the development cycle quick.
|
|
//! making the development cycle quick.
|
|
|
|
+//!
|
|
|
|
+//! All elements are used as zero-sized unit structs with trait impls.
|
|
|
|
+//!
|
|
|
|
+//! Currently, we don't validate for structures, but do validate attributes.
|
|
|
|
+//!
|
|
|
|
+//!
|
|
|
|
+//!
|
|
|
|
+//!
|
|
|
|
|
|
-use dioxus_core::{DioxusElement, NodeFactory};
|
|
|
|
|
|
+use std::fmt::Arguments;
|
|
|
|
+
|
|
|
|
+use dioxus_core::{nodes::Attribute, DioxusElement, NodeFactory};
|
|
|
|
+
|
|
|
|
+trait GlobalAttributes {
|
|
|
|
+ fn accesskey<'a>(&self, cx: NodeFactory<'a>, val: Arguments) -> Attribute<'a> {
|
|
|
|
+ cx.attr("accesskey", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn class<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("class", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn contenteditable<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("contenteditable", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn data<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("data", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn dir<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("dir", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn draggable<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("draggable", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn hidden<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("hidden", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn id<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("id", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn lang<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("lang", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn spellcheck<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("spellcheck", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn style<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("style", val, Some("style"), false)
|
|
|
|
+ }
|
|
|
|
+ fn tabindex<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("tabindex", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn title<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("title", val, None, false)
|
|
|
|
+ }
|
|
|
|
+ fn translate<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr("translate", val, None, false)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
|
|
macro_rules! builder_constructors {
|
|
macro_rules! builder_constructors {
|
|
- ( $( $(#[$attr:meta])* $name:ident; )* ) => {
|
|
|
|
|
|
+ (
|
|
|
|
+ $(
|
|
|
|
+ $(#[$attr:meta])*
|
|
|
|
+ $name:ident {
|
|
|
|
+ $($fil:ident: $vil:ident,)*
|
|
|
|
+ };
|
|
|
|
+ )*
|
|
|
|
+ ) => {
|
|
$(
|
|
$(
|
|
#[allow(non_camel_case_types)]
|
|
#[allow(non_camel_case_types)]
|
|
$(#[$attr])*
|
|
$(#[$attr])*
|
|
@@ -20,6 +82,16 @@ macro_rules! builder_constructors {
|
|
const TAG_NAME: &'static str = stringify!($name);
|
|
const TAG_NAME: &'static str = stringify!($name);
|
|
const NAME_SPACE: Option<&'static str> = None;
|
|
const NAME_SPACE: Option<&'static str> = None;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ impl GlobalAttributes for $name {}
|
|
|
|
+
|
|
|
|
+ impl $name {
|
|
|
|
+ $(
|
|
|
|
+ pub fn $fil<'a>(&self, cx: NodeFactory<'a>, val: Arguments<'a>) -> Attribute<'a> {
|
|
|
|
+ cx.attr(stringify!($fil), val, None, false)
|
|
|
|
+ }
|
|
|
|
+ )*
|
|
|
|
+ }
|
|
)*
|
|
)*
|
|
};
|
|
};
|
|
|
|
|
|
@@ -44,7 +116,7 @@ macro_rules! builder_constructors {
|
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element
|
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element
|
|
//
|
|
//
|
|
// Does not include obsolete elements.
|
|
// Does not include obsolete elements.
|
|
-
|
|
|
|
|
|
+//
|
|
// This namespace represents a collection of modern HTML-5 compatiable elements.
|
|
// This namespace represents a collection of modern HTML-5 compatiable elements.
|
|
//
|
|
//
|
|
// This list does not include obsolete, deprecated, experimental, or poorly supported elements.
|
|
// This list does not include obsolete, deprecated, experimental, or poorly supported elements.
|
|
@@ -55,63 +127,91 @@ builder_constructors! {
|
|
/// [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base)
|
|
/// [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base)
|
|
/// element.
|
|
/// element.
|
|
///
|
|
///
|
|
- /// A base element is your mom!
|
|
|
|
- base;
|
|
|
|
|
|
+ base {
|
|
|
|
+ href: Uri,
|
|
|
|
+ target: Target,
|
|
|
|
+ };
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head)
|
|
/// [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head)
|
|
/// element.
|
|
/// element.
|
|
- head;
|
|
|
|
|
|
+ head {};
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<link>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link)
|
|
/// [`<link>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link)
|
|
/// element.
|
|
/// element.
|
|
- link;
|
|
|
|
|
|
+ link {
|
|
|
|
+ // as: Mime,
|
|
|
|
+ crossorigin: CrossOrigin,
|
|
|
|
+ href: Uri,
|
|
|
|
+ hreflang: LanguageTag,
|
|
|
|
+ media: String, // FIXME media query
|
|
|
|
+ rel: LinkType,
|
|
|
|
+ sizes: String, // FIXME
|
|
|
|
+ title: String, // FIXME
|
|
|
|
+ // type: Mime,
|
|
|
|
+ };
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta)
|
|
/// [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta)
|
|
/// element.
|
|
/// element.
|
|
- meta;
|
|
|
|
|
|
+ meta {
|
|
|
|
+ charset: String, // FIXME IANA standard names
|
|
|
|
+ content: String,
|
|
|
|
+ http_equiv: HTTPEquiv,
|
|
|
|
+ name: Metadata,
|
|
|
|
+ };
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<style>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style)
|
|
/// [`<style>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style)
|
|
/// element.
|
|
/// element.
|
|
- style;
|
|
|
|
|
|
+ style {
|
|
|
|
+ // type: Mime,
|
|
|
|
+ media: String, // FIXME media query
|
|
|
|
+ nonce: Nonce,
|
|
|
|
+ title: String, // FIXME
|
|
|
|
+ };
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title)
|
|
/// [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title)
|
|
/// element.
|
|
/// element.
|
|
- title;
|
|
|
|
|
|
+ title { };
|
|
|
|
|
|
// Sectioning root
|
|
// Sectioning root
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<body>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/body)
|
|
/// [`<body>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/body)
|
|
/// element.
|
|
/// element.
|
|
- body;
|
|
|
|
|
|
+ body {};
|
|
|
|
|
|
|
|
+ // ------------------
|
|
// Content sectioning
|
|
// Content sectioning
|
|
|
|
+ // ------------------
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<address>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/address)
|
|
/// [`<address>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/address)
|
|
/// element.
|
|
/// element.
|
|
- address;
|
|
|
|
|
|
+ address {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<article>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/article)
|
|
/// [`<article>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/article)
|
|
/// element.
|
|
/// element.
|
|
- article;
|
|
|
|
|
|
+ article {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<aside>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside)
|
|
/// [`<aside>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside)
|
|
/// element.
|
|
/// element.
|
|
- aside;
|
|
|
|
|
|
+ aside {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<footer>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/footer)
|
|
/// [`<footer>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/footer)
|
|
/// element.
|
|
/// element.
|
|
- footer;
|
|
|
|
|
|
+ footer {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<header>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header)
|
|
/// [`<header>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header)
|
|
/// element.
|
|
/// element.
|
|
- header;
|
|
|
|
|
|
+ header {};
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<h1>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h1)
|
|
/// [`<h1>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h1)
|
|
@@ -131,8 +231,7 @@ builder_constructors! {
|
|
/// rsx!(h1 { "A header element" })
|
|
/// rsx!(h1 { "A header element" })
|
|
/// LazyNodes::new(|f| f.el(h1).children([f.text("A header element")]).finish())
|
|
/// LazyNodes::new(|f| f.el(h1).children([f.text("A header element")]).finish())
|
|
/// ```
|
|
/// ```
|
|
- ///
|
|
|
|
- h1;
|
|
|
|
|
|
+ h1 {};
|
|
|
|
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
@@ -152,7 +251,7 @@ builder_constructors! {
|
|
/// rsx!(h2 { "A header element" })
|
|
/// rsx!(h2 { "A header element" })
|
|
/// LazyNodes::new(|f| f.el(h2).children([f.text("A header element")]).finish())
|
|
/// LazyNodes::new(|f| f.el(h2).children([f.text("A header element")]).finish())
|
|
/// ```
|
|
/// ```
|
|
- h2;
|
|
|
|
|
|
+ h2 {};
|
|
|
|
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
@@ -165,416 +264,739 @@ builder_constructors! {
|
|
/// - The most important heading is <h1> and the least important heading is <h6>.
|
|
/// - The most important heading is <h1> and the least important heading is <h6>.
|
|
/// - The <h1> heading is the first heading in the document.
|
|
/// - The <h1> heading is the first heading in the document.
|
|
/// - The <h1> heading is usually a large bolded font.
|
|
/// - The <h1> heading is usually a large bolded font.
|
|
- h3;
|
|
|
|
|
|
+ h3 {};
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<h4>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h4)
|
|
/// [`<h4>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h4)
|
|
/// element.
|
|
/// element.
|
|
- h4;
|
|
|
|
|
|
+ h4 {};
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<h5>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h5)
|
|
/// [`<h5>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h5)
|
|
/// element.
|
|
/// element.
|
|
- h5;
|
|
|
|
|
|
+ h5 {};
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<h6>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h6)
|
|
/// [`<h6>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h6)
|
|
/// element.
|
|
/// element.
|
|
- h6;
|
|
|
|
|
|
+ h6 {};
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<main>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/main)
|
|
/// [`<main>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/main)
|
|
/// element.
|
|
/// element.
|
|
- main;
|
|
|
|
|
|
+ main {};
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<nav>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/nav)
|
|
/// [`<nav>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/nav)
|
|
/// element.
|
|
/// element.
|
|
- nav;
|
|
|
|
|
|
+ nav {};
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<section>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/section)
|
|
/// [`<section>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/section)
|
|
/// element.
|
|
/// element.
|
|
- section;
|
|
|
|
|
|
+ section {};
|
|
|
|
|
|
// Text content
|
|
// Text content
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<blockquote>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote)
|
|
/// [`<blockquote>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote)
|
|
/// element.
|
|
/// element.
|
|
- blockquote;
|
|
|
|
|
|
+ blockquote {
|
|
|
|
+ cite: Uri,
|
|
|
|
+ };
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<dd>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dd)
|
|
/// [`<dd>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dd)
|
|
/// element.
|
|
/// element.
|
|
- dd;
|
|
|
|
|
|
+ dd {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<div>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div)
|
|
/// [`<div>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div)
|
|
/// element.
|
|
/// element.
|
|
- div;
|
|
|
|
|
|
+ div {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<dl>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl)
|
|
/// [`<dl>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl)
|
|
/// element.
|
|
/// element.
|
|
- dl;
|
|
|
|
|
|
+ dl {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<dt>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dt)
|
|
/// [`<dt>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dt)
|
|
/// element.
|
|
/// element.
|
|
- dt;
|
|
|
|
|
|
+ dt {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<figcaption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption)
|
|
/// [`<figcaption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption)
|
|
/// element.
|
|
/// element.
|
|
- figcaption;
|
|
|
|
|
|
+ figcaption {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<figure>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure)
|
|
/// [`<figure>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure)
|
|
/// element.
|
|
/// element.
|
|
- figure;
|
|
|
|
|
|
+ figure {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<hr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr)
|
|
/// [`<hr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr)
|
|
/// element.
|
|
/// element.
|
|
- hr;
|
|
|
|
|
|
+ hr {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li)
|
|
/// [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li)
|
|
/// element.
|
|
/// element.
|
|
- li;
|
|
|
|
|
|
+ li {
|
|
|
|
+ value: isize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol)
|
|
/// [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol)
|
|
/// element.
|
|
/// element.
|
|
- ol;
|
|
|
|
|
|
+ ol {
|
|
|
|
+ reversed: Bool,
|
|
|
|
+ start: isize,
|
|
|
|
+ // type: OrderedListType,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<p>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p)
|
|
/// [`<p>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p)
|
|
/// element.
|
|
/// element.
|
|
- p;
|
|
|
|
|
|
+ p {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<pre>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre)
|
|
/// [`<pre>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre)
|
|
/// element.
|
|
/// element.
|
|
- pre;
|
|
|
|
|
|
+ pre {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul)
|
|
/// [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul)
|
|
/// element.
|
|
/// element.
|
|
- ul;
|
|
|
|
|
|
+ ul {};
|
|
|
|
+
|
|
|
|
|
|
// Inline text semantics
|
|
// Inline text semantics
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a)
|
|
/// [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a)
|
|
/// element.
|
|
/// element.
|
|
- a;
|
|
|
|
|
|
+ a {
|
|
|
|
+ download: String,
|
|
|
|
+ href: Uri,
|
|
|
|
+ hreflang: LanguageTag,
|
|
|
|
+ target: Target,
|
|
|
|
+ // type: Mime,
|
|
|
|
+ // ping: SpacedList<Uri>,
|
|
|
|
+ // rel: SpacedList<LinkType>,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<abbr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr)
|
|
/// [`<abbr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr)
|
|
/// element.
|
|
/// element.
|
|
- abbr;
|
|
|
|
|
|
+ abbr {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<b>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/b)
|
|
/// [`<b>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/b)
|
|
/// element.
|
|
/// element.
|
|
- b;
|
|
|
|
|
|
+ b {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<bdi>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdi)
|
|
/// [`<bdi>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdi)
|
|
/// element.
|
|
/// element.
|
|
- bdi;
|
|
|
|
|
|
+ bdi {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<bdo>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo)
|
|
/// [`<bdo>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo)
|
|
/// element.
|
|
/// element.
|
|
- bdo;
|
|
|
|
|
|
+ bdo {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<br>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br)
|
|
/// [`<br>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br)
|
|
/// element.
|
|
/// element.
|
|
- br;
|
|
|
|
|
|
+ br {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<cite>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/cite)
|
|
/// [`<cite>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/cite)
|
|
/// element.
|
|
/// element.
|
|
- cite;
|
|
|
|
|
|
+ cite {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<code>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code)
|
|
/// [`<code>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code)
|
|
/// element.
|
|
/// element.
|
|
- code;
|
|
|
|
|
|
+ code {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<data>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/data)
|
|
/// [`<data>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/data)
|
|
/// element.
|
|
/// element.
|
|
- data;
|
|
|
|
|
|
+ data {
|
|
|
|
+ value: String,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<dfn>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dfn)
|
|
/// [`<dfn>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dfn)
|
|
/// element.
|
|
/// element.
|
|
- dfn;
|
|
|
|
|
|
+ dfn {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<em>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em)
|
|
/// [`<em>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em)
|
|
/// element.
|
|
/// element.
|
|
- em;
|
|
|
|
|
|
+ em {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<i>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i)
|
|
/// [`<i>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i)
|
|
/// element.
|
|
/// element.
|
|
- i;
|
|
|
|
|
|
+ i {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<kbd>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd)
|
|
/// [`<kbd>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd)
|
|
/// element.
|
|
/// element.
|
|
- kbd;
|
|
|
|
|
|
+ kbd {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<mark>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark)
|
|
/// [`<mark>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark)
|
|
/// element.
|
|
/// element.
|
|
- mark;
|
|
|
|
|
|
+ mark {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<q>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q)
|
|
/// [`<q>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q)
|
|
/// element.
|
|
/// element.
|
|
- q;
|
|
|
|
|
|
+ q {
|
|
|
|
+ cite: Uri,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<rp>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rp)
|
|
/// [`<rp>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rp)
|
|
/// element.
|
|
/// element.
|
|
- rp;
|
|
|
|
|
|
+ rp {};
|
|
|
|
+
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<rt>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rt)
|
|
/// [`<rt>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rt)
|
|
/// element.
|
|
/// element.
|
|
- rt;
|
|
|
|
|
|
+ rt {};
|
|
|
|
+
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<ruby>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby)
|
|
/// [`<ruby>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby)
|
|
/// element.
|
|
/// element.
|
|
- ruby;
|
|
|
|
|
|
+ ruby {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<s>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/s)
|
|
/// [`<s>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/s)
|
|
/// element.
|
|
/// element.
|
|
- s;
|
|
|
|
|
|
+ s {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<samp>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/samp)
|
|
/// [`<samp>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/samp)
|
|
/// element.
|
|
/// element.
|
|
- samp;
|
|
|
|
|
|
+ samp {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<small>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/small)
|
|
/// [`<small>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/small)
|
|
/// element.
|
|
/// element.
|
|
- small;
|
|
|
|
|
|
+ small {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<span>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span)
|
|
/// [`<span>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span)
|
|
/// element.
|
|
/// element.
|
|
- span;
|
|
|
|
|
|
+ span {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<strong>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong)
|
|
/// [`<strong>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong)
|
|
/// element.
|
|
/// element.
|
|
- strong;
|
|
|
|
|
|
+ strong {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<sub>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sub)
|
|
/// [`<sub>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sub)
|
|
/// element.
|
|
/// element.
|
|
- sub;
|
|
|
|
|
|
+ sub {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<sup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sup)
|
|
/// [`<sup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sup)
|
|
/// element.
|
|
/// element.
|
|
- sup;
|
|
|
|
|
|
+ sup {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<time>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/time)
|
|
/// [`<time>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/time)
|
|
/// element.
|
|
/// element.
|
|
- time;
|
|
|
|
|
|
+ time {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<u>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/u)
|
|
/// [`<u>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/u)
|
|
/// element.
|
|
/// element.
|
|
- u;
|
|
|
|
|
|
+ u {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<var>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/var)
|
|
/// [`<var>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/var)
|
|
/// element.
|
|
/// element.
|
|
- var;
|
|
|
|
|
|
+ var {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<wbr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr)
|
|
/// [`<wbr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr)
|
|
/// element.
|
|
/// element.
|
|
- wbr;
|
|
|
|
|
|
+ wbr {};
|
|
|
|
+
|
|
|
|
|
|
// Image and multimedia
|
|
// Image and multimedia
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<area>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/area)
|
|
/// [`<area>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/area)
|
|
/// element.
|
|
/// element.
|
|
- area;
|
|
|
|
|
|
+ area {
|
|
|
|
+ alt: String,
|
|
|
|
+ coords: String, // TODO could perhaps be validated
|
|
|
|
+ download: Bool,
|
|
|
|
+ href: Uri,
|
|
|
|
+ hreflang: LanguageTag,
|
|
|
|
+ shape: AreaShape,
|
|
|
|
+ target: Target,
|
|
|
|
+ // ping: SpacedList<Uri>,
|
|
|
|
+ // rel: SpacedSet<LinkType>,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio)
|
|
/// [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio)
|
|
/// element.
|
|
/// element.
|
|
- audio;
|
|
|
|
|
|
+ audio {
|
|
|
|
+ autoplay: Bool,
|
|
|
|
+ controls: Bool,
|
|
|
|
+ crossorigin: CrossOrigin,
|
|
|
|
+ // loop: Bool,
|
|
|
|
+ muted: Bool,
|
|
|
|
+ preload: Preload,
|
|
|
|
+ src: Uri,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<img>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img)
|
|
/// [`<img>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img)
|
|
/// element.
|
|
/// element.
|
|
- img;
|
|
|
|
|
|
+ img {
|
|
|
|
+ alt: String,
|
|
|
|
+ crossorigin: CrossOrigin,
|
|
|
|
+ decoding: ImageDecoding,
|
|
|
|
+ height: usize,
|
|
|
|
+ ismap: Bool,
|
|
|
|
+ src: Uri,
|
|
|
|
+ srcset: String, // FIXME this is much more complicated
|
|
|
|
+ usemap: String, // FIXME should be a fragment starting with '#'
|
|
|
|
+ width: usize,
|
|
|
|
+ // sizes: SpacedList<String>, // FIXME it's not really just a string
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map)
|
|
/// [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map)
|
|
/// element.
|
|
/// element.
|
|
- map;
|
|
|
|
|
|
+ map {
|
|
|
|
+ name: Id,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<track>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track)
|
|
/// [`<track>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track)
|
|
/// element.
|
|
/// element.
|
|
- track;
|
|
|
|
|
|
+ track {
|
|
|
|
+ default: Bool,
|
|
|
|
+ kind: VideoKind,
|
|
|
|
+ label: String,
|
|
|
|
+ src: Uri,
|
|
|
|
+ srclang: LanguageTag,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video)
|
|
/// [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video)
|
|
/// element.
|
|
/// element.
|
|
- video;
|
|
|
|
|
|
+ video {
|
|
|
|
+ autoplay: Bool,
|
|
|
|
+ controls: Bool,
|
|
|
|
+ crossorigin: CrossOrigin,
|
|
|
|
+ height: usize,
|
|
|
|
+ // loop: Bool,
|
|
|
|
+ muted: Bool,
|
|
|
|
+ preload: Preload,
|
|
|
|
+ playsinline: Bool,
|
|
|
|
+ poster: Uri,
|
|
|
|
+ src: Uri,
|
|
|
|
+ width: usize,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
|
|
// Embedded content
|
|
// Embedded content
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<embed>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/embed)
|
|
/// [`<embed>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/embed)
|
|
/// element.
|
|
/// element.
|
|
- embed;
|
|
|
|
|
|
+ embed {
|
|
|
|
+ height: usize,
|
|
|
|
+ src: Uri,
|
|
|
|
+ // type: Mime,
|
|
|
|
+ width: usize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)
|
|
/// [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)
|
|
/// element.
|
|
/// element.
|
|
- iframe;
|
|
|
|
|
|
+ iframe {
|
|
|
|
+ allow: FeaturePolicy,
|
|
|
|
+ allowfullscreen: Bool,
|
|
|
|
+ allowpaymentrequest: Bool,
|
|
|
|
+ height: usize,
|
|
|
|
+ name: Id,
|
|
|
|
+ referrerpolicy: ReferrerPolicy,
|
|
|
|
+ src: Uri,
|
|
|
|
+ srcdoc: Uri,
|
|
|
|
+ width: usize,
|
|
|
|
+ // sandbox: SpacedSet<Sandbox>,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object)
|
|
/// [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object)
|
|
/// element.
|
|
/// element.
|
|
- object;
|
|
|
|
|
|
+ object {
|
|
|
|
+ data: Uri,
|
|
|
|
+ form: Id,
|
|
|
|
+ height: usize,
|
|
|
|
+ name: Id,
|
|
|
|
+ // type: Mime,
|
|
|
|
+ typemustmatch: Bool,
|
|
|
|
+ usemap: String, // TODO should be a fragment starting with '#'
|
|
|
|
+ width: usize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<param>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/param)
|
|
/// [`<param>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/param)
|
|
/// element.
|
|
/// element.
|
|
- param;
|
|
|
|
|
|
+ param {
|
|
|
|
+ name: String,
|
|
|
|
+ value: String,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture)
|
|
/// [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture)
|
|
/// element.
|
|
/// element.
|
|
- picture;
|
|
|
|
|
|
+ picture {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source)
|
|
/// [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source)
|
|
/// element.
|
|
/// element.
|
|
- source;
|
|
|
|
|
|
+ source {
|
|
|
|
+ src: Uri,
|
|
|
|
+ // type: Mime,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
|
|
// Scripting
|
|
// Scripting
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas)
|
|
/// [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas)
|
|
/// element.
|
|
/// element.
|
|
- canvas;
|
|
|
|
|
|
+ canvas {
|
|
|
|
+ height: usize,
|
|
|
|
+ width: usize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<noscript>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript)
|
|
/// [`<noscript>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript)
|
|
/// element.
|
|
/// element.
|
|
- noscript;
|
|
|
|
|
|
+ noscript {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<script>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script)
|
|
/// [`<script>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script)
|
|
/// element.
|
|
/// element.
|
|
- script;
|
|
|
|
|
|
+ script {
|
|
|
|
+ crossorigin: CrossOrigin,
|
|
|
|
+ defer: Bool,
|
|
|
|
+ integrity: Integrity,
|
|
|
|
+ nomodule: Bool,
|
|
|
|
+ nonce: Nonce,
|
|
|
|
+ src: Uri,
|
|
|
|
+ text: String,
|
|
|
|
+ // async: Bool,
|
|
|
|
+ // type: String, // TODO could be an enum
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
|
|
// Demarcating edits
|
|
// Demarcating edits
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<del>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del)
|
|
/// [`<del>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del)
|
|
/// element.
|
|
/// element.
|
|
- del;
|
|
|
|
|
|
+ del {
|
|
|
|
+ cite: Uri,
|
|
|
|
+ datetime: Datetime,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<ins>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins)
|
|
/// [`<ins>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins)
|
|
/// element.
|
|
/// element.
|
|
- ins;
|
|
|
|
|
|
+ ins {
|
|
|
|
+ cite: Uri,
|
|
|
|
+ datetime: Datetime,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
|
|
// Table content
|
|
// Table content
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption)
|
|
/// [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption)
|
|
/// element.
|
|
/// element.
|
|
- caption;
|
|
|
|
|
|
+ caption {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col)
|
|
/// [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col)
|
|
/// element.
|
|
/// element.
|
|
- col;
|
|
|
|
|
|
+ col {
|
|
|
|
+ span: usize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup)
|
|
/// [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup)
|
|
/// element.
|
|
/// element.
|
|
- colgroup;
|
|
|
|
|
|
+ colgroup {
|
|
|
|
+ span: usize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table)
|
|
/// [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table)
|
|
/// element.
|
|
/// element.
|
|
- table;
|
|
|
|
|
|
+ table {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<tbody>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody)
|
|
/// [`<tbody>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody)
|
|
/// element.
|
|
/// element.
|
|
- tbody;
|
|
|
|
|
|
+ tbody {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td)
|
|
/// [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td)
|
|
/// element.
|
|
/// element.
|
|
- td;
|
|
|
|
|
|
+ td {
|
|
|
|
+ colspan: usize,
|
|
|
|
+ rowspan: usize,
|
|
|
|
+ // headers: SpacedSet<Id>,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<tfoot>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot)
|
|
/// [`<tfoot>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot)
|
|
/// element.
|
|
/// element.
|
|
- tfoot;
|
|
|
|
|
|
+ tfoot {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th)
|
|
/// [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th)
|
|
/// element.
|
|
/// element.
|
|
- th;
|
|
|
|
|
|
+ th {
|
|
|
|
+ abbr: String,
|
|
|
|
+ colspan: usize,
|
|
|
|
+ rowspan: usize,
|
|
|
|
+ scope: TableHeaderScope,
|
|
|
|
+ // headers: SpacedSet<Id>,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<thead>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead)
|
|
/// [`<thead>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead)
|
|
/// element.
|
|
/// element.
|
|
- thead;
|
|
|
|
|
|
+ thead {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<tr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr)
|
|
/// [`<tr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr)
|
|
/// element.
|
|
/// element.
|
|
- tr;
|
|
|
|
|
|
+ tr {};
|
|
|
|
+
|
|
|
|
|
|
// Forms
|
|
// Forms
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button)
|
|
/// [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button)
|
|
/// element.
|
|
/// element.
|
|
- button;
|
|
|
|
|
|
+ button {
|
|
|
|
+ autofocus: Bool,
|
|
|
|
+ disabled: Bool,
|
|
|
|
+ form: Id,
|
|
|
|
+ formaction: Uri,
|
|
|
|
+ formenctype: FormEncodingType,
|
|
|
|
+ formmethod: FormMethod,
|
|
|
|
+ formnovalidate: Bool,
|
|
|
|
+ formtarget: Target,
|
|
|
|
+ name: Id,
|
|
|
|
+ // type: ButtonType,
|
|
|
|
+ value: String,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<datalist>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist)
|
|
/// [`<datalist>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist)
|
|
/// element.
|
|
/// element.
|
|
- datalist;
|
|
|
|
|
|
+ datalist {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset)
|
|
/// [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset)
|
|
/// element.
|
|
/// element.
|
|
- fieldset;
|
|
|
|
|
|
+ fieldset {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form)
|
|
/// [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form)
|
|
/// element.
|
|
/// element.
|
|
- form;
|
|
|
|
|
|
+ form {
|
|
|
|
+ // accept-charset: SpacedList<CharacterEncoding>,
|
|
|
|
+ action: Uri,
|
|
|
|
+ autocomplete: OnOff,
|
|
|
|
+ enctype: FormEncodingType,
|
|
|
|
+ method: FormMethod,
|
|
|
|
+ name: Id,
|
|
|
|
+ novalidate: Bool,
|
|
|
|
+ target: Target,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)
|
|
/// [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)
|
|
/// element.
|
|
/// element.
|
|
- input;
|
|
|
|
|
|
+ input {
|
|
|
|
+ accept: String,
|
|
|
|
+ alt: String,
|
|
|
|
+ autocomplete: String,
|
|
|
|
+ autofocus: Bool,
|
|
|
|
+ capture: String,
|
|
|
|
+ checked: Bool,
|
|
|
|
+ disabled: Bool,
|
|
|
|
+ form: Id,
|
|
|
|
+ formaction: Uri,
|
|
|
|
+ formenctype: FormEncodingType,
|
|
|
|
+ formmethod: FormDialogMethod,
|
|
|
|
+ formnovalidate: Bool,
|
|
|
|
+ formtarget: Target,
|
|
|
|
+ height: isize,
|
|
|
|
+ list: Id,
|
|
|
|
+ max: String,
|
|
|
|
+ maxlength: usize,
|
|
|
|
+ min: String,
|
|
|
|
+ minlength: usize,
|
|
|
|
+ multiple: Bool,
|
|
|
|
+ name: Id,
|
|
|
|
+ pattern: String,
|
|
|
|
+ placeholder: String,
|
|
|
|
+ readonly: Bool,
|
|
|
|
+ required: Bool,
|
|
|
|
+ size: usize,
|
|
|
|
+ spellcheck: Bool,
|
|
|
|
+ src: Uri,
|
|
|
|
+ step: String,
|
|
|
|
+ tabindex: usize,
|
|
|
|
+ // type: InputType,
|
|
|
|
+ value: String,
|
|
|
|
+ width: isize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label)
|
|
/// [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label)
|
|
/// element.
|
|
/// element.
|
|
- label;
|
|
|
|
|
|
+ label {
|
|
|
|
+ // for: Id,
|
|
|
|
+ form: Id,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend)
|
|
/// [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend)
|
|
/// element.
|
|
/// element.
|
|
- legend;
|
|
|
|
|
|
+ legend {};
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<meter>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meter)
|
|
/// [`<meter>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meter)
|
|
/// element.
|
|
/// element.
|
|
- meter;
|
|
|
|
|
|
+ meter {
|
|
|
|
+ value: isize,
|
|
|
|
+ min: isize,
|
|
|
|
+ max: isize,
|
|
|
|
+ low: isize,
|
|
|
|
+ high: isize,
|
|
|
|
+ optimum: isize,
|
|
|
|
+ form: Id,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup)
|
|
/// [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup)
|
|
/// element.
|
|
/// element.
|
|
- optgroup;
|
|
|
|
|
|
+ optgroup {
|
|
|
|
+ disabled: Bool,
|
|
|
|
+ label: String,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<option>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option)
|
|
/// [`<option>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option)
|
|
/// element.
|
|
/// element.
|
|
- option;
|
|
|
|
|
|
+ option {
|
|
|
|
+ disabled: Bool,
|
|
|
|
+ label: String,
|
|
|
|
+ selected: Bool,
|
|
|
|
+ value: String,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<output>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output)
|
|
/// [`<output>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output)
|
|
/// element.
|
|
/// element.
|
|
- output;
|
|
|
|
|
|
+ output {
|
|
|
|
+ form: Id,
|
|
|
|
+ name: Id,
|
|
|
|
+ // for: SpacedSet<Id>,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<progress>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress)
|
|
/// [`<progress>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress)
|
|
/// element.
|
|
/// element.
|
|
- progress;
|
|
|
|
|
|
+ progress {
|
|
|
|
+ max: f64,
|
|
|
|
+ value: f64,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select)
|
|
/// [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select)
|
|
/// element.
|
|
/// element.
|
|
- select;
|
|
|
|
|
|
+ select {
|
|
|
|
+ autocomplete: String,
|
|
|
|
+ autofocus: Bool,
|
|
|
|
+ disabled: Bool,
|
|
|
|
+ form: Id,
|
|
|
|
+ multiple: Bool,
|
|
|
|
+ name: Id,
|
|
|
|
+ required: Bool,
|
|
|
|
+ size: usize,
|
|
|
|
+ };
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<textarea>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea)
|
|
/// [`<textarea>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea)
|
|
/// element.
|
|
/// element.
|
|
- textarea;
|
|
|
|
|
|
+ textarea {
|
|
|
|
+ autocomplete: OnOff,
|
|
|
|
+ autofocus: Bool,
|
|
|
|
+ cols: usize,
|
|
|
|
+ disabled: Bool,
|
|
|
|
+ form: Id,
|
|
|
|
+ maxlength: usize,
|
|
|
|
+ minlength: usize,
|
|
|
|
+ name: Id,
|
|
|
|
+ placeholder: String,
|
|
|
|
+ readonly: Bool,
|
|
|
|
+ required: Bool,
|
|
|
|
+ rows: usize,
|
|
|
|
+ spellcheck: BoolOrDefault,
|
|
|
|
+ wrap: Wrap,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
|
|
// Interactive elements
|
|
// Interactive elements
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<details>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details)
|
|
/// [`<details>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details)
|
|
/// element.
|
|
/// element.
|
|
- details;
|
|
|
|
|
|
+ details {
|
|
|
|
+ open: Bool,
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<summary>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary)
|
|
/// [`<summary>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary)
|
|
/// element.
|
|
/// element.
|
|
- summary;
|
|
|
|
|
|
+ summary {};
|
|
|
|
|
|
// Web components
|
|
// Web components
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<slot>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot)
|
|
/// [`<slot>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot)
|
|
/// element.
|
|
/// element.
|
|
- slot;
|
|
|
|
|
|
+ slot {};
|
|
|
|
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<template>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template)
|
|
/// [`<template>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template)
|
|
/// element.
|
|
/// element.
|
|
- template;
|
|
|
|
|
|
+ template {};
|
|
}
|
|
}
|
|
|
|
|
|
builder_constructors! {
|
|
builder_constructors! {
|
|
@@ -583,36 +1005,210 @@ builder_constructors! {
|
|
/// [`<svg>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg)
|
|
/// [`<svg>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg)
|
|
/// element.
|
|
/// element.
|
|
svg <> "http://www.w3.org/2000/svg" ;
|
|
svg <> "http://www.w3.org/2000/svg" ;
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<path>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path)
|
|
/// [`<path>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path)
|
|
/// element.
|
|
/// element.
|
|
path <> "http://www.w3.org/2000/svg";
|
|
path <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<circle>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle)
|
|
/// [`<circle>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle)
|
|
/// element.
|
|
/// element.
|
|
circle <> "http://www.w3.org/2000/svg";
|
|
circle <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<ellipse>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse)
|
|
/// [`<ellipse>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse)
|
|
/// element.
|
|
/// element.
|
|
ellipse <> "http://www.w3.org/2000/svg";
|
|
ellipse <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<line>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/line)
|
|
/// [`<line>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/line)
|
|
/// element.
|
|
/// element.
|
|
line <> "http://www.w3.org/2000/svg";
|
|
line <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<polygon>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon)
|
|
/// [`<polygon>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon)
|
|
/// element.
|
|
/// element.
|
|
polygon <> "http://www.w3.org/2000/svg";
|
|
polygon <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<polyline>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline)
|
|
/// [`<polyline>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline)
|
|
/// element.
|
|
/// element.
|
|
polyline <> "http://www.w3.org/2000/svg";
|
|
polyline <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<rect>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect)
|
|
/// [`<rect>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect)
|
|
/// element.
|
|
/// element.
|
|
rect <> "http://www.w3.org/2000/svg";
|
|
rect <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
/// Build a
|
|
/// Build a
|
|
/// [`<image>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image)
|
|
/// [`<image>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image)
|
|
/// element.
|
|
/// element.
|
|
image <> "http://www.w3.org/2000/svg";
|
|
image <> "http://www.w3.org/2000/svg";
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+Ideal format:
|
|
|
|
+ /// Build a
|
|
|
|
+ /// [`<h1>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h1)
|
|
|
|
+ /// element.
|
|
|
|
+ ///
|
|
|
|
+ /// # About
|
|
|
|
+ /// - The HTML `<h1>` element is found within the `<body>` tag.
|
|
|
|
+ /// - Headings can range from `<h1>` to `<h6>`.
|
|
|
|
+ /// - The most important heading is `<h1>` and the least important heading is `<h6>`.
|
|
|
|
+ /// - The `<h1>` heading is the first heading in the document.
|
|
|
|
+ /// - The `<h1>` heading is usually a large bolded font.
|
|
|
|
+ ///
|
|
|
|
+ /// # Usage
|
|
|
|
+ ///
|
|
|
|
+ /// ```
|
|
|
|
+ /// html!(<h1> A header element </h1>)
|
|
|
|
+ /// rsx!(h1 { "A header element" })
|
|
|
|
+ /// LazyNodes::new(|f| f.el(h1).children([f.text("A header element")]).finish())
|
|
|
|
+ /// ```
|
|
|
|
+
|
|
|
|
+Full List:
|
|
|
|
+---------
|
|
|
|
+base
|
|
|
|
+head
|
|
|
|
+link
|
|
|
|
+meta
|
|
|
|
+style
|
|
|
|
+title
|
|
|
|
+body
|
|
|
|
+address
|
|
|
|
+article
|
|
|
|
+aside
|
|
|
|
+footer
|
|
|
|
+header
|
|
|
|
+h1
|
|
|
|
+h1
|
|
|
|
+h2
|
|
|
|
+h2
|
|
|
|
+h3
|
|
|
|
+h4
|
|
|
|
+h5
|
|
|
|
+h6
|
|
|
|
+main
|
|
|
|
+nav
|
|
|
|
+section
|
|
|
|
+blockquote
|
|
|
|
+dd
|
|
|
|
+div
|
|
|
|
+dl
|
|
|
|
+dt
|
|
|
|
+figcaption
|
|
|
|
+figure
|
|
|
|
+hr
|
|
|
|
+li
|
|
|
|
+ol
|
|
|
|
+p
|
|
|
|
+pre
|
|
|
|
+ul
|
|
|
|
+a
|
|
|
|
+abbr
|
|
|
|
+b
|
|
|
|
+bdi
|
|
|
|
+bdo
|
|
|
|
+br
|
|
|
|
+cite
|
|
|
|
+code
|
|
|
|
+data
|
|
|
|
+dfn
|
|
|
|
+em
|
|
|
|
+i
|
|
|
|
+kbd
|
|
|
|
+mark
|
|
|
|
+q
|
|
|
|
+rp
|
|
|
|
+rt
|
|
|
|
+ruby
|
|
|
|
+s
|
|
|
|
+samp
|
|
|
|
+small
|
|
|
|
+span
|
|
|
|
+strong
|
|
|
|
+sub
|
|
|
|
+sup
|
|
|
|
+time
|
|
|
|
+u
|
|
|
|
+var
|
|
|
|
+wbr
|
|
|
|
+area
|
|
|
|
+audio
|
|
|
|
+img
|
|
|
|
+map
|
|
|
|
+track
|
|
|
|
+video
|
|
|
|
+embed
|
|
|
|
+iframe
|
|
|
|
+object
|
|
|
|
+param
|
|
|
|
+picture
|
|
|
|
+source
|
|
|
|
+canvas
|
|
|
|
+noscript
|
|
|
|
+script
|
|
|
|
+del
|
|
|
|
+ins
|
|
|
|
+caption
|
|
|
|
+col
|
|
|
|
+colgroup
|
|
|
|
+table
|
|
|
|
+tbody
|
|
|
|
+td
|
|
|
|
+tfoot
|
|
|
|
+th
|
|
|
|
+thead
|
|
|
|
+tr
|
|
|
|
+button
|
|
|
|
+datalist
|
|
|
|
+fieldset
|
|
|
|
+form
|
|
|
|
+input
|
|
|
|
+label
|
|
|
|
+legend
|
|
|
|
+meter
|
|
|
|
+optgroup
|
|
|
|
+option
|
|
|
|
+output
|
|
|
|
+progress
|
|
|
|
+select
|
|
|
|
+textarea
|
|
|
|
+details
|
|
|
|
+summary
|
|
|
|
+slot
|
|
|
|
+template
|
|
|
|
+*/
|
|
|
|
+
|
|
|
|
+trait AsAttributeValue: Sized {
|
|
|
|
+ fn into_attribute_value<'a>(self, cx: NodeFactory<'a>) -> AttributeValue<'a>;
|
|
|
|
+}
|
|
|
|
+enum AttributeValue<'a> {
|
|
|
|
+ Int(i32),
|
|
|
|
+ Float(f32),
|
|
|
|
+ Str(&'a str),
|
|
|
|
+ Bool(bool),
|
|
|
|
+}
|
|
|
|
+impl<'b> AsAttributeValue for Arguments<'b> {
|
|
|
|
+ fn into_attribute_value<'a>(self, cx: NodeFactory<'a>) -> AttributeValue<'a> {
|
|
|
|
+ todo!()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+impl AsAttributeValue for &'static str {
|
|
|
|
+ fn into_attribute_value<'a>(self, cx: NodeFactory<'a>) -> AttributeValue<'a> {
|
|
|
|
+ todo!()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+impl AsAttributeValue for f32 {
|
|
|
|
+ fn into_attribute_value<'a>(self, cx: NodeFactory<'a>) -> AttributeValue<'a> {
|
|
|
|
+ todo!()
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+impl AsAttributeValue for i32 {
|
|
|
|
+ fn into_attribute_value<'a>(self, cx: NodeFactory<'a>) -> AttributeValue<'a> {
|
|
|
|
+ todo!()
|
|
|
|
+ }
|
|
}
|
|
}
|