DeclarationOrAtRule.h 674 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright (c) 2020-2021, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/CSS/Parser/AtStyleRule.h>
  8. #include <LibWeb/CSS/Parser/StyleDeclarationRule.h>
  9. namespace Web::CSS {
  10. class DeclarationOrAtRule {
  11. friend class Parser;
  12. public:
  13. explicit DeclarationOrAtRule(RefPtr<AtStyleRule> at);
  14. explicit DeclarationOrAtRule(StyleDeclarationRule declaration);
  15. ~DeclarationOrAtRule();
  16. enum class DeclarationType {
  17. At,
  18. Declaration,
  19. };
  20. String to_string() const;
  21. private:
  22. DeclarationType m_type;
  23. RefPtr<AtStyleRule> m_at;
  24. StyleDeclarationRule m_declaration;
  25. };
  26. }