1#[doc(alias = "legend")]
5#[non_exhaustive]
6#[derive(Debug, Clone, PartialEq, Default)]
7pub struct Legend {
8 pub data_map: crate::DataMap,
9 global_attrs: crate::GlobalAttributes,
10 pub aria_atomic: bool,
12 pub aria_braille_role_description: std::option::Option<
14 std::borrow::Cow<'static, str>,
15 >,
16 pub aria_busy: bool,
18 pub aria_controls_elements: std::option::Option<std::borrow::Cow<'static, str>>,
20 pub aria_current: std::option::Option<std::borrow::Cow<'static, str>>,
22 pub aria_described_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
24 pub aria_description: std::option::Option<std::borrow::Cow<'static, str>>,
26 pub aria_details_elements: std::option::Option<std::borrow::Cow<'static, str>>,
28 pub aria_disabled: bool,
30 pub aria_drop_effect: std::option::Option<std::borrow::Cow<'static, str>>,
32 pub aria_error_message_elements: std::option::Option<std::borrow::Cow<'static, str>>,
34 pub aria_flow_to_elements: std::option::Option<std::borrow::Cow<'static, str>>,
36 pub aria_grabbed: bool,
38 pub aria_has_popup: std::option::Option<std::borrow::Cow<'static, str>>,
40 pub aria_hidden: bool,
42 pub aria_invalid: std::option::Option<std::borrow::Cow<'static, str>>,
44 pub aria_key_shortcuts: std::option::Option<std::borrow::Cow<'static, str>>,
46 pub aria_live: std::option::Option<std::borrow::Cow<'static, str>>,
48 pub aria_owns_elements: std::option::Option<std::borrow::Cow<'static, str>>,
50 pub aria_relevant: std::option::Option<std::borrow::Cow<'static, str>>,
52 pub aria_role_description: std::option::Option<std::borrow::Cow<'static, str>>,
54}
55impl crate::RenderElement for Legend {
56 fn write_opening_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
57 write!(writer, "<legend")?;
58 if self.aria_atomic {
59 write!(writer, r#" aria-atomic"#)?;
60 }
61 if let Some(field) = self.aria_braille_role_description.as_ref() {
62 write!(writer, r#" aria-brailleroledescription="{field}""#)?;
63 }
64 if self.aria_busy {
65 write!(writer, r#" aria-busy"#)?;
66 }
67 if let Some(field) = self.aria_controls_elements.as_ref() {
68 write!(writer, r#" aria-controls="{field}""#)?;
69 }
70 if let Some(field) = self.aria_current.as_ref() {
71 write!(writer, r#" aria-current="{field}""#)?;
72 }
73 if let Some(field) = self.aria_described_by_elements.as_ref() {
74 write!(writer, r#" aria-describedby="{field}""#)?;
75 }
76 if let Some(field) = self.aria_description.as_ref() {
77 write!(writer, r#" aria-description="{field}""#)?;
78 }
79 if let Some(field) = self.aria_details_elements.as_ref() {
80 write!(writer, r#" aria-details="{field}""#)?;
81 }
82 if self.aria_disabled {
83 write!(writer, r#" aria-disabled"#)?;
84 }
85 if let Some(field) = self.aria_drop_effect.as_ref() {
86 write!(writer, r#" aria-dropeffect="{field}""#)?;
87 }
88 if let Some(field) = self.aria_error_message_elements.as_ref() {
89 write!(writer, r#" aria-errormessage="{field}""#)?;
90 }
91 if let Some(field) = self.aria_flow_to_elements.as_ref() {
92 write!(writer, r#" aria-flowto="{field}""#)?;
93 }
94 if self.aria_grabbed {
95 write!(writer, r#" aria-grabbed"#)?;
96 }
97 if let Some(field) = self.aria_has_popup.as_ref() {
98 write!(writer, r#" aria-haspopup="{field}""#)?;
99 }
100 if self.aria_hidden {
101 write!(writer, r#" aria-hidden"#)?;
102 }
103 if let Some(field) = self.aria_invalid.as_ref() {
104 write!(writer, r#" aria-invalid="{field}""#)?;
105 }
106 if let Some(field) = self.aria_key_shortcuts.as_ref() {
107 write!(writer, r#" aria-keyshortcuts="{field}""#)?;
108 }
109 if let Some(field) = self.aria_live.as_ref() {
110 write!(writer, r#" aria-live="{field}""#)?;
111 }
112 if let Some(field) = self.aria_owns_elements.as_ref() {
113 write!(writer, r#" aria-owns="{field}""#)?;
114 }
115 if let Some(field) = self.aria_relevant.as_ref() {
116 write!(writer, r#" aria-relevant="{field}""#)?;
117 }
118 if let Some(field) = self.aria_role_description.as_ref() {
119 write!(writer, r#" aria-roledescription="{field}""#)?;
120 }
121 write!(writer, "{}", self.global_attrs)?;
122 write!(writer, "{}", self.data_map)?;
123 write!(writer, ">")?;
124 Ok(())
125 }
126 #[allow(unused_variables)]
127 fn write_closing_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
128 write!(writer, "</legend>")?;
129 Ok(())
130 }
131}
132impl std::fmt::Display for Legend {
133 fn fmt(&self, writer: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
134 use crate::RenderElement;
135 self.write_opening_tag(writer)?;
136 self.write_closing_tag(writer)?;
137 Ok(())
138 }
139}
140impl std::ops::Deref for Legend {
141 type Target = crate::GlobalAttributes;
142 fn deref(&self) -> &Self::Target {
143 &self.global_attrs
144 }
145}
146impl std::ops::DerefMut for Legend {
147 fn deref_mut(&mut self) -> &mut Self::Target {
148 &mut self.global_attrs
149 }
150}