Selector.cpp 682 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <LibHTML/CSS/Selector.h>
  2. Selector::Selector(Vector<Component>&& components)
  3. : m_components(move(components))
  4. {
  5. }
  6. Selector::~Selector()
  7. {
  8. }
  9. Specificity Selector::specificity() const
  10. {
  11. unsigned ids = 0;
  12. unsigned tag_names = 0;
  13. unsigned classes = 0;
  14. for (auto& component : m_components) {
  15. switch (component.type) {
  16. case Component::Type::Id:
  17. ++ids;
  18. break;
  19. case Component::Type::Class:
  20. ++classes;
  21. break;
  22. case Component::Type::TagName:
  23. ++tag_names;
  24. break;
  25. default:
  26. break;
  27. }
  28. }
  29. return { ids, classes, tag_names };
  30. }