#ifndef SASS_SUBSET_MAP_H #define SASS_SUBSET_MAP_H #include #include #include #include #include #include "ast_fwd_decl.hpp" // #include // #include // template // std::string vector_to_string(std::vector v) // { // std::stringstream buffer; // buffer << "["; // if (!v.empty()) // { buffer << v[0]; } // else // { buffer << "]"; } // if (v.size() == 1) // { buffer << "]"; } // else // { // for (size_t i = 1, S = v.size(); i < S; ++i) buffer << ", " << v[i]; // buffer << "]"; // } // return buffer.str(); // } // template // std::string set_to_string(set v) // { // std::stringstream buffer; // buffer << "["; // typename std::set::iterator i = v.begin(); // if (!v.empty()) // { buffer << *i; } // else // { buffer << "]"; } // if (v.size() == 1) // { buffer << "]"; } // else // { // for (++i; i != v.end(); ++i) buffer << ", " << *i; // buffer << "]"; // } // return buffer.str(); // } namespace Sass { class Subset_Map { private: std::vector values_; std::map >, OrderNodes > hash_; public: void put(const Compound_Selector_Obj& sel, const SubSetMapPair& value); std::vector get_kv(const Compound_Selector_Obj& s); std::vector get_v(const Compound_Selector_Obj& s); bool empty() { return values_.empty(); } void clear() { values_.clear(); hash_.clear(); } const std::vector values(void) { return values_; } }; } #endif