}
return m;
}
+
+template<typename Iterator>
+ostream& print_dict(ostream& m, Iterator begin, Iterator end) {
+ m << "{ ";
+ std::copy(begin, end, ceph::make_ostream_joiner(m, ", "));
+ m << " }";
+ return m;
+}
+
}
ostream& operator <<(ostream& m, const Condition& c) {
}
if (!s.princ.empty()) {
m << "Principal: ";
- print_array(m, s.princ.cbegin(), s.princ.cend());
+ print_dict(m, s.princ.cbegin(), s.princ.cend());
m << ", ";
}
if (!s.noprinc.empty()) {
m << "NotPrincipal: ";
- print_array(m, s.noprinc.cbegin(), s.noprinc.cend());
+ print_dict(m, s.noprinc.cbegin(), s.noprinc.cend());
m << ", ";
}
if (!s.conditions.empty()) {
m << "Condition: ";
- print_array(m, s.conditions.cbegin(), s.conditions.cend());
+ print_dict(m, s.conditions.cbegin(), s.conditions.cend());
}
return m << " }";