std::string to_string(const group& x) { if (x == invalid_group) return "<invalid-group>"; std::string result = x.get()->module().name(); result += ":"; result += x.get()->identifier(); return result; }
error inspect(serializer& f, group& x) { std::string mod_name; auto ptr = x.get(); if (!ptr) return f(mod_name); mod_name = ptr->module().name(); auto e = f(mod_name); return e ? e : ptr->save(f); }