StyleRule.cpp 899 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (c) 2020-2021, the SerenityOS developers.
  3. * Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #include <LibWeb/CSS/Parser/StyleRule.h>
  8. #include <LibWeb/CSS/Serialize.h>
  9. namespace Web::CSS::Parser {
  10. StyleRule::StyleRule(StyleRule::Type type, FlyString name, Vector<ComponentValue> prelude, RefPtr<Block> block)
  11. : m_type(type)
  12. , m_at_rule_name(move(name))
  13. , m_prelude(move(prelude))
  14. , m_block(move(block))
  15. {
  16. }
  17. StyleRule::~StyleRule() = default;
  18. String StyleRule::to_string() const
  19. {
  20. StringBuilder builder;
  21. if (is_at_rule()) {
  22. builder.append("@");
  23. serialize_an_identifier(builder, m_at_rule_name);
  24. }
  25. builder.join(" ", m_prelude);
  26. if (m_block)
  27. builder.append(m_block->to_string());
  28. else
  29. builder.append(';');
  30. return builder.to_string();
  31. }
  32. }