ladybird/Libraries/LibWeb/CSS/StyleSheetIdentifier.h
Sam Atkins 9ebdb58604 LibWeb/CSS: Add operator== to StyleSheetIdentifier
Only the rule count isn't part of identifying the style sheet.
2025-09-26 22:30:20 +02:00

49 lines
1.1 KiB
C++

/*
* Copyright (c) 2024, Sam Atkins <sam@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibIPC/Forward.h>
#include <LibURL/URL.h>
#include <LibWeb/Export.h>
#include <LibWeb/Forward.h>
namespace Web::CSS {
struct StyleSheetIdentifier {
enum class Type : u8 {
StyleElement,
LinkElement,
ImportRule,
UserAgent,
UserStyle,
};
Type type;
Optional<UniqueNodeID> dom_element_unique_id {};
Optional<String> url {};
size_t rule_count { 0 };
bool operator==(StyleSheetIdentifier const& other) const
{
return type == other.type && dom_element_unique_id == other.dom_element_unique_id && url == other.url;
}
};
StringView style_sheet_identifier_type_to_string(StyleSheetIdentifier::Type);
Optional<StyleSheetIdentifier::Type> style_sheet_identifier_type_from_string(StringView);
}
namespace IPC {
template<>
WEB_API ErrorOr<void> encode(Encoder&, Web::CSS::StyleSheetIdentifier const&);
template<>
WEB_API ErrorOr<Web::CSS::StyleSheetIdentifier> decode(Decoder&);
}