/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A. - All Rights Reserved.                        *
*                                                                          *
***************************************************************************/

#ifndef GLM_HISTORYJSON_H
#define GLM_HISTORYJSON_H

#include "glmJson.h"
#include "glmHistory.h"

namespace glm
{
    namespace crowdio
    {
        void to_json(nlohmann::ordered_json& j, const GlmCharValues_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmInt32Values_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmInt64Values_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmFloatValues_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmVec3Values_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmVec4Values_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmLayoutOperatorNode_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmLayoutSelectorNode_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmAttribute_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmLayoutNode_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmLayoutGroup_v1& p);
        void to_json(nlohmann::ordered_json& j, const GlmHistory_v1& p);

        void from_json(const nlohmann::ordered_json& j, GlmCharValues_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmInt32Values_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmInt64Values_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmFloatValues_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmVec3Values_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmVec4Values_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmLayoutOperatorNode_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmLayoutSelectorNode_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmAttribute_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmLayoutNode_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmLayoutGroup_v1& p);
        void from_json(const nlohmann::ordered_json& j, GlmHistory_v1& p);

    } // namespace crowdio
} // namespace glm
#endif // GLM_HISTORYJSON_H
