1#[doc(alias = "iframe")]
5#[non_exhaustive]
6#[derive(Debug, Clone, PartialEq, Default)]
7pub struct Iframe {
8 pub data_map: crate::DataMap,
9 global_attrs: crate::GlobalAttributes,
10 pub src: std::option::Option<std::borrow::Cow<'static, str>>,
12 pub srcdoc: std::option::Option<std::borrow::Cow<'static, str>>,
14 pub name: std::option::Option<std::borrow::Cow<'static, str>>,
16 pub sandbox: std::option::Option<std::borrow::Cow<'static, str>>,
18 pub allow: std::option::Option<std::borrow::Cow<'static, str>>,
20 pub allowfullscreen: std::option::Option<std::borrow::Cow<'static, str>>,
22 pub width: std::option::Option<std::borrow::Cow<'static, str>>,
24 pub height: std::option::Option<std::borrow::Cow<'static, str>>,
26 pub referrerpolicy: std::option::Option<std::borrow::Cow<'static, str>>,
28 pub loading: std::option::Option<std::borrow::Cow<'static, str>>,
30 pub role: std::option::Option<std::borrow::Cow<'static, str>>,
32 pub aria_active_descendant_element: std::option::Option<
34 std::borrow::Cow<'static, str>,
35 >,
36 pub aria_atomic: bool,
38 pub aria_braille_label: std::option::Option<std::borrow::Cow<'static, str>>,
40 pub aria_braille_role_description: std::option::Option<
42 std::borrow::Cow<'static, str>,
43 >,
44 pub aria_busy: bool,
46 pub aria_controls_elements: std::option::Option<std::borrow::Cow<'static, str>>,
48 pub aria_current: std::option::Option<std::borrow::Cow<'static, str>>,
50 pub aria_described_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
52 pub aria_description: std::option::Option<std::borrow::Cow<'static, str>>,
54 pub aria_details_elements: std::option::Option<std::borrow::Cow<'static, str>>,
56 pub aria_disabled: bool,
58 pub aria_drop_effect: std::option::Option<std::borrow::Cow<'static, str>>,
60 pub aria_error_message_elements: std::option::Option<std::borrow::Cow<'static, str>>,
62 pub aria_expanded: bool,
64 pub aria_flow_to_elements: std::option::Option<std::borrow::Cow<'static, str>>,
66 pub aria_grabbed: bool,
68 pub aria_has_popup: std::option::Option<std::borrow::Cow<'static, str>>,
70 pub aria_hidden: bool,
72 pub aria_invalid: std::option::Option<std::borrow::Cow<'static, str>>,
74 pub aria_key_shortcuts: std::option::Option<std::borrow::Cow<'static, str>>,
76 pub aria_label: std::option::Option<std::borrow::Cow<'static, str>>,
78 pub aria_labelled_by_elements: std::option::Option<std::borrow::Cow<'static, str>>,
80 pub aria_live: std::option::Option<std::borrow::Cow<'static, str>>,
82 pub aria_owns_elements: std::option::Option<std::borrow::Cow<'static, str>>,
84 pub aria_relevant: std::option::Option<std::borrow::Cow<'static, str>>,
86 pub aria_role_description: std::option::Option<std::borrow::Cow<'static, str>>,
88}
89impl crate::RenderElement for Iframe {
90 fn write_opening_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
91 write!(writer, "<iframe")?;
92 if let Some(field) = self.src.as_ref() {
93 write!(writer, r#" src="{field}""#)?;
94 }
95 if let Some(field) = self.srcdoc.as_ref() {
96 write!(writer, r#" srcdoc="{field}""#)?;
97 }
98 if let Some(field) = self.name.as_ref() {
99 write!(writer, r#" name="{field}""#)?;
100 }
101 if let Some(field) = self.sandbox.as_ref() {
102 write!(writer, r#" sandbox="{field}""#)?;
103 }
104 if let Some(field) = self.allow.as_ref() {
105 write!(writer, r#" allow="{field}""#)?;
106 }
107 if let Some(field) = self.allowfullscreen.as_ref() {
108 write!(writer, r#" allowfullscreen="{field}""#)?;
109 }
110 if let Some(field) = self.width.as_ref() {
111 write!(writer, r#" width="{field}""#)?;
112 }
113 if let Some(field) = self.height.as_ref() {
114 write!(writer, r#" height="{field}""#)?;
115 }
116 if let Some(field) = self.referrerpolicy.as_ref() {
117 write!(writer, r#" referrerpolicy="{field}""#)?;
118 }
119 if let Some(field) = self.loading.as_ref() {
120 write!(writer, r#" loading="{field}""#)?;
121 }
122 if let Some(field) = self.role.as_ref() {
123 write!(writer, r#" role="{field}""#)?;
124 }
125 if let Some(field) = self.aria_active_descendant_element.as_ref() {
126 write!(writer, r#" aria-activedescendant="{field}""#)?;
127 }
128 if self.aria_atomic {
129 write!(writer, r#" aria-atomic"#)?;
130 }
131 if let Some(field) = self.aria_braille_label.as_ref() {
132 write!(writer, r#" aria-braillelabel="{field}""#)?;
133 }
134 if let Some(field) = self.aria_braille_role_description.as_ref() {
135 write!(writer, r#" aria-brailleroledescription="{field}""#)?;
136 }
137 if self.aria_busy {
138 write!(writer, r#" aria-busy"#)?;
139 }
140 if let Some(field) = self.aria_controls_elements.as_ref() {
141 write!(writer, r#" aria-controls="{field}""#)?;
142 }
143 if let Some(field) = self.aria_current.as_ref() {
144 write!(writer, r#" aria-current="{field}""#)?;
145 }
146 if let Some(field) = self.aria_described_by_elements.as_ref() {
147 write!(writer, r#" aria-describedby="{field}""#)?;
148 }
149 if let Some(field) = self.aria_description.as_ref() {
150 write!(writer, r#" aria-description="{field}""#)?;
151 }
152 if let Some(field) = self.aria_details_elements.as_ref() {
153 write!(writer, r#" aria-details="{field}""#)?;
154 }
155 if self.aria_disabled {
156 write!(writer, r#" aria-disabled"#)?;
157 }
158 if let Some(field) = self.aria_drop_effect.as_ref() {
159 write!(writer, r#" aria-dropeffect="{field}""#)?;
160 }
161 if let Some(field) = self.aria_error_message_elements.as_ref() {
162 write!(writer, r#" aria-errormessage="{field}""#)?;
163 }
164 if self.aria_expanded {
165 write!(writer, r#" aria-expanded"#)?;
166 }
167 if let Some(field) = self.aria_flow_to_elements.as_ref() {
168 write!(writer, r#" aria-flowto="{field}""#)?;
169 }
170 if self.aria_grabbed {
171 write!(writer, r#" aria-grabbed"#)?;
172 }
173 if let Some(field) = self.aria_has_popup.as_ref() {
174 write!(writer, r#" aria-haspopup="{field}""#)?;
175 }
176 if self.aria_hidden {
177 write!(writer, r#" aria-hidden"#)?;
178 }
179 if let Some(field) = self.aria_invalid.as_ref() {
180 write!(writer, r#" aria-invalid="{field}""#)?;
181 }
182 if let Some(field) = self.aria_key_shortcuts.as_ref() {
183 write!(writer, r#" aria-keyshortcuts="{field}""#)?;
184 }
185 if let Some(field) = self.aria_label.as_ref() {
186 write!(writer, r#" aria-label="{field}""#)?;
187 }
188 if let Some(field) = self.aria_labelled_by_elements.as_ref() {
189 write!(writer, r#" aria-labelledby="{field}""#)?;
190 }
191 if let Some(field) = self.aria_live.as_ref() {
192 write!(writer, r#" aria-live="{field}""#)?;
193 }
194 if let Some(field) = self.aria_owns_elements.as_ref() {
195 write!(writer, r#" aria-owns="{field}""#)?;
196 }
197 if let Some(field) = self.aria_relevant.as_ref() {
198 write!(writer, r#" aria-relevant="{field}""#)?;
199 }
200 if let Some(field) = self.aria_role_description.as_ref() {
201 write!(writer, r#" aria-roledescription="{field}""#)?;
202 }
203 write!(writer, "{}", self.global_attrs)?;
204 write!(writer, "{}", self.data_map)?;
205 write!(writer, ">")?;
206 Ok(())
207 }
208 #[allow(unused_variables)]
209 fn write_closing_tag<W: std::fmt::Write>(&self, writer: &mut W) -> std::fmt::Result {
210 write!(writer, "</iframe>")?;
211 Ok(())
212 }
213}
214impl std::fmt::Display for Iframe {
215 fn fmt(&self, writer: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
216 use crate::RenderElement;
217 self.write_opening_tag(writer)?;
218 self.write_closing_tag(writer)?;
219 Ok(())
220 }
221}
222impl std::ops::Deref for Iframe {
223 type Target = crate::GlobalAttributes;
224 fn deref(&self) -> &Self::Target {
225 &self.global_attrs
226 }
227}
228impl std::ops::DerefMut for Iframe {
229 fn deref_mut(&mut self) -> &mut Self::Target {
230 &mut self.global_attrs
231 }
232}