8#ifndef INCLUDED_ORCUS_CSS_SELECTOR_HPP
9#define INCLUDED_ORCUS_CSS_SELECTOR_HPP
12#include "css_types.hpp"
17#include <unordered_set>
18#include <unordered_map>
22struct ORCUS_DLLPUBLIC css_simple_selector_t
24 typedef std::unordered_set<std::string_view> classes_type;
26 std::string_view name;
29 css::pseudo_class_t pseudo_classes;
31 css_simple_selector_t();
36 bool operator== (
const css_simple_selector_t& r)
const;
37 bool operator!= (
const css_simple_selector_t& r)
const;
41 size_t operator() (
const css_simple_selector_t& ss)
const;
45struct ORCUS_DLLPUBLIC css_chained_simple_selector_t
47 css::combinator_t combinator;
50 bool operator== (
const css_chained_simple_selector_t& r)
const;
52 css_chained_simple_selector_t();
62 typedef std::vector<css_chained_simple_selector_t> chained_type;
74struct ORCUS_DLLPUBLIC css_property_value_t
76 using value_type = std::variant<std::string_view, css::rgba_color_t, css::hsla_color_t>;
78 css::property_value_t type;
81 css_property_value_t();
82 css_property_value_t(
const css_property_value_t& r);
94 css_property_value_t& operator= (
const css_property_value_t& r);
96 void swap(css_property_value_t& r);
99typedef std::unordered_map<std::string_view, std::vector<css_property_value_t>> css_properties_t;
100typedef std::unordered_map<css::pseudo_element_t, css_properties_t> css_pseudo_element_properties_t;
103ORCUS_DLLPUBLIC std::ostream& operator<< (std::ostream& os,
const css_selector_t& v);
Definition css_selector.hpp:75
css_property_value_t(std::string_view _str)
Definition css_selector.hpp:61
Definition css_selector.hpp:40
Definition css_selector.hpp:23