diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a277b1..7bfba9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Performance + +- Slightly improve performance of HTML serialization. + ## [0.14.4] - 2024-12-27 ### Changed diff --git a/css-inline/src/html/serializer.rs b/css-inline/src/html/serializer.rs index 20a26b1..477bff5 100644 --- a/css-inline/src/html/serializer.rs +++ b/css-inline/src/html/serializer.rs @@ -171,12 +171,12 @@ impl<'a, W: Write> HtmlSerializer<'a, W> { .expect("Invalid substring") .as_bytes(), )?; - match part { - "&" => self.writer.write_all(b"&")?, - "\u{00A0}" => self.writer.write_all(b" ")?, - "<" => self.writer.write_all(b"<")?, - ">" => self.writer.write_all(b">")?, - _ => unreachable!("Only the variants above are searched"), + match (part.as_bytes()[0] & 0b0000_1110) >> 1 { + 1 => self.writer.write_all(b" ")?, + 3 => self.writer.write_all(b"&")?, + 6 => self.writer.write_all(b"<")?, + 7 => self.writer.write_all(b">")?, + _ => unreachable!(), }; last_end = start.checked_add(part.len()).expect("Size overflow"); }