CounterDefinitionsStyleValue.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (c) 2024, Sam Atkins <atkinssj@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include "CounterDefinitionsStyleValue.h"
  7. #include <LibWeb/CSS/Serialize.h>
  8. namespace Web::CSS {
  9. String CounterDefinitionsStyleValue::to_string() const
  10. {
  11. StringBuilder stb;
  12. for (auto const& counter_definition : m_counter_definitions) {
  13. if (!stb.is_empty())
  14. stb.append(' ');
  15. if (counter_definition.is_reversed)
  16. stb.appendff("reversed({})", counter_definition.name);
  17. else
  18. stb.append(counter_definition.name);
  19. if (counter_definition.value)
  20. stb.appendff(" {}", counter_definition.value->to_string());
  21. }
  22. return stb.to_string_without_validation();
  23. }
  24. bool CounterDefinitionsStyleValue::properties_equal(CounterDefinitionsStyleValue const& other) const
  25. {
  26. if (m_counter_definitions.size() != other.counter_definitions().size())
  27. return false;
  28. for (auto i = 0u; i < m_counter_definitions.size(); i++) {
  29. auto const& ours = m_counter_definitions[i];
  30. auto const& theirs = other.counter_definitions()[i];
  31. if (ours.name != theirs.name || ours.is_reversed != theirs.is_reversed || ours.value != theirs.value)
  32. return false;
  33. }
  34. return true;
  35. }
  36. }