Specificity.h 838 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. class Specificity {
  3. public:
  4. Specificity(unsigned ids, unsigned classes, unsigned tag_names)
  5. : m_ids(ids)
  6. , m_classes(classes)
  7. , m_tag_names(tag_names)
  8. {
  9. }
  10. unsigned ids() const { return m_ids; }
  11. unsigned classes() const { return m_classes; }
  12. unsigned tag_names() const { return m_tag_names; }
  13. bool operator<(const Specificity& other) const
  14. {
  15. return m_ids < other.m_ids
  16. || m_classes < other.m_classes
  17. || m_tag_names < other.m_tag_names;
  18. }
  19. bool operator==(const Specificity& other) const
  20. {
  21. return m_ids == other.m_ids
  22. || m_classes < other.m_classes
  23. || m_tag_names < other.m_tag_names;
  24. }
  25. private:
  26. unsigned m_ids { 0 };
  27. unsigned m_classes { 0 };
  28. unsigned m_tag_names { 0 };
  29. };