LibWeb/CSS: Set enum sizes for media query types

This reduces `MediaFeature` from 112 to 104 bytes.
This commit is contained in:
Sam Atkins 2025-05-19 12:32:37 +01:00 committed by Shannon Booth
commit c4bcbff59a
Notes: github-actions[bot] 2025-05-19 22:15:29 +00:00
3 changed files with 7 additions and 4 deletions

View file

@ -96,7 +96,7 @@ private:
// https://www.w3.org/TR/mediaqueries-4/#mq-features
class MediaFeature final : public BooleanExpression {
public:
enum class Comparison {
enum class Comparison : u8 {
Equal,
LessThan,
LessThanOrEqual,
@ -151,7 +151,7 @@ public:
virtual void dump(StringBuilder&, int indent_levels = 0) const override;
private:
enum class Type {
enum class Type : u8 {
IsTrue,
ExactValue,
MinValue,

View file

@ -310,7 +310,7 @@ class URLStyleValue;
class VisualViewport;
enum class Keyword;
enum class MediaFeatureID;
enum class MediaFeatureID : u8;
enum class PropertyID;
struct BackgroundLayerData;

View file

@ -42,6 +42,9 @@ ErrorOr<void> generate_header_file(JsonObject& media_feature_data, Core::File& f
{
StringBuilder builder;
SourceGenerator generator { builder };
generator.set("media_feature_id_underlying_type", underlying_type_for_enum(media_feature_data.size()));
generator.append(R"~~~(#pragma once
#include <AK/StringView.h>
@ -58,7 +61,7 @@ enum class MediaFeatureValueType {
Resolution,
};
enum class MediaFeatureID {)~~~");
enum class MediaFeatureID : @media_feature_id_underlying_type@ {)~~~");
media_feature_data.for_each_member([&](auto& name, auto&) {
auto member_generator = generator.fork();