namespace ReflectiveRapidJSON {
namespace JsonReflector {

// define code for (de)serializing LibRepoMgr::BuildActionFlagMetaInfo objects
template <> LIBREPOMGR_EXPORT void push<::LibRepoMgr::BuildActionFlagMetaInfo>(const ::LibRepoMgr::BuildActionFlagMetaInfo &reflectable, ::RAPIDJSON_NAMESPACE::Value::Object &value, ::RAPIDJSON_NAMESPACE::Document::AllocatorType &allocator)
{
    // push base classes
    // push members
    push(reflectable.id, "id", value, allocator);
    push(reflectable.name, "name", value, allocator);
    push(reflectable.desc, "desc", value, allocator);
    push(reflectable.param, "param", value, allocator);
}
template <> LIBREPOMGR_EXPORT void pull<::LibRepoMgr::BuildActionFlagMetaInfo>(::LibRepoMgr::BuildActionFlagMetaInfo &reflectable, const ::RAPIDJSON_NAMESPACE::GenericValue<::RAPIDJSON_NAMESPACE::UTF8<char>>::ConstObject &value, JsonDeserializationErrors *errors)
{
    // pull base classes
    // set error context for current record
    const char *previousRecord = nullptr;
    if (errors) {
        previousRecord = errors->currentRecord;
        errors->currentRecord = "LibRepoMgr::BuildActionFlagMetaInfo";
    }
    // pull members
    (void)reflectable;
    (void)value;
    // restore error context for previous record
    if (errors) {
        errors->currentRecord = previousRecord;
    }
}

// define code for (de)serializing LibRepoMgr::BuildActionSettingMetaInfo objects
template <> LIBREPOMGR_EXPORT void push<::LibRepoMgr::BuildActionSettingMetaInfo>(const ::LibRepoMgr::BuildActionSettingMetaInfo &reflectable, ::RAPIDJSON_NAMESPACE::Value::Object &value, ::RAPIDJSON_NAMESPACE::Document::AllocatorType &allocator)
{
    // push base classes
    // push members
    push(reflectable.name, "name", value, allocator);
    push(reflectable.desc, "desc", value, allocator);
    push(reflectable.param, "param", value, allocator);
}
template <> LIBREPOMGR_EXPORT void pull<::LibRepoMgr::BuildActionSettingMetaInfo>(::LibRepoMgr::BuildActionSettingMetaInfo &reflectable, const ::RAPIDJSON_NAMESPACE::GenericValue<::RAPIDJSON_NAMESPACE::UTF8<char>>::ConstObject &value, JsonDeserializationErrors *errors)
{
    // pull base classes
    // set error context for current record
    const char *previousRecord = nullptr;
    if (errors) {
        previousRecord = errors->currentRecord;
        errors->currentRecord = "LibRepoMgr::BuildActionSettingMetaInfo";
    }
    // pull members
    (void)reflectable;
    (void)value;
    // restore error context for previous record
    if (errors) {
        errors->currentRecord = previousRecord;
    }
}

// define code for (de)serializing LibRepoMgr::BuildActionTypeMetaInfo objects
template <> LIBREPOMGR_EXPORT void push<::LibRepoMgr::BuildActionTypeMetaInfo>(const ::LibRepoMgr::BuildActionTypeMetaInfo &reflectable, ::RAPIDJSON_NAMESPACE::Value::Object &value, ::RAPIDJSON_NAMESPACE::Document::AllocatorType &allocator)
{
    // push base classes
    // push members
    push(reflectable.id, "id", value, allocator);
    push(reflectable.category, "category", value, allocator);
    push(reflectable.name, "name", value, allocator);
    push(reflectable.type, "type", value, allocator);
    push(reflectable.flags, "flags", value, allocator);
    push(reflectable.settings, "settings", value, allocator);
    push(reflectable.directory, "directory", value, allocator);
    push(reflectable.sourceDb, "sourceDb", value, allocator);
    push(reflectable.destinationDb, "destinationDb", value, allocator);
    push(reflectable.packageNames, "packageNames", value, allocator);
    push(reflectable.implyPackagesFromPrevAction, "implyPackagesFromPrevAction", value, allocator);
}
template <> LIBREPOMGR_EXPORT void pull<::LibRepoMgr::BuildActionTypeMetaInfo>(::LibRepoMgr::BuildActionTypeMetaInfo &reflectable, const ::RAPIDJSON_NAMESPACE::GenericValue<::RAPIDJSON_NAMESPACE::UTF8<char>>::ConstObject &value, JsonDeserializationErrors *errors)
{
    // pull base classes
    // set error context for current record
    const char *previousRecord = nullptr;
    if (errors) {
        previousRecord = errors->currentRecord;
        errors->currentRecord = "LibRepoMgr::BuildActionTypeMetaInfo";
    }
    // pull members
    (void)reflectable;
    (void)value;
    // restore error context for previous record
    if (errors) {
        errors->currentRecord = previousRecord;
    }
}

// define code for (de)serializing LibRepoMgr::BuildActionStatusMetaInfo objects
template <> LIBREPOMGR_EXPORT void push<::LibRepoMgr::BuildActionStatusMetaInfo>(const ::LibRepoMgr::BuildActionStatusMetaInfo &reflectable, ::RAPIDJSON_NAMESPACE::Value::Object &value, ::RAPIDJSON_NAMESPACE::Document::AllocatorType &allocator)
{
    // push base classes
    // push members
    push(reflectable.id, "id", value, allocator);
    push(reflectable.name, "name", value, allocator);
}
template <> LIBREPOMGR_EXPORT void pull<::LibRepoMgr::BuildActionStatusMetaInfo>(::LibRepoMgr::BuildActionStatusMetaInfo &reflectable, const ::RAPIDJSON_NAMESPACE::GenericValue<::RAPIDJSON_NAMESPACE::UTF8<char>>::ConstObject &value, JsonDeserializationErrors *errors)
{
    // pull base classes
    // set error context for current record
    const char *previousRecord = nullptr;
    if (errors) {
        previousRecord = errors->currentRecord;
        errors->currentRecord = "LibRepoMgr::BuildActionStatusMetaInfo";
    }
    // pull members
    (void)reflectable;
    (void)value;
    // restore error context for previous record
    if (errors) {
        errors->currentRecord = previousRecord;
    }
}

// define code for (de)serializing LibRepoMgr::BuildActionResultMetaInfo objects
template <> LIBREPOMGR_EXPORT void push<::LibRepoMgr::BuildActionResultMetaInfo>(const ::LibRepoMgr::BuildActionResultMetaInfo &reflectable, ::RAPIDJSON_NAMESPACE::Value::Object &value, ::RAPIDJSON_NAMESPACE::Document::AllocatorType &allocator)
{
    // push base classes
    // push members
    push(reflectable.id, "id", value, allocator);
    push(reflectable.name, "name", value, allocator);
}
template <> LIBREPOMGR_EXPORT void pull<::LibRepoMgr::BuildActionResultMetaInfo>(::LibRepoMgr::BuildActionResultMetaInfo &reflectable, const ::RAPIDJSON_NAMESPACE::GenericValue<::RAPIDJSON_NAMESPACE::UTF8<char>>::ConstObject &value, JsonDeserializationErrors *errors)
{
    // pull base classes
    // set error context for current record
    const char *previousRecord = nullptr;
    if (errors) {
        previousRecord = errors->currentRecord;
        errors->currentRecord = "LibRepoMgr::BuildActionResultMetaInfo";
    }
    // pull members
    (void)reflectable;
    (void)value;
    // restore error context for previous record
    if (errors) {
        errors->currentRecord = previousRecord;
    }
}

// define code for (de)serializing LibRepoMgr::BuildActionMetaInfo objects
template <> LIBREPOMGR_EXPORT void push<::LibRepoMgr::BuildActionMetaInfo>(const ::LibRepoMgr::BuildActionMetaInfo &reflectable, ::RAPIDJSON_NAMESPACE::Value::Object &value, ::RAPIDJSON_NAMESPACE::Document::AllocatorType &allocator)
{
    // push base classes
    // push members
    push(reflectable.types, "types", value, allocator);
    push(reflectable.states, "states", value, allocator);
    push(reflectable.results, "results", value, allocator);
}
template <> LIBREPOMGR_EXPORT void pull<::LibRepoMgr::BuildActionMetaInfo>(::LibRepoMgr::BuildActionMetaInfo &reflectable, const ::RAPIDJSON_NAMESPACE::GenericValue<::RAPIDJSON_NAMESPACE::UTF8<char>>::ConstObject &value, JsonDeserializationErrors *errors)
{
    // pull base classes
    // set error context for current record
    const char *previousRecord = nullptr;
    if (errors) {
        previousRecord = errors->currentRecord;
        errors->currentRecord = "LibRepoMgr::BuildActionMetaInfo";
    }
    // pull members
    (void)reflectable;
    (void)value;
    // restore error context for previous record
    if (errors) {
        errors->currentRecord = previousRecord;
    }
}

} // namespace JsonReflector
} // namespace ReflectiveRapidJSON
