From bed0915a502db96739d5f353d9df976b899ddb68 Mon Sep 17 00:00:00 2001 From: toge Date: Fri, 27 Sep 2024 17:04:17 +0900 Subject: [PATCH] iguana: add version 1.0.6 --- recipes/iguana/all/conandata.yml | 3 + .../iguana/all/test_package/CMakeLists.txt | 6 +- .../iguana/all/test_package/test_package.cpp | 13 ++- .../all/test_package/test_package_1_0_5.cpp | 81 +++++++++++++++++++ recipes/iguana/config.yml | 2 + 5 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 recipes/iguana/all/test_package/test_package_1_0_5.cpp diff --git a/recipes/iguana/all/conandata.yml b/recipes/iguana/all/conandata.yml index dc65f73b11bc3..3e9e419a87075 100644 --- a/recipes/iguana/all/conandata.yml +++ b/recipes/iguana/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.0.6": + url: "https://github.com/qicosmos/iguana/archive/refs/tags/1.0.6.tar.gz" + sha256: "cfacf1cce4ebe49b947ec823f93a23c2a7fd220f67f6847e9f449e7c469deb9e" "1.0.5": url: "https://github.com/qicosmos/iguana/archive/refs/tags/1.0.5.tar.gz" sha256: "b7a7385c49574a60f9f6bf887c1addbc08f557a0117bf18cf7eec532ac2536b1" diff --git a/recipes/iguana/all/test_package/CMakeLists.txt b/recipes/iguana/all/test_package/CMakeLists.txt index be16f17fdd6e3..b17ea62c13e23 100644 --- a/recipes/iguana/all/test_package/CMakeLists.txt +++ b/recipes/iguana/all/test_package/CMakeLists.txt @@ -3,6 +3,10 @@ project(test_package LANGUAGES CXX) find_package(iguana REQUIRED CONFIG) -add_executable(${PROJECT_NAME} test_package.cpp) +if(iguana_VERSION VERSION_GREATER_EQUAL "1.0.6") + add_executable(${PROJECT_NAME} test_package.cpp) +else() + add_executable(${PROJECT_NAME} test_package_1_0_5.cpp) +endif() target_link_libraries(${PROJECT_NAME} PRIVATE iguana::iguana) target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) diff --git a/recipes/iguana/all/test_package/test_package.cpp b/recipes/iguana/all/test_package/test_package.cpp index f97e8fb335c14..4e191ae1388a2 100644 --- a/recipes/iguana/all/test_package/test_package.cpp +++ b/recipes/iguana/all/test_package/test_package.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -7,20 +8,26 @@ struct person { int64_t age; }; -REFLECTION(person, name, age); +#if __cplusplus < 202002L +YLT_REFL(person, name, age); +#endif } // namespace client struct MyStruct { uint64_t a; }; -REFLECTION(MyStruct, a); +#if __cplusplus < 202002L +YLT_REFL(MyStruct, a); +#endif struct student { int id; std::string name; int age; }; -REFLECTION(student, id, name, age); +#if __cplusplus < 202002L +YLT_REFL(student, id, name, age); +#endif void test() { MyStruct p = {5566777755311}; diff --git a/recipes/iguana/all/test_package/test_package_1_0_5.cpp b/recipes/iguana/all/test_package/test_package_1_0_5.cpp new file mode 100644 index 0000000000000..f97e8fb335c14 --- /dev/null +++ b/recipes/iguana/all/test_package/test_package_1_0_5.cpp @@ -0,0 +1,81 @@ +#include +#include + +namespace client { +struct person { + std::string name; + int64_t age; +}; + +REFLECTION(person, name, age); +} // namespace client + +struct MyStruct { + uint64_t a; +}; +REFLECTION(MyStruct, a); + +struct student { + int id; + std::string name; + int age; +}; +REFLECTION(student, id, name, age); + +void test() { + MyStruct p = {5566777755311}; + iguana::string_stream ss; + iguana::to_json(p, ss); + + MyStruct p2; + iguana::from_json(p2, ss); + std::cout << p2.a << std::endl; +} + +void test_v() { + client::person p1 = {"tom", 20}; + client::person p2 = {"jack", 19}; + client::person p3 = {"mike", 21}; + + std::vector v{p1, p2, p3}; + iguana::string_stream ss; + iguana::to_json(v, ss); + std::cout << ss << std::endl; + + std::vector v1; + iguana::from_json(v1, ss); +} + +void test_disorder() { + student s{1, "tom", 20}; + iguana::string_stream ss; + iguana::to_json(s, ss); + std::cout << ss << std::endl; + + student s1{}; + std::string str = "{\"name\":\"tom\",\"id\":1,\"age\":20}"; + iguana::from_json(s1, str.data(), str.length()); + std::string str1 = "{\"name\":\"tom\",\"age\":20,\"id\":1}"; + iguana::from_json(s1, str1.data(), str1.length()); + + std::string str2 = "{ \"id\":1,\"name\" : \"madoka\",\"age\" : 27 }"; + iguana::from_json(s1, str2.data(), str2.length()); +} + +int main(void) { + test_disorder(); + test_v(); + test(); + client::person p = {"zombie chow", -311}; + iguana::string_stream ss; + iguana::to_json(p, ss); + + std::cout << ss << std::endl; + client::person p2; + + iguana::from_json(p2, ss.data(), ss.length()); + + std::cout << p2.name << " - " << p2.age << std::endl; + + return 0; +} diff --git a/recipes/iguana/config.yml b/recipes/iguana/config.yml index 7ec6a422c89a7..c64afb84e8dad 100644 --- a/recipes/iguana/config.yml +++ b/recipes/iguana/config.yml @@ -1,4 +1,6 @@ versions: + "1.0.6": + folder: all "1.0.5": folder: all "1.0.4":