pub mod element {
#[doc(alias = "menu")]
#[non_exhaustive]
#[derive(Debug, PartialEq, PartialOrd, Clone, Default)]
pub struct Menu {
sys: html_sys::text::Menu,
children: Vec<super::child::MenuChild>,
}
impl Menu {
pub fn builder() -> super::builder::MenuBuilder {
super::builder::MenuBuilder::new(Default::default())
}
}
impl Menu {
pub fn access_key(&self) -> std::option::Option<&str> {
self.sys.access_key.as_deref()
}
pub fn set_access_key(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.access_key = value.map(|v| v.into());
}
pub fn auto_capitalize(&self) -> std::option::Option<&str> {
self.sys.auto_capitalize.as_deref()
}
pub fn set_auto_capitalize(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.auto_capitalize = value.map(|v| v.into());
}
pub fn autofocus(&self) -> bool {
self.sys.autofocus
}
pub fn set_autofocus(&mut self, value: bool) {
self.sys.autofocus = value;
}
pub fn class(&self) -> std::option::Option<&str> {
self.sys.class.as_deref()
}
pub fn set_class(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.class = value.map(|v| v.into());
}
pub fn content_editable(&self) -> std::option::Option<&str> {
self.sys.content_editable.as_deref()
}
pub fn set_content_editable(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.content_editable = value.map(|v| v.into());
}
pub fn direction(&self) -> std::option::Option<&str> {
self.sys.direction.as_deref()
}
pub fn set_direction(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.direction = value.map(|v| v.into());
}
pub fn draggable(&self) -> bool {
self.sys.draggable
}
pub fn set_draggable(&mut self, value: bool) {
self.sys.draggable = value;
}
pub fn enter_key_hint(&self) -> std::option::Option<&str> {
self.sys.enter_key_hint.as_deref()
}
pub fn set_enter_key_hint(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.enter_key_hint = value.map(|v| v.into());
}
pub fn export_parts(&self) -> std::option::Option<&str> {
self.sys.export_parts.as_deref()
}
pub fn set_export_parts(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.export_parts = value.map(|v| v.into());
}
pub fn hidden(&self) -> std::option::Option<&str> {
self.sys.hidden.as_deref()
}
pub fn set_hidden(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.hidden = value.map(|v| v.into());
}
pub fn id(&self) -> std::option::Option<&str> {
self.sys.id.as_deref()
}
pub fn set_id(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.id = value.map(|v| v.into());
}
pub fn inert(&self) -> bool {
self.sys.inert
}
pub fn set_inert(&mut self, value: bool) {
self.sys.inert = value;
}
pub fn input_mode(&self) -> std::option::Option<&str> {
self.sys.input_mode.as_deref()
}
pub fn set_input_mode(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.input_mode = value.map(|v| v.into());
}
pub fn is_(&self) -> std::option::Option<&str> {
self.sys.is_.as_deref()
}
pub fn set_is_(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.is_ = value.map(|v| v.into());
}
pub fn item_id(&self) -> std::option::Option<&str> {
self.sys.item_id.as_deref()
}
pub fn set_item_id(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.item_id = value.map(|v| v.into());
}
pub fn item_prop(&self) -> std::option::Option<&str> {
self.sys.item_prop.as_deref()
}
pub fn set_item_prop(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.item_prop = value.map(|v| v.into());
}
pub fn item_ref(&self) -> std::option::Option<&str> {
self.sys.item_ref.as_deref()
}
pub fn set_item_ref(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.item_ref = value.map(|v| v.into());
}
pub fn item_scope(&self) -> std::option::Option<&str> {
self.sys.item_scope.as_deref()
}
pub fn set_item_scope(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.item_scope = value.map(|v| v.into());
}
pub fn item_type(&self) -> std::option::Option<&str> {
self.sys.item_type.as_deref()
}
pub fn set_item_type(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.item_type = value.map(|v| v.into());
}
pub fn lang(&self) -> std::option::Option<&str> {
self.sys.lang.as_deref()
}
pub fn set_lang(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.lang = value.map(|v| v.into());
}
pub fn nonce(&self) -> std::option::Option<&str> {
self.sys.nonce.as_deref()
}
pub fn set_nonce(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.nonce = value.map(|v| v.into());
}
pub fn part(&self) -> std::option::Option<&str> {
self.sys.part.as_deref()
}
pub fn set_part(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.part = value.map(|v| v.into());
}
pub fn slot(&self) -> std::option::Option<&str> {
self.sys.slot.as_deref()
}
pub fn set_slot(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.slot = value.map(|v| v.into());
}
pub fn spellcheck(&self) -> std::option::Option<&str> {
self.sys.spellcheck.as_deref()
}
pub fn set_spellcheck(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.spellcheck = value.map(|v| v.into());
}
pub fn style(&self) -> std::option::Option<&str> {
self.sys.style.as_deref()
}
pub fn set_style(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.style = value.map(|v| v.into());
}
pub fn tab_index(&self) -> std::option::Option<i64> {
self.sys.tab_index
}
pub fn set_tab_index(&mut self, value: std::option::Option<i64>) {
self.sys.tab_index = value;
}
pub fn title(&self) -> std::option::Option<&str> {
self.sys.title.as_deref()
}
pub fn set_title(
&mut self,
value: std::option::Option<impl Into<std::borrow::Cow<'static, str>>>,
) {
self.sys.title = value.map(|v| v.into());
}
pub fn translate(&self) -> bool {
self.sys.translate
}
pub fn set_translate(&mut self, value: bool) {
self.sys.translate = value;
}
}
impl Menu {
pub fn children(&self) -> &[super::child::MenuChild] {
self.children.as_ref()
}
pub fn children_mut(&mut self) -> &mut Vec<super::child::MenuChild> {
&mut self.children
}
}
impl std::fmt::Display for Menu {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
html_sys::RenderElement::write_opening_tag(&self.sys, f)?;
for el in &self.children {
std::fmt::Display::fmt(&el, f)?;
}
html_sys::RenderElement::write_closing_tag(&self.sys, f)?;
Ok(())
}
}
impl crate::HtmlElement for Menu {}
impl crate::FlowContent for Menu {}
impl crate::PalpableContent for Menu {}
impl std::convert::Into<html_sys::text::Menu> for Menu {
fn into(self) -> html_sys::text::Menu {
self.sys
}
}
impl From<html_sys::text::Menu> for Menu {
fn from(sys: html_sys::text::Menu) -> Self {
Self { sys, children: vec![] }
}
}
}
pub mod child {
#[derive(Debug, PartialEq, PartialOrd, Clone)]
pub enum MenuChild {
ListItem(crate::generated::all::ListItem),
}
impl std::convert::From<crate::generated::all::ListItem> for MenuChild {
fn from(value: crate::generated::all::ListItem) -> Self {
Self::ListItem(value)
}
}
impl std::fmt::Display for MenuChild {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::ListItem(el) => write!(f, "{el}"),
}
}
}
}
pub mod builder {
pub struct MenuBuilder {
element: super::element::Menu,
}
impl MenuBuilder {
pub(crate) fn new(element: super::element::Menu) -> Self {
Self { element }
}
pub fn build(&mut self) -> super::element::Menu {
self.element.clone()
}
pub fn list_item<F>(&mut self, f: F) -> &mut Self
where
F: for<'a> FnOnce(
&'a mut crate::generated::all::builders::ListItemBuilder,
) -> &'a mut crate::generated::all::builders::ListItemBuilder,
{
let ty: crate::generated::all::ListItem = Default::default();
let mut ty_builder = crate::generated::all::builders::ListItemBuilder::new(
ty,
);
(f)(&mut ty_builder);
let ty = ty_builder.build();
self.element.children_mut().push(ty.into());
self
}
pub fn access_key(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_access_key(Some(value.into()));
self
}
pub fn auto_capitalize(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_auto_capitalize(Some(value.into()));
self
}
pub fn autofocus(&mut self, value: bool) -> &mut Self {
self.element.set_autofocus(value);
self
}
pub fn class(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_class(Some(value.into()));
self
}
pub fn content_editable(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_content_editable(Some(value.into()));
self
}
pub fn direction(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_direction(Some(value.into()));
self
}
pub fn draggable(&mut self, value: bool) -> &mut Self {
self.element.set_draggable(value);
self
}
pub fn enter_key_hint(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_enter_key_hint(Some(value.into()));
self
}
pub fn export_parts(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_export_parts(Some(value.into()));
self
}
pub fn hidden(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_hidden(Some(value.into()));
self
}
pub fn id(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_id(Some(value.into()));
self
}
pub fn inert(&mut self, value: bool) -> &mut Self {
self.element.set_inert(value);
self
}
pub fn input_mode(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_input_mode(Some(value.into()));
self
}
pub fn is_(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_is_(Some(value.into()));
self
}
pub fn item_id(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_item_id(Some(value.into()));
self
}
pub fn item_prop(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_item_prop(Some(value.into()));
self
}
pub fn item_ref(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_item_ref(Some(value.into()));
self
}
pub fn item_scope(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_item_scope(Some(value.into()));
self
}
pub fn item_type(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_item_type(Some(value.into()));
self
}
pub fn lang(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_lang(Some(value.into()));
self
}
pub fn nonce(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_nonce(Some(value.into()));
self
}
pub fn part(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_part(Some(value.into()));
self
}
pub fn slot(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_slot(Some(value.into()));
self
}
pub fn spellcheck(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_spellcheck(Some(value.into()));
self
}
pub fn style(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_style(Some(value.into()));
self
}
pub fn tab_index(&mut self, value: i64) -> &mut Self {
self.element.set_tab_index(Some(value));
self
}
pub fn title(
&mut self,
value: impl Into<std::borrow::Cow<'static, str>>,
) -> &mut Self {
self.element.set_title(Some(value.into()));
self
}
pub fn translate(&mut self, value: bool) -> &mut Self {
self.element.set_translate(value);
self
}
}
}