MCPcopy Create free account
hub / github.com/Stranger6667/css-inline / serialize

Method serialize

css-inline/src/html/serializer.rs:263–312  ·  view source on GitHub ↗
(
        &self,
        serializer: &mut HtmlSerializer<'_, W>,
    )

Source from the content-addressed store, hash-verified

261 }
262
263 fn serialize<W: Write>(
264 &self,
265 serializer: &mut HtmlSerializer<'_, W>,
266 ) -> Result<(), InlineError> {
267 match self.data() {
268 NodeData::Element {
269 element,
270 inlining_ignored,
271 } => {
272 if self.should_skip_element(element) {
273 return Ok(());
274 }
275
276 let style_node_id = if *inlining_ignored {
277 None
278 } else {
279 Some(self.node)
280 };
281
282 serializer.start_elem(
283 &element.name,
284 &element.attributes,
285 style_node_id,
286 self.minify_css,
287 self.apply_width_attributes,
288 self.apply_height_attributes,
289 )?;
290
291 if element.name.local == local_name!("head") {
292 if let Some(at_rules) = &self.at_rules {
293 if !at_rules.is_empty() {
294 serializer.write_at_rules_style(at_rules)?;
295 }
296 }
297 }
298
299 self.serialize_children(serializer)?;
300
301 serializer.end_elem(&element.name)?;
302 Ok(())
303 }
304 NodeData::Document => self.serialize_children(serializer),
305 NodeData::Doctype { name } => serializer.write_doctype(name),
306 NodeData::Text { text } => serializer.write_text(text),
307 NodeData::Comment { text } => serializer.write_comment(text),
308 NodeData::ProcessingInstruction { target, data } => {
309 serializer.write_processing_instruction(target, data)
310 }
311 }
312 }
313}
314
315struct ElemInfo {

Callers 8

serialize_toFunction · 0.45
serialize_childrenMethod · 0.45
test_serializeFunction · 0.45
test_skip_style_tagsFunction · 0.45
test_escapedFunction · 0.45
test_untouched_styleFunction · 0.45
test_attributesFunction · 0.45
test_keep_at_rules_tagsFunction · 0.45

Calls 11

should_skip_elementMethod · 0.80
start_elemMethod · 0.80
is_emptyMethod · 0.80
write_at_rules_styleMethod · 0.80
serialize_childrenMethod · 0.80
end_elemMethod · 0.80
write_doctypeMethod · 0.80
write_textMethod · 0.80
write_commentMethod · 0.80
dataMethod · 0.45

Tested by 6

test_serializeFunction · 0.36
test_skip_style_tagsFunction · 0.36
test_escapedFunction · 0.36
test_untouched_styleFunction · 0.36
test_attributesFunction · 0.36
test_keep_at_rules_tagsFunction · 0.36