void write_meta(const osmium::OSMObject& object) {
                    oprintf(m_out, " id=\"%" PRId64 "\"", object.id());

                    if (object.version()) {
                        oprintf(m_out, " version=\"%d\"", object.version());
                    }

                    if (object.timestamp()) {
                        m_out += " timestamp=\"";
                        m_out += object.timestamp().to_iso();
                        m_out += "\"";
                    }

                    if (!object.user_is_anonymous()) {
                        oprintf(m_out, " uid=\"%d\" user=\"", object.uid());
                        xml_string(m_out, object.user());
                        m_out += "\"";
                    }

                    if (object.changeset()) {
                        oprintf(m_out, " changeset=\"%d\"", object.changeset());
                    }

                    if (m_write_visible_flag) {
                        if (object.visible()) {
                            m_out += " visible=\"true\"";
                        } else {
                            m_out += " visible=\"false\"";
                        }
                    }
                }
 bool matches_user_filter(const osmium::OSMObject& obj) {
     if (obj.user_is_anonymous()) return false;
     std::unordered_set<osmium::user_id_type>::const_iterator it = m_filter_users.find(obj.uid());
     if (it == m_filter_users.end()) return false;
     return true;
 }