#ifndef CHILON_DETAIL_VECTOR_HASH_MAP_HPP
#define CHILON_DETAIL_VECTOR_HASH_MAP_HPP
#include <chilon/print.hpp>
#include <chilon/detail/vector_hash_index.hpp>
namespace chilon { namespace detail {
////////////////////////////////////////////////////////////////////////////////
struct print_vector_hash_map {
template <class O, class H>
inline static void exec(int const indent, O& stream, H const& head) {
if (head.empty()) {
stream << "[]";
}
else {
stream << "[\n";
auto it = head.begin();
print_indent(indent + 1, stream);
print_args(indent + 1, stream, it->first, ": ", it->second);
while (++it != head.end()) {
stream << "\n";
print_indent(indent + 1, stream);
print_args(indent + 1, stream, it->first, ": ", it->second);
}
stream << '\n';
print_indent(indent, stream);
stream << ']';
}
}
};
struct vector_hash_map : chilon::printable<print_vector_hash_map> {};
} }
#endif