ladybird/Userland/Libraries/LibWeb/CSS/StyleValues/StringStyleValue.h
Sam Atkins 9fb44cb057 LibWeb/CSS: Make StringStyleValue hold a FlyString
We already have a FlyString of its value from parsing, and most users
also want a FlyString from it, so let's use that instead of converting
backwards and forwards.

The two users that did want a String are:
- Quotes, which make sense as FlyString instead, so I've converted that.
- Animation names, which should probably be FlyString too, but the code
  currently also allows for other kinds of StyleValue, and I don't want
  to dive into this right now to figure out if that's needed or not.
2024-07-17 15:08:44 +01:00

37 lines
955 B
C++

/*
* Copyright (c) 2022-2024, Sam Atkins <atkinssj@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/FlyString.h>
#include <LibWeb/CSS/StyleValue.h>
namespace Web::CSS {
class StringStyleValue : public StyleValueWithDefaultOperators<StringStyleValue> {
public:
static ValueComparingNonnullRefPtr<StringStyleValue> create(FlyString const& string)
{
return adopt_ref(*new (nothrow) StringStyleValue(string));
}
virtual ~StringStyleValue() override = default;
FlyString string_value() const { return m_string; }
String to_string() const override { return serialize_a_string(m_string); }
bool properties_equal(StringStyleValue const& other) const { return m_string == other.m_string; }
private:
explicit StringStyleValue(FlyString const& string)
: StyleValueWithDefaultOperators(Type::String)
, m_string(string)
{
}
FlyString m_string;
};
}