diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dd4d19..49b0921 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. +## 0.6.0 (2022-12-12) +#### Added +- Add functions to modify the content of a JSON value, for example `yyjson_set_int(yyjson_val *val, int num)`. +- Add functions to copy from mutable doc to immutable doc. +- Add functions to support renaming an object's key. +- Add the `yyjson_read_number()` function to parse numeric strings. +- Add a placeholder allocator if `yyjson_alc_pool_init()` fails. + +#### Fixed +- Fix quite NaN on MIPS and HPPA arch. +- Fixed compile error before `GCC 4.5` which doesn't support empty optional extended asm label. +- When built-in floating point conversion is disabled, sprintf() output for floating point numbers is missing a decimal point, for example 123 should be 123.0. + + ## 0.5.1 (2022-06-17) #### Fixed - Fix run-time error when compiling as cpp and 32-bit (g++-5 -m32 -fPIC) #85 diff --git a/CMakeLists.txt b/CMakeLists.txt index d6c4ab0..b69d6e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ # https://github.com/ibireme/yyjson/blob/master/LICENSE cmake_minimum_required(VERSION 3.5) -project(yyjson VERSION 0.5.1) +project(yyjson VERSION 0.6.0) diff --git a/doc/doxygen/html/annotated.html b/doc/doxygen/html/annotated.html index 6c392ff..6502f07 100644 --- a/doc/doxygen/html/annotated.html +++ b/doc/doxygen/html/annotated.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/classes.html b/doc/doxygen/html/classes.html index 7ece24d..3b46620 100644 --- a/doc/doxygen/html/classes.html +++ b/doc/doxygen/html/classes.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/doc/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 6f58143..50ebdfd 100644 --- a/doc/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/doc/doxygen/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/dir_e68e8157741866f444e17edd764ebbae.html b/doc/doxygen/html/dir_e68e8157741866f444e17edd764ebbae.html index 0f3beb4..ea0c82c 100644 --- a/doc/doxygen/html/dir_e68e8157741866f444e17edd764ebbae.html +++ b/doc/doxygen/html/dir_e68e8157741866f444e17edd764ebbae.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/files.html b/doc/doxygen/html/files.html index 3063494..55fc241 100644 --- a/doc/doxygen/html/files.html +++ b/doc/doxygen/html/files.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/functions.html b/doc/doxygen/html/functions.html index b8b48a1..9c3af82 100644 --- a/doc/doxygen/html/functions.html +++ b/doc/doxygen/html/functions.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/functions_vars.html b/doc/doxygen/html/functions_vars.html index e7f051a..c7c4d6b 100644 --- a/doc/doxygen/html/functions_vars.html +++ b/doc/doxygen/html/functions_vars.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/globals.html b/doc/doxygen/html/globals.html index 23eb6b3..53c2406 100644 --- a/doc/doxygen/html/globals.html +++ b/doc/doxygen/html/globals.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/globals_defs.html b/doc/doxygen/html/globals_defs.html index d9cfc31..71c857a 100644 --- a/doc/doxygen/html/globals_defs.html +++ b/doc/doxygen/html/globals_defs.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
diff --git a/doc/doxygen/html/globals_func.html b/doc/doxygen/html/globals_func.html index 30cf96a..e1f7733 100644 --- a/doc/doxygen/html/globals_func.html +++ b/doc/doxygen/html/globals_func.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
@@ -200,6 +200,7 @@

- y -

  • yyjson_mut_doc_get_pointer() : yyjson.h
  • yyjson_mut_doc_get_pointern() : yyjson.h
  • yyjson_mut_doc_get_root() : yyjson.h
  • +
  • yyjson_mut_doc_imut_copy() : yyjson.h
  • yyjson_mut_doc_mut_copy() : yyjson.h
  • yyjson_mut_doc_new() : yyjson.h
  • yyjson_mut_doc_set_root() : yyjson.h
  • @@ -270,6 +271,8 @@

    - y -

    • yyjson_mut_obj_remove_keyn() : yyjson.h
    • yyjson_mut_obj_remove_str() : yyjson.h
    • yyjson_mut_obj_remove_strn() : yyjson.h
    • +
    • yyjson_mut_obj_rename_key() : yyjson.h
    • +
    • yyjson_mut_obj_rename_keyn() : yyjson.h
    • yyjson_mut_obj_replace() : yyjson.h
    • yyjson_mut_obj_rotate() : yyjson.h
    • yyjson_mut_obj_size() : yyjson.h
    • @@ -279,7 +282,19 @@

      - y -

      • yyjson_mut_rawcpy() : yyjson.h
      • yyjson_mut_rawn() : yyjson.h
      • yyjson_mut_rawncpy() : yyjson.h
      • +
      • yyjson_mut_read_number() : yyjson.h
      • yyjson_mut_real() : yyjson.h
      • +
      • yyjson_mut_set_arr() : yyjson.h
      • +
      • yyjson_mut_set_bool() : yyjson.h
      • +
      • yyjson_mut_set_int() : yyjson.h
      • +
      • yyjson_mut_set_null() : yyjson.h
      • +
      • yyjson_mut_set_obj() : yyjson.h
      • +
      • yyjson_mut_set_raw() : yyjson.h
      • +
      • yyjson_mut_set_real() : yyjson.h
      • +
      • yyjson_mut_set_sint() : yyjson.h
      • +
      • yyjson_mut_set_str() : yyjson.h
      • +
      • yyjson_mut_set_strn() : yyjson.h
      • +
      • yyjson_mut_set_uint() : yyjson.h
      • yyjson_mut_sint() : yyjson.h
      • yyjson_mut_str() : yyjson.h
      • yyjson_mut_strcpy() : yyjson.h
      • @@ -287,6 +302,7 @@

        - y -

        • yyjson_mut_strncpy() : yyjson.h
        • yyjson_mut_true() : yyjson.h
        • yyjson_mut_uint() : yyjson.h
        • +
        • yyjson_mut_val_imut_copy() : yyjson.h
        • yyjson_mut_val_mut_copy() : yyjson.h
        • yyjson_mut_val_write() : yyjson.h
        • yyjson_mut_val_write_file() : yyjson.h
        • @@ -306,7 +322,17 @@

          - y -

          • yyjson_read() : yyjson.h
          • yyjson_read_file() : yyjson.h
          • yyjson_read_max_memory_usage() : yyjson.h
          • +
          • yyjson_read_number() : yyjson.h
          • yyjson_read_opts() : yyjson.h
          • +
          • yyjson_set_bool() : yyjson.h
          • +
          • yyjson_set_int() : yyjson.h
          • +
          • yyjson_set_null() : yyjson.h
          • +
          • yyjson_set_raw() : yyjson.h
          • +
          • yyjson_set_real() : yyjson.h
          • +
          • yyjson_set_sint() : yyjson.h
          • +
          • yyjson_set_str() : yyjson.h
          • +
          • yyjson_set_strn() : yyjson.h
          • +
          • yyjson_set_uint() : yyjson.h
          • yyjson_val_mut_copy() : yyjson.h
          • yyjson_val_write() : yyjson.h
          • yyjson_val_write_file() : yyjson.h
          • diff --git a/doc/doxygen/html/globals_type.html b/doc/doxygen/html/globals_type.html index 2f04631..c648d76 100644 --- a/doc/doxygen/html/globals_type.html +++ b/doc/doxygen/html/globals_type.html @@ -35,7 +35,7 @@ -
            yyjson 0.5.1 +
            yyjson 0.6.0
            A high performance C JSON library.
            diff --git a/doc/doxygen/html/globals_vars.html b/doc/doxygen/html/globals_vars.html index ff2c767..7e13cc2 100644 --- a/doc/doxygen/html/globals_vars.html +++ b/doc/doxygen/html/globals_vars.html @@ -35,7 +35,7 @@ -
            yyjson 0.5.1 +
            yyjson 0.6.0
            A high performance C JSON library.
            @@ -119,7 +119,7 @@

            - y -

            • YYJSON_READ_STOP_WHEN_DONE : yyjson.h
            • YYJSON_READ_SUCCESS : yyjson.h
            • YYJSON_WRITE_ALLOW_INF_AND_NAN : yyjson.h
            • -
            • YYJSON_WRITE_ALLOW_INVALID_UNICODE : yyjson.h
            • +
            • YYJSON_WRITE_ALLOW_INVALID_UNICODE : yyjson.h
            • YYJSON_WRITE_ERROR_FILE_OPEN : yyjson.h
            • YYJSON_WRITE_ERROR_FILE_WRITE : yyjson.h
            • YYJSON_WRITE_ERROR_INVALID_PARAMETER : yyjson.h
            • diff --git a/doc/doxygen/html/globals_y.html b/doc/doxygen/html/globals_y.html index 29e1ec8..dc451ba 100644 --- a/doc/doxygen/html/globals_y.html +++ b/doc/doxygen/html/globals_y.html @@ -35,7 +35,7 @@ -
              yyjson 0.5.1 +
              yyjson 0.6.0
              A high performance C JSON library.
              @@ -213,6 +213,7 @@

              - y -

              • yyjson_mut_doc_get_pointer() : yyjson.h
              • yyjson_mut_doc_get_pointern() : yyjson.h
              • yyjson_mut_doc_get_root() : yyjson.h
              • +
              • yyjson_mut_doc_imut_copy() : yyjson.h
              • yyjson_mut_doc_mut_copy() : yyjson.h
              • yyjson_mut_doc_new() : yyjson.h
              • yyjson_mut_doc_set_root() : yyjson.h
              • @@ -284,6 +285,8 @@

                - y -

                • yyjson_mut_obj_remove_keyn() : yyjson.h
                • yyjson_mut_obj_remove_str() : yyjson.h
                • yyjson_mut_obj_remove_strn() : yyjson.h
                • +
                • yyjson_mut_obj_rename_key() : yyjson.h
                • +
                • yyjson_mut_obj_rename_keyn() : yyjson.h
                • yyjson_mut_obj_replace() : yyjson.h
                • yyjson_mut_obj_rotate() : yyjson.h
                • yyjson_mut_obj_size() : yyjson.h
                • @@ -293,7 +296,19 @@

                  - y -

                  • yyjson_mut_rawcpy() : yyjson.h
                  • yyjson_mut_rawn() : yyjson.h
                  • yyjson_mut_rawncpy() : yyjson.h
                  • +
                  • yyjson_mut_read_number() : yyjson.h
                  • yyjson_mut_real() : yyjson.h
                  • +
                  • yyjson_mut_set_arr() : yyjson.h
                  • +
                  • yyjson_mut_set_bool() : yyjson.h
                  • +
                  • yyjson_mut_set_int() : yyjson.h
                  • +
                  • yyjson_mut_set_null() : yyjson.h
                  • +
                  • yyjson_mut_set_obj() : yyjson.h
                  • +
                  • yyjson_mut_set_raw() : yyjson.h
                  • +
                  • yyjson_mut_set_real() : yyjson.h
                  • +
                  • yyjson_mut_set_sint() : yyjson.h
                  • +
                  • yyjson_mut_set_str() : yyjson.h
                  • +
                  • yyjson_mut_set_strn() : yyjson.h
                  • +
                  • yyjson_mut_set_uint() : yyjson.h
                  • yyjson_mut_sint() : yyjson.h
                  • yyjson_mut_str() : yyjson.h
                  • yyjson_mut_strcpy() : yyjson.h
                  • @@ -301,6 +316,7 @@

                    - y -

                    • yyjson_mut_strncpy() : yyjson.h
                    • yyjson_mut_true() : yyjson.h
                    • yyjson_mut_uint() : yyjson.h
                    • +
                    • yyjson_mut_val_imut_copy() : yyjson.h
                    • yyjson_mut_val_mut_copy() : yyjson.h
                    • yyjson_mut_val_write() : yyjson.h
                    • yyjson_mut_val_write_file() : yyjson.h
                    • @@ -344,10 +360,20 @@

                      - y -

                      • YYJSON_READ_INSITU : yyjson.h
                      • yyjson_read_max_memory_usage() : yyjson.h
                      • YYJSON_READ_NOFLAG : yyjson.h
                      • +
                      • yyjson_read_number() : yyjson.h
                      • YYJSON_READ_NUMBER_AS_RAW : yyjson.h
                      • yyjson_read_opts() : yyjson.h
                      • YYJSON_READ_STOP_WHEN_DONE : yyjson.h
                      • YYJSON_READ_SUCCESS : yyjson.h
                      • +
                      • yyjson_set_bool() : yyjson.h
                      • +
                      • yyjson_set_int() : yyjson.h
                      • +
                      • yyjson_set_null() : yyjson.h
                      • +
                      • yyjson_set_raw() : yyjson.h
                      • +
                      • yyjson_set_real() : yyjson.h
                      • +
                      • yyjson_set_sint() : yyjson.h
                      • +
                      • yyjson_set_str() : yyjson.h
                      • +
                      • yyjson_set_strn() : yyjson.h
                      • +
                      • yyjson_set_uint() : yyjson.h
                      • YYJSON_STDC_VER : yyjson.h
                      • yyjson_subtype : yyjson.h
                      • yyjson_type : yyjson.h
                      • @@ -365,7 +391,7 @@

                        - y -

                        • YYJSON_VERSION_STRING : yyjson.h
                        • yyjson_write() : yyjson.h
                        • YYJSON_WRITE_ALLOW_INF_AND_NAN : yyjson.h
                        • -
                        • YYJSON_WRITE_ALLOW_INVALID_UNICODE : yyjson.h
                        • +
                        • YYJSON_WRITE_ALLOW_INVALID_UNICODE : yyjson.h
                        • yyjson_write_code : yyjson.h
                        • YYJSON_WRITE_ERROR_FILE_OPEN : yyjson.h
                        • YYJSON_WRITE_ERROR_FILE_WRITE : yyjson.h
                        • diff --git a/doc/doxygen/html/index.html b/doc/doxygen/html/index.html index dd8fc7d..8d3bb2e 100644 --- a/doc/doxygen/html/index.html +++ b/doc/doxygen/html/index.html @@ -35,7 +35,7 @@ -
                          yyjson 0.5.1 +
                          yyjson 0.6.0
                          A high performance C JSON library.
                          @@ -106,7 +106,7 @@

                        • Standard: strict compliance with RFC 8259 standard.
                        • Safe: complete JSON form, number format and UTF-8 validation.
                        • Accuracy: can read and write int64, uint64 and double numbers accurately.
                        • -
                        • Less Restriction: support unlimited JSON level, \u0000 and non null-terminated string.
                        • +
                        • Flexible: support unlimited JSON level, \u0000 and non null-terminated string.
                        • Extendable: options to allow comments, trailing commas, nan/inf, custom memory allocator.
                        • Developer Friendly: only one h and one c file, easy to integrate.
                        @@ -226,16 +226,16 @@

                        // All functions accept NULL input, and return NULL on error.
                        -
                        yyjson_api_inline yyjson_val * yyjson_obj_get(yyjson_val *obj, const char *key)
                        Definition: yyjson.h:3716
                        -
                        yyjson_api_inline int yyjson_get_int(yyjson_val *val)
                        Definition: yyjson.h:3577
                        -
                        #define yyjson_arr_foreach(arr, idx, max, val)
                        Definition: yyjson.h:1440
                        -
                        yyjson_api_inline const char * yyjson_get_str(yyjson_val *val)
                        Definition: yyjson.h:3585
                        -
                        yyjson_api_inline yyjson_val * yyjson_doc_get_root(yyjson_doc *doc)
                        Definition: yyjson.h:3445
                        -
                        yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc)
                        Definition: yyjson.h:3457
                        -
                        yyjson_api_inline size_t yyjson_get_len(yyjson_val *val)
                        Definition: yyjson.h:3589
                        -
                        yyjson_api_inline yyjson_doc * yyjson_read(const char *dat, size_t len, yyjson_read_flag flg)
                        Definition: yyjson.h:738
                        -
                        Definition: yyjson.h:3274
                        -
                        Definition: yyjson.h:3269
                        +
                        yyjson_api_inline yyjson_val * yyjson_obj_get(yyjson_val *obj, const char *key)
                        Definition: yyjson.h:4049
                        +
                        yyjson_api_inline int yyjson_get_int(yyjson_val *val)
                        Definition: yyjson.h:3854
                        +
                        #define yyjson_arr_foreach(arr, idx, max, val)
                        Definition: yyjson.h:1537
                        +
                        yyjson_api_inline const char * yyjson_get_str(yyjson_val *val)
                        Definition: yyjson.h:3862
                        +
                        yyjson_api_inline yyjson_val * yyjson_doc_get_root(yyjson_doc *doc)
                        Definition: yyjson.h:3722
                        +
                        yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc)
                        Definition: yyjson.h:3734
                        +
                        yyjson_api_inline size_t yyjson_get_len(yyjson_val *val)
                        Definition: yyjson.h:3866
                        +
                        yyjson_api_inline yyjson_doc * yyjson_read(const char *dat, size_t len, yyjson_read_flag flg)
                        Definition: yyjson.h:741
                        +
                        Definition: yyjson.h:3478
                        +
                        Definition: yyjson.h:3473

              Write JSON string

              // Create a mutable doc
              @@ -261,17 +261,17 @@

              // Free the doc
              -
              yyjson_api_inline bool yyjson_mut_obj_add_val(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, yyjson_mut_val *val)
              Definition: yyjson.h:5432
              -
              yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint32(yyjson_mut_doc *doc, const int32_t *vals, size_t count)
              Definition: yyjson.h:4424
              -
              yyjson_api_inline bool yyjson_mut_obj_add_int(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, int64_t val)
              Definition: yyjson.h:5363
              -
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj(yyjson_mut_doc *doc)
              Definition: yyjson.h:5026
              +
              yyjson_api_inline bool yyjson_mut_obj_add_val(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, yyjson_mut_val *val)
              Definition: yyjson.h:5836
              +
              yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint32(yyjson_mut_doc *doc, const int32_t *vals, size_t count)
              Definition: yyjson.h:4828
              +
              yyjson_api_inline bool yyjson_mut_obj_add_int(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, int64_t val)
              Definition: yyjson.h:5767
              +
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj(yyjson_mut_doc *doc)
              Definition: yyjson.h:5430
              yyjson_api void yyjson_mut_doc_free(yyjson_mut_doc *doc)
              -
              yyjson_api_inline char * yyjson_mut_write(const yyjson_mut_doc *doc, yyjson_write_flag flg, size_t *len)
              Definition: yyjson.h:1033
              -
              yyjson_api_inline void yyjson_mut_doc_set_root(yyjson_mut_doc *doc, yyjson_mut_val *root)
              Definition: yyjson.h:3934
              -
              yyjson_api_inline bool yyjson_mut_obj_add_str(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val)
              Definition: yyjson.h:5383
              +
              yyjson_api_inline char * yyjson_mut_write(const yyjson_mut_doc *doc, yyjson_write_flag flg, size_t *len)
              Definition: yyjson.h:1083
              +
              yyjson_api_inline void yyjson_mut_doc_set_root(yyjson_mut_doc *doc, yyjson_mut_val *root)
              Definition: yyjson.h:4269
              +
              yyjson_api_inline bool yyjson_mut_obj_add_str(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val)
              Definition: yyjson.h:5787
              yyjson_api yyjson_mut_doc * yyjson_mut_doc_new(const yyjson_alc *alc)
              -
              Definition: yyjson.h:3873
              -
              Definition: yyjson.h:3829
              +
              Definition: yyjson.h:4206
              +
              Definition: yyjson.h:4162

              Read JSON file with options

              // Read JSON file, allowing comments and trailing commas
              @@ -295,19 +295,19 @@

              // Free the doc
              -
              static const yyjson_read_flag YYJSON_READ_ALLOW_TRAILING_COMMAS
              Definition: yyjson.h:588
              -
              yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, yyjson_obj_iter *iter)
              Definition: yyjson.h:3752
              -
              yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val(yyjson_val *key)
              Definition: yyjson.h:3779
              -
              uint32_t yyjson_read_flag
              Definition: yyjson.h:561
              -
              yyjson_api_inline const char * yyjson_get_type_desc(yyjson_val *val)
              Definition: yyjson.h:3545
              -
              yyjson_read_code code
              Definition: yyjson.h:661
              -
              yyjson_api_inline yyjson_val * yyjson_obj_iter_next(yyjson_obj_iter *iter)
              Definition: yyjson.h:3769
              +
              static const yyjson_read_flag YYJSON_READ_ALLOW_TRAILING_COMMAS
              Definition: yyjson.h:591
              +
              yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, yyjson_obj_iter *iter)
              Definition: yyjson.h:4085
              +
              yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val(yyjson_val *key)
              Definition: yyjson.h:4112
              +
              uint32_t yyjson_read_flag
              Definition: yyjson.h:564
              +
              yyjson_api_inline const char * yyjson_get_type_desc(yyjson_val *val)
              Definition: yyjson.h:3822
              +
              yyjson_read_code code
              Definition: yyjson.h:664
              +
              yyjson_api_inline yyjson_val * yyjson_obj_iter_next(yyjson_obj_iter *iter)
              Definition: yyjson.h:4102
              yyjson_api yyjson_doc * yyjson_read_file(const char *path, yyjson_read_flag flg, const yyjson_alc *alc, yyjson_read_err *err)
              -
              size_t pos
              Definition: yyjson.h:665
              -
              const char * msg
              Definition: yyjson.h:663
              -
              static const yyjson_read_flag YYJSON_READ_ALLOW_COMMENTS
              Definition: yyjson.h:591
              -
              Definition: yyjson.h:3745
              -
              Definition: yyjson.h:659
              +
              size_t pos
              Definition: yyjson.h:668
              +
              const char * msg
              Definition: yyjson.h:666
              +
              static const yyjson_read_flag YYJSON_READ_ALLOW_COMMENTS
              Definition: yyjson.h:594
              +
              Definition: yyjson.h:4078
              +
              Definition: yyjson.h:662

              Write JSON file with options

              // Read the JSON file as a mutable doc
              @@ -338,20 +338,20 @@

              yyjson_api yyjson_mut_doc * yyjson_doc_mut_copy(yyjson_doc *doc, const yyjson_alc *alc)
              -
              yyjson_api_inline bool yyjson_mut_is_null(yyjson_mut_val *val)
              Definition: yyjson.h:3949
              -
              const char * msg
              Definition: yyjson.h:875
              -
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_next(yyjson_mut_obj_iter *iter)
              Definition: yyjson.h:4959
              -
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_remove(yyjson_mut_obj_iter *iter)
              Definition: yyjson.h:4976
              -
              yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_root(yyjson_mut_doc *doc)
              Definition: yyjson.h:3930
              -
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get_val(yyjson_mut_val *key)
              Definition: yyjson.h:4971
              -
              static const yyjson_write_flag YYJSON_WRITE_ESCAPE_UNICODE
              Definition: yyjson.h:822
              +
              yyjson_api_inline bool yyjson_mut_is_null(yyjson_mut_val *val)
              Definition: yyjson.h:4284
              +
              const char * msg
              Definition: yyjson.h:925
              +
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_next(yyjson_mut_obj_iter *iter)
              Definition: yyjson.h:5363
              +
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_remove(yyjson_mut_obj_iter *iter)
              Definition: yyjson.h:5380
              +
              yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_root(yyjson_mut_doc *doc)
              Definition: yyjson.h:4265
              +
              yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get_val(yyjson_mut_val *key)
              Definition: yyjson.h:5375
              +
              static const yyjson_write_flag YYJSON_WRITE_ESCAPE_UNICODE
              Definition: yyjson.h:872
              yyjson_api bool yyjson_mut_write_file(const char *path, const yyjson_mut_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
              -
              yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, yyjson_mut_obj_iter *iter)
              Definition: yyjson.h:4941
              -
              yyjson_write_code code
              Definition: yyjson.h:873
              -
              static const yyjson_write_flag YYJSON_WRITE_PRETTY
              Definition: yyjson.h:819
              -
              uint32_t yyjson_write_flag
              Definition: yyjson.h:809
              -
              Definition: yyjson.h:4933
              -
              Definition: yyjson.h:871
              +
              yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, yyjson_mut_obj_iter *iter)
              Definition: yyjson.h:5345
              +
              yyjson_write_code code
              Definition: yyjson.h:923
              +
              static const yyjson_write_flag YYJSON_WRITE_PRETTY
              Definition: yyjson.h:869
              +
              uint32_t yyjson_write_flag
              Definition: yyjson.h:859
              +
              Definition: yyjson.h:5337
              +
              Definition: yyjson.h:921

              Documentation

                diff --git a/doc/doxygen/html/md__c_h_a_n_g_e_l_o_g.html b/doc/doxygen/html/md__c_h_a_n_g_e_l_o_g.html index 9827c74..c912c0f 100644 --- a/doc/doxygen/html/md__c_h_a_n_g_e_l_o_g.html +++ b/doc/doxygen/html/md__c_h_a_n_g_e_l_o_g.html @@ -35,7 +35,7 @@ -
                yyjson 0.5.1 +
                yyjson 0.6.0
                A high performance C JSON library.
                @@ -97,17 +97,35 @@

                All notable changes to this project will be documented in this file.

                -

                +

                +0.6.0 (2022-12-12)

                +

                +Added

                + +

                +Fixed

                +
                  +
                • Fix quite NaN on MIPS and HPPA arch.
                • +
                • Fixed compile error before GCC 4.5 which doesn't support empty optional extended asm label.
                • +
                • When built-in floating point conversion is disabled, sprintf() output for floating point numbers is missing a decimal point, for example 123 should be 123.0.
                • +
                +

                0.5.1 (2022-06-17)

                -

                +

                Fixed

                • Fix run-time error when compiling as cpp and 32-bit (g++-5 -m32 -fPIC) #85
                • Fix incurrect output number format, remove unnecessary digits (e.g. 2.0e34 -> 2e34).
                -

                +

                0.5.0 (2022-05-25)

                -

                +

                Added

                • Add LibFuzzer support.
                • @@ -119,14 +137,14 @@

                • Add YYJSON_READ_NUMBER_AS_RAW option and RAW type support.
                • Add YYJSON_READ_ALLOW_INVALID_UNICODE and YYJSON_WRITE_ALLOW_INVALID_UNICODE options to allow invalid unicode.
                -

                +

                Changed

                • Change yyjson_mut_obj_remove() return type from bool to yyjson_mut_val *.
                • Rewrite string serialization function, validate unicode encoding by default.
                • Rewrite the JSON Pointer implementation, remove internal malloc() calls.
                -

                +

                Fixed

                • Make the code work correctly with setlocale() function and fast-math flag: #54
                • @@ -134,9 +152,9 @@

                • Fix non null-terminated string write error.
                • Fix incorrect behavior of YYJSON_DISABLE_NON_STANDARD flag: #80
                -

                +

                0.4.0 (2021-12-12)

                -

                +

                Added

                -

                +

                Changed

                • Replace YYJSON_DISABLE_COMMENT_READER and YYJSON_DISABLE_INF_AND_NAN_READER with YYJSON_DISABLE_NON_STANDARD compiler flag.
                • Replace YYJSON_DISABLE_FP_READER and YYJSON_DISABLE_FP_WRITER with YYJSON_DISABLE_FAST_FP_CONV compiler flag.
                -

                +

                Fixed

                • Fix compiler warning with -Wconversion
                • Fix compiler error for GCC 4.4 (#53) and MSVC 6.0 (#55)
                -

                +

                0.3.0 (2021-05-25)

                -

                +

                Added

                • Add JSON Pointer support.
                • Add CMake install target.
                -

                +

                Changed

                • Improve performance for some arch which doesn't support unaligned memory access.
                -

                +

                Fixed

                • Fix some compiler warning for GCC and Clang.
                • Fix MSVC build error on UWP (uninitialized local variable).
                • Fix stream file reading error on some platform.
                -

                +

                0.2.0 (2020-12-12)

                -

                +

                Added

                • Add swift package manager support.
                -

                +

                Changed

                • Improve JSON reader performance for gcc.
                • @@ -192,19 +210,19 @@

                • Rewrite double number writer with Schubfach algorithm: #4.
                • Strict UTF-8 validation for JSON reader.
                -

                +

                Removed

                • Remove YYJSON_READ_FASTFP compiler flag.
                -

                +

                Fixed

                • Fix a compile error for old version gcc on linux: #7.
                -

                +

                0.1.0 (2020-10-26)

                -

                +

                Added

                • Initial release.
                • diff --git a/doc/doxygen/html/md_doc__a_p_i.html b/doc/doxygen/html/md_doc__a_p_i.html index 82bbeb7..d9151b8 100644 --- a/doc/doxygen/html/md_doc__a_p_i.html +++ b/doc/doxygen/html/md_doc__a_p_i.html @@ -35,7 +35,7 @@ -
                  yyjson 0.5.1 +
                  yyjson 0.6.0
                  A high performance C JSON library.
                  @@ -96,78 +96,83 @@
                  API
                  -

                  +

                  API Design

                  -

                  +

                  API prefix

                  All public functions and structs are prefixed with yyjson_, and all constants are prefixed with YYJSON_.

                  -

                  +

                  API for immutable/mutable data

                  -

                  yyjson have 2 types of data structures: immutable and mutable:

                  +

                  The library have 2 types of data structures: immutable and mutable:

                  - + - +
                  type immutable mutable
                  JSON value yyjson_val yyjson_mut_val
                  document yyjson_doc yyjson_mut_doc
                  JSON document yyjson_doc yyjson_mut_doc
                  value yyjson_val yyjson_mut_val
                  -

                  When reading a JSON, yyjson returns immutable document and values;
                  - When building a JSON, yyjson creates mutable document and values;
                  - The document holds memory for all its JSON values and strings.
                  +

                  When reading a JSON, yyjson returns immutable documents and values;
                  + When building a JSON, yyjson creates mutable documents and values;
                  + The document holds the memory for all its JSON values and strings.

                  For most immutable APIs, you can just add a mut after yyjson_ to get the mutable version, for example:

                  char *yyjson_write(yyjson_doc *doc, ...);
                  -
                  yyjson_api_inline bool yyjson_is_str(yyjson_val *val)
                  Definition: yyjson.h:3511
                  -
                  yyjson_api_inline char * yyjson_mut_write(const yyjson_mut_doc *doc, yyjson_write_flag flg, size_t *len)
                  Definition: yyjson.h:1033
                  -
                  yyjson_api_inline char * yyjson_write(const yyjson_doc *doc, yyjson_write_flag flg, size_t *len)
                  Definition: yyjson.h:953
                  -
                  yyjson_api_inline bool yyjson_mut_is_str(yyjson_mut_val *val)
                  Definition: yyjson.h:3985
                  -
                  Definition: yyjson.h:3274
                  -
                  Definition: yyjson.h:3873
                  -
                  Definition: yyjson.h:3829
                  -
                  Definition: yyjson.h:3269
                  -

                  yyjson also provides some functions to convert immutable into mutable:
                  +

                  yyjson_api_inline bool yyjson_is_str(yyjson_val *val)
                  Definition: yyjson.h:3788
                  +
                  yyjson_api_inline char * yyjson_mut_write(const yyjson_mut_doc *doc, yyjson_write_flag flg, size_t *len)
                  Definition: yyjson.h:1083
                  +
                  yyjson_api_inline char * yyjson_write(const yyjson_doc *doc, yyjson_write_flag flg, size_t *len)
                  Definition: yyjson.h:1003
                  +
                  yyjson_api_inline bool yyjson_mut_is_str(yyjson_mut_val *val)
                  Definition: yyjson.h:4320
                  +
                  Definition: yyjson.h:3478
                  +
                  Definition: yyjson.h:4206
                  +
                  Definition: yyjson.h:4162
                  +
                  Definition: yyjson.h:3473
                  +

                  The library also provides some functions to convert values between immutable and mutable:

                  -
                  - -
                  Definition: yyjson.h:474
                  +
                  // doc -> mut_doc
                  + +
                  // val -> mut_val
                  + +
                  +
                  // mut_doc -> doc
                  + +
                  // mut_val -> val
                  +
                  yyjson_api yyjson_mut_val * yyjson_val_mut_copy(yyjson_mut_doc *doc, yyjson_val *val)
                  yyjson_api yyjson_mut_doc * yyjson_doc_mut_copy(yyjson_doc *doc, const yyjson_alc *alc)
                  -

                  +
                  yyjson_api yyjson_doc * yyjson_mut_doc_imut_copy(yyjson_mut_doc *doc, const yyjson_alc *alc)
                  +
                  yyjson_api yyjson_doc * yyjson_mut_val_imut_copy(yyjson_mut_val *val, const yyjson_alc *alc)
                  +

                  API for string

                  -

                  yyjson supports strings with or without null-terminator.
                  - When you need to use a non null-terminated string, or you know the length of the string explicitly, you can use a function that ends with n, for example:

                  // null-terminated is required
                  +

                  The library supports strings with or without null-terminator ('\0').
                  + When you need to use a string without null terminator, or you know the length of the string explicitly, you can use the function that ends with n, for example:

                  // null-terminator is required
                  bool yyjson_equals_str(yyjson_val *val, const char *str);
                  -
                  -
                  // null-terminator is not required
                  +
                  // null-terminator is optional
                  bool yyjson_equals_strn(yyjson_val *val, const char *str, size_t len);
                  -
                  yyjson_api_inline bool yyjson_equals_str(yyjson_val *val, const char *str)
                  Definition: yyjson.h:3593
                  -
                  yyjson_api_inline bool yyjson_equals_strn(yyjson_val *val, const char *str, size_t len)
                  Definition: yyjson.h:3600
                  +
                  yyjson_api_inline bool yyjson_equals_str(yyjson_val *val, const char *str)
                  Definition: yyjson.h:3870
                  +
                  yyjson_api_inline bool yyjson_equals_strn(yyjson_val *val, const char *str, size_t len)
                  Definition: yyjson.h:3877

                  When creating JSON, yyjson treats strings as constants for better performance. When your string will be modified, you should use a function with a cpy to copy the string to the document, for example:

                  // reference only, null-terminated is required
                  -
                  -
                  // reference only, null-terminator is not required
                  +
                  // reference only, null-terminator is optional
                  yyjson_mut_val *yyjson_mut_strn(yyjson_mut_doc *doc, const char *str, size_t len);
                  // copied, null-terminated is required
                  -
                  -
                  // copied, null-terminator is not required
                  +
                  // copied, null-terminator is optional
                  yyjson_mut_val *yyjson_mut_strncpy(yyjson_mut_doc *doc, const char *str, size_t len);
                  -
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_strn(yyjson_mut_doc *doc, const char *str, size_t len)
                  Definition: yyjson.h:4216
                  -
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_strncpy(yyjson_mut_doc *doc, const char *str, size_t len)
                  Definition: yyjson.h:4236
                  -
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_strcpy(yyjson_mut_doc *doc, const char *str)
                  Definition: yyjson.h:4230
                  -
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_str(yyjson_mut_doc *doc, const char *str)
                  Definition: yyjson.h:4210
                  +
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_strn(yyjson_mut_doc *doc, const char *str, size_t len)
                  Definition: yyjson.h:4620
                  +
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_strncpy(yyjson_mut_doc *doc, const char *str, size_t len)
                  Definition: yyjson.h:4640
                  +
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_strcpy(yyjson_mut_doc *doc, const char *str)
                  Definition: yyjson.h:4634
                  +
                  yyjson_api_inline yyjson_mut_val * yyjson_mut_str(yyjson_mut_doc *doc, const char *str)
                  Definition: yyjson.h:4614

                  -

                  +

                  Read JSON

                  -

                  yyjson provides 3 methods for reading JSON,
                  - each method accepts an input of UTF-8 data or file,
                  - returns a document if succeeds, or returns NULL if fails.

                  -

                  +

                  The library provides 3 functions for reading JSON,
                  + each function accepts an input of UTF-8 data or a file,
                  + returns a document if it succeeds or returns NULL if it fails.

                  +

                  Read JSON from string

                  The dat should be a UTF-8 string, null-terminator is not required.
                  The len is the byte length of dat.
                  @@ -176,15 +181,15 @@

                  yyjson_doc *yyjson_read(const char *dat,
                  size_t len,
                  -
                  uint32_t yyjson_read_flag
                  Definition: yyjson.h:561
                  -
                  yyjson_api_inline yyjson_doc * yyjson_read(const char *dat, size_t len, yyjson_read_flag flg)
                  Definition: yyjson.h:738
                  +
                  uint32_t yyjson_read_flag
                  Definition: yyjson.h:564
                  +
                  yyjson_api_inline yyjson_doc * yyjson_read(const char *dat, size_t len, yyjson_read_flag flg)
                  Definition: yyjson.h:741

                  Sample code:

                  const char *str = "[1,2,3,4]";
                  yyjson_doc *doc = yyjson_read(str, strlen(str), 0);
                  if (doc) {...}
                  -
                  yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc)
                  Definition: yyjson.h:3457
                  -

                  +
                  yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc)
                  Definition: yyjson.h:3734
                  +

                  Read JSON from file

                  The path is JSON file path.
                  The flg is reader flag, pass 0 if you don't need it, see reader flag for details.
                  @@ -193,15 +198,16 @@

                  If input is invalid, NULL is returned.

                  yyjson_doc *yyjson_read_file(const char *path,
                  -
                  yyjson_alc *alc,
                  +
                  const yyjson_alc *alc,
                  +
                  Definition: yyjson.h:477
                  yyjson_api yyjson_doc * yyjson_read_file(const char *path, yyjson_read_flag flg, const yyjson_alc *alc, yyjson_read_err *err)
                  -
                  Definition: yyjson.h:659
                  +
                  Definition: yyjson.h:662

                  Sample code:

                  yyjson_doc *doc = yyjson_read_file("/tmp/test.json", 0, NULL, NULL);
                  if (doc) {...}
                  -

                  +

                  Read JSON with options

                  The dat should be a UTF-8 string, you can pass a const string if you don't use YYJSON_READ_INSITU flag.
                  The len is the dat's length in bytes.
                  @@ -212,7 +218,7 @@

                  size_t len,
                  -
                  yyjson_alc *alc,
                  +
                  const yyjson_alc *alc,
                  yyjson_api yyjson_doc * yyjson_read_opts(char *dat, size_t len, yyjson_read_flag flg, const yyjson_alc *alc, yyjson_read_err *err)

                  Sample code:

                  @@ -221,19 +227,19 @@

                  yyjson_err err;
                  -
                  yyjson_doc *doc = yyjson_read_opts(dat, len, flg, NULL, &err);
                  +
                  yyjson_doc *doc = yyjson_read_opts((char *)dat, len, flg, NULL, &err);
                  if (doc) {...}
                  else printf("read error: %s code: %u at position: %ld\n", err.msg, err.code, err.pos);
                  -
                  static const yyjson_read_flag YYJSON_READ_ALLOW_INF_AND_NAN
                  Definition: yyjson.h:595
                  -
                  static const yyjson_read_flag YYJSON_READ_ALLOW_COMMENTS
                  Definition: yyjson.h:591
                  -

                  +
                  static const yyjson_read_flag YYJSON_READ_ALLOW_INF_AND_NAN
                  Definition: yyjson.h:598
                  +
                  static const yyjson_read_flag YYJSON_READ_ALLOW_COMMENTS
                  Definition: yyjson.h:594
                  +

                Reader flag

                -

                yyjson provides a set of flags for JSON reader.
                +

                The library provides a set of flags for JSON reader.
                You can use a single flag, or combine multiple flags with bitwise | operator.

                -

                YYJSON_READ_NOFLAG
                +

                YYJSON_READ_NOFLAG = 0

                This is the default flag for JSON reader (RFC-8259 or ECMA-404 compliant):

                  @@ -247,24 +253,25 @@

                YYJSON_READ_INSITU
                Read the input data in-situ.
                - This option allows the reader to modify and use input data to store string values, which can increase reading speed slightly. The caller should hold the input data before free the document. The input data must be padded by at least YYJSON_PADDING_SIZE byte. For example: "[1,2]" should be "[1,2]\0\0\0\0", length should be 5.

                + This option allows the reader to modify and use input data to store string values, which can increase reading speed slightly. The caller should hold the input data before free the document. The input data must be padded by at least YYJSON_PADDING_SIZE byte. For example: [1,2] should be [1,2]\0\0\0\0, input length should be 5.

                Sample code:

                size_t dat_len = ...;
                -
                char *buf = malloc(dat_len + 4); // create a buffer larger than (len + 4)
                +
                char *buf = malloc(dat_len + YYJSON_PADDING_SIZE); // create a buffer larger than (len + 4)
                read_from_socket(buf, ...);
                -
                memset(buf + file_size, 0, 4); // set 4-byte padding after data
                +
                memset(buf + file_size, 0, YYJSON_PADDING_SIZE); // set 4-byte padding after data
                yyjson_doc *doc = yyjson_read_opts(buf, dat_len, YYJSON_READ_INSITU, NULL, NULL);
                if (doc) {...}
                free(buf); // the input dat should free after document.
                -
                static const yyjson_read_flag YYJSON_READ_INSITU
                Definition: yyjson.h:579
                +
                static const yyjson_read_flag YYJSON_READ_INSITU
                Definition: yyjson.h:582
                +
                #define YYJSON_PADDING_SIZE
                Definition: yyjson.h:463

                YYJSON_READ_STOP_WHEN_DONE
                Stop when done instead of issues an error if there's additional content after a JSON document.
                This option may used to parse small pieces of JSON in larger data, such as NDJSON.

                Sample code:

                -
                // single file with multiple json, such as:
                +
                // Single file with multiple JSON, such as:
                // [1,2,3] [4,5,6] {"a":"b"}
                size_t file_size = ...;
                @@ -284,8 +291,8 @@

                }
                free(dat);
                -
                yyjson_api_inline size_t yyjson_doc_get_read_size(yyjson_doc *doc)
                Definition: yyjson.h:3449
                -
                static const yyjson_read_flag YYJSON_READ_STOP_WHEN_DONE
                Definition: yyjson.h:584
                +
                yyjson_api_inline size_t yyjson_doc_get_read_size(yyjson_doc *doc)
                Definition: yyjson.h:3726
                +
                static const yyjson_read_flag YYJSON_READ_STOP_WHEN_DONE
                Definition: yyjson.h:587

                YYJSON_READ_ALLOW_TRAILING_COMMAS
                Allow single trailing comma at the end of an object or array, for example:

                {
                @@ -314,20 +321,23 @@

                }

                YYJSON_READ_NUMBER_AS_RAW
                Read numbers as raw strings without parsing, allowing you to keep arbitrarily large numbers.

                -

                You can use these functions to extract raw strings:

                bool yyjson_is_raw(yyjson_val *val);
                -
                const char *yyjson_get_raw(yyjson_val *val);
                -
                size_t yyjson_get_len(yyjson_val *val)
                +

                You can use these functions to extract raw strings:

                +
                const char *yyjson_get_raw(yyjson_val *val);
                + +
                yyjson_api_inline bool yyjson_is_raw(yyjson_val *val)
                Definition: yyjson.h:3748
                +
                yyjson_api_inline const char * yyjson_get_raw(yyjson_val *val)
                Definition: yyjson.h:3838
                +
                yyjson_api_inline size_t yyjson_get_len(yyjson_val *val)
                Definition: yyjson.h:3866

                YYJSON_READ_ALLOW_INVALID_UNICODE
                Allow reading invalid unicode when parsing string values (non-standard), for example:

                "\x80xyz"
                "\xF0\x81\x81\x81"

                Invalid characters will be allowed to appear in the string values, but invalid escape sequences will still be reported as errors. This flag does not affect the performance of correctly encoded strings.

                Warning: strings in JSON values may contain incorrect encoding when this option is used, you need to handle these strings carefully to avoid security risks.


                -

                +

                Write JSON

                -

                yyjson provides 3 methods for writing JSON,
                - each method accepts an input of JSON document or root value, returns a UTF-8 string or file.

                -

                +

                The library provides 3 sets of functions for writing JSON,
                + each function accepts an input of JSON document or root value, and returns a UTF-8 string or file.

                +

                Write JSON to string

                The doc/val is JSON document or root value, if you pass NULL, you will get NULL result.
                The flg is writer flag, pass 0 if you don't need it, see writer flag for details.
                @@ -335,22 +345,23 @@

                This function returns a new JSON string, or NULL if error occurs.
                The string is encoded as UTF-8 with a null-terminator.
                You should use free() or alc->free() to release it when it's no longer needed.

                -
                char *yyjson_write(const yyjson_doc *doc, yyjson_write_flag flg, size_t *len);
                -
                +
                // doc -> str
                +
                char *yyjson_write(const yyjson_doc *doc, yyjson_write_flag flg, size_t *len);
                +
                // mut_doc -> str
                char *yyjson_mut_write(const yyjson_mut_doc *doc, yyjson_write_flag flg, size_t *len);
                -
                +
                // val -> str
                char *yyjson_val_write(const yyjson_val *val, yyjson_write_flag flg, size_t *len);
                -
                +
                // mut_val -> str
                char *yyjson_mut_val_write(const yyjson_mut_val *val, yyjson_write_flag flg, size_t *len);
                -
                yyjson_api_inline char * yyjson_val_write(const yyjson_val *val, yyjson_write_flag flg, size_t *len)
                Definition: yyjson.h:1114
                -
                yyjson_api_inline char * yyjson_mut_val_write(const yyjson_mut_val *val, yyjson_write_flag flg, size_t *len)
                Definition: yyjson.h:1192
                -
                uint32_t yyjson_write_flag
                Definition: yyjson.h:809
                +
                yyjson_api_inline char * yyjson_val_write(const yyjson_val *val, yyjson_write_flag flg, size_t *len)
                Definition: yyjson.h:1164
                +
                yyjson_api_inline char * yyjson_mut_val_write(const yyjson_mut_val *val, yyjson_write_flag flg, size_t *len)
                Definition: yyjson.h:1242
                +
                uint32_t yyjson_write_flag
                Definition: yyjson.h:859

                Sample code 1:

                yyjson_doc *doc = yyjson_read("[1,2,3]", 7, 0);
                char *json = yyjson_write(doc, YYJSON_WRITE_PRETTY, NULL);
                printf("%s\n", json);
                free(json);
                -
                static const yyjson_write_flag YYJSON_WRITE_PRETTY
                Definition: yyjson.h:819
                +
                static const yyjson_write_flag YYJSON_WRITE_PRETTY
                Definition: yyjson.h:869

                Sample code 2:

                @@ -361,11 +372,11 @@

                char *json = yyjson_mut_write(doc, YYJSON_WRITE_PRETTY, NULL);
                printf("%s\n", json);
                free(json);
                -
                yyjson_api_inline void yyjson_mut_doc_set_root(yyjson_mut_doc *doc, yyjson_mut_val *root)
                Definition: yyjson.h:3934
                -
                yyjson_api_inline bool yyjson_mut_arr_add_int(yyjson_mut_doc *doc, yyjson_mut_val *arr, int64_t num)
                Definition: yyjson.h:4816
                +
                yyjson_api_inline void yyjson_mut_doc_set_root(yyjson_mut_doc *doc, yyjson_mut_val *root)
                Definition: yyjson.h:4269
                +
                yyjson_api_inline bool yyjson_mut_arr_add_int(yyjson_mut_doc *doc, yyjson_mut_val *arr, int64_t num)
                Definition: yyjson.h:5220
                yyjson_api yyjson_mut_doc * yyjson_mut_doc_new(const yyjson_alc *alc)
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr(yyjson_mut_doc *doc)
                Definition: yyjson.h:4354
                -

                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr(yyjson_mut_doc *doc)
                Definition: yyjson.h:4758
                +

                Write JSON to file

                The path is output JSON file path, If the path is invalid, you will get an error. If the file is not empty, the content will be discarded.
                The doc/val is JSON document or root value, if you pass NULL, you will get an error.
                @@ -374,39 +385,24 @@

                The err is a pointer to receive error message, pass NULL if you don't need it.
                This function returns true on success, or false if error occurs.

                -
                bool yyjson_write_file(const char *path,
                -
                const yyjson_doc *doc,
                - -
                const yyjson_alc *alc,
                - -
                -
                bool yyjson_mut_write_file(const char *path,
                -
                const yyjson_mut_doc *doc,
                - -
                const yyjson_alc *alc,
                - -
                -
                bool yyjson_val_write_file(const char *path,
                -
                const yyjson_val *val,
                - -
                const yyjson_alc *alc,
                - -
                -
                bool yyjson_mut_val_write_file(const char *path,
                -
                const yyjson_mut_val *val,
                - -
                const yyjson_alc *alc,
                - +
                // doc -> file
                +
                bool yyjson_write_file(const char *path, const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err);
                +
                // mut_doc -> file
                +
                bool yyjson_mut_write_file(const char *path, const yyjson_mut_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err);
                +
                // val -> file
                +
                bool yyjson_val_write_file(const char *path, const yyjson_val *val, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err);
                +
                // mut_val -> file
                +
                bool yyjson_mut_val_write_file(const char *path, const yyjson_mut_val *val, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err);
                yyjson_api bool yyjson_write_file(const char *path, const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
                yyjson_api bool yyjson_val_write_file(const char *path, const yyjson_val *val, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
                yyjson_api bool yyjson_mut_write_file(const char *path, const yyjson_mut_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
                yyjson_api bool yyjson_mut_val_write_file(const char *path, const yyjson_mut_val *val, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
                -
                Definition: yyjson.h:871
                +
                Definition: yyjson.h:921

                Sample code:

                yyjson_doc *doc = yyjson_read_file("/tmp/test.json", 0, NULL, NULL);
                bool suc = yyjson_write_file("tmp/test.json", doc, YYJSON_WRITE_PRETTY, NULL, NULL);
                if (suc) printf("OK");
                -

                +

                Write JSON with options

                The doc/val is JSON document or root value, if you pass NULL, you will get NULL result.
                The flg is writer flag, pass 0 if you don't need it, see writer flag for details.
                @@ -417,29 +413,13 @@

                This function returns a new JSON string, or NULL if error occurs.
                The string is encoded as UTF-8 with a null-terminator.
                You should use free() or alc->free() to release it when it's no longer needed.

                -
                char *yyjson_write_opts(const yyjson_doc *doc,
                - -
                const yyjson_alc *alc,
                -
                size_t *len,
                - -
                - - -
                const yyjson_alc *alc,
                -
                size_t *len,
                - -
                - - -
                const yyjson_alc *alc,
                -
                size_t *len,
                - -
                - - -
                const yyjson_alc *alc,
                -
                size_t *len,
                - +
                char *yyjson_write_opts(const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err);
                +
                +
                char *yyjson_mut_write_opts(const yyjson_mut_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err);
                +
                +
                char *yyjson_val_write_opts(const yyjson_val *val, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err);
                +
                +
                char *yyjson_mut_val_write_opts(const yyjson_mut_val *val, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err);
                yyjson_api char * yyjson_write_opts(const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
                yyjson_api char * yyjson_val_write_opts(const yyjson_val *val, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
                yyjson_api char * yyjson_mut_write_opts(const yyjson_mut_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
                @@ -464,15 +444,15 @@

                printf("err: %u msg:%s\n", err.code, err.msg);
                }
                alc.free(alc.ctx, json);
                -
                void(* free)(void *ctx, void *ptr)
                Definition: yyjson.h:480
                -
                void * ctx
                Definition: yyjson.h:482
                -
                const char * msg
                Definition: yyjson.h:875
                +
                void(* free)(void *ctx, void *ptr)
                Definition: yyjson.h:483
                +
                void * ctx
                Definition: yyjson.h:485
                +
                const char * msg
                Definition: yyjson.h:925
                yyjson_api bool yyjson_alc_pool_init(yyjson_alc *alc, void *buf, size_t size)
                -
                static const yyjson_write_flag YYJSON_WRITE_ESCAPE_UNICODE
                Definition: yyjson.h:822
                -
                yyjson_write_code code
                Definition: yyjson.h:873
                -

                +
                static const yyjson_write_flag YYJSON_WRITE_ESCAPE_UNICODE
                Definition: yyjson.h:872
                +
                yyjson_write_code code
                Definition: yyjson.h:923
                +

                Writer flag

                -

                yyjson provides a set of flags for JSON writer.
                +

                The library provides a set of flags for JSON writer.
                You can use a single flag, or combine multiple flags with bitwise | operator.

                YYJSON_WRITE_NOFLAG = 0
                This is the default flag for JSON writer:

                @@ -493,252 +473,321 @@

                ["https://github.com"]
                ["https:\/\/github.com"]

                YYJSON_WRITE_ALLOW_INF_AND_NAN
                - Write inf/nan number as Infinity and NaN literals.
                - Note that this output is NOT standard JSON and may be rejected by other JSON libraries, for example:

                -
                {"not a number":NaN,"large number":Infinity}
                + Write inf/nan number as Infinity and NaN literals instead of reporting errors.
                +

                +

                Note that this output is NOT standard JSON and may be rejected by other JSON libraries, for example:

                +
                {"not_a_number":NaN,"large_number":Infinity}

                YYJSON_WRITE_INF_AND_NAN_AS_NULL
                - Write inf/nan number as null literal.
                + Write inf/nan number as null literal instead of reporting errors.
                This flag will override YYJSON_WRITE_ALLOW_INF_AND_NAN flag, for example:

                -
                {"not a number":null,"large number":null}
                +
                {"not_a_number":null,"large_number":null}

                YYJSON_WRITE_ALLOW_INVALID_UNICODE
                Allow invalid unicode when encoding string values.

                Invalid characters in string value will be copied byte by byte. If YYJSON_WRITE_ESCAPE_UNICODE flag is also set, invalid character will be escaped as \uFFFD (replacement character).

                This flag does not affect the performance of correctly encoded string.


                -

                +

                Access JSON Document

                -

                -JSON Document API

                -

                Returns the root value of this JSON document.

                -
                yyjson_api_inline yyjson_val * yyjson_doc_get_root(yyjson_doc *doc)
                Definition: yyjson.h:3445
                -

                Returns read size of input JSON data.

                Returns total value count in this JSON document.

                -
                yyjson_api_inline size_t yyjson_doc_get_val_count(yyjson_doc *doc)
                Definition: yyjson.h:3453
                -

                Release the JSON document and free the memory.

                -JSON Value API

                -

                Returns true if the JSON value is specified type.
                - Returns false if the input is NULL or not the specified type.
                -

                -

                This set of APIs also have version for mutable values, see mutable and immutable for details.

                -
                bool yyjson_is_null(yyjson_val *val); // null
                -
                bool yyjson_is_true(yyjson_val *val); // true
                -
                bool yyjson_is_false(yyjson_val *val); // false
                -
                bool yyjson_is_bool(yyjson_val *val); // true or false
                -
                bool yyjson_is_uint(yyjson_val *val); // unsigned integer
                -
                bool yyjson_is_sint(yyjson_val *val); // signed integer
                -
                bool yyjson_is_int(yyjson_val *val); // unsigned or signed integer
                -
                bool yyjson_is_real(yyjson_val *val); // double number
                -
                bool yyjson_is_num(yyjson_val *val); // integer or double number
                -
                bool yyjson_is_str(yyjson_val *val); // string
                -
                bool yyjson_is_arr(yyjson_val *val); // array
                -
                bool yyjson_is_obj(yyjson_val *val); // object
                -
                bool yyjson_is_ctn(yyjson_val *val); // array or object
                -
                yyjson_api_inline bool yyjson_is_ctn(yyjson_val *val)
                Definition: yyjson.h:3523
                -
                yyjson_api_inline bool yyjson_is_bool(yyjson_val *val)
                Definition: yyjson.h:3487
                -
                yyjson_api_inline bool yyjson_is_real(yyjson_val *val)
                Definition: yyjson.h:3503
                -
                yyjson_api_inline bool yyjson_is_int(yyjson_val *val)
                Definition: yyjson.h:3499
                -
                yyjson_api_inline bool yyjson_is_true(yyjson_val *val)
                Definition: yyjson.h:3479
                -
                yyjson_api_inline bool yyjson_is_false(yyjson_val *val)
                Definition: yyjson.h:3483
                -
                yyjson_api_inline bool yyjson_is_null(yyjson_val *val)
                Definition: yyjson.h:3475
                -
                yyjson_api_inline bool yyjson_is_sint(yyjson_val *val)
                Definition: yyjson.h:3495
                -
                yyjson_api_inline bool yyjson_is_uint(yyjson_val *val)
                Definition: yyjson.h:3491
                -
                yyjson_api_inline bool yyjson_is_arr(yyjson_val *val)
                Definition: yyjson.h:3515
                -
                yyjson_api_inline bool yyjson_is_num(yyjson_val *val)
                Definition: yyjson.h:3507
                -
                yyjson_api_inline bool yyjson_is_obj(yyjson_val *val)
                Definition: yyjson.h:3519
                +

                +JSON Document

                +

                You can access the content of a document with the following functions:

                // Get the root value of this JSON document.
                + +
                +
                // Get how many bytes are read when parsing JSON.
                +
                // e.g. "[1,2,3]" returns 7.
                + +
                +
                // Get total value count in this JSON document.
                +
                // e.g. "[1,2,3]" returns 4 (1 array and 3 numbers).
                + +
                yyjson_api_inline size_t yyjson_doc_get_val_count(yyjson_doc *doc)
                Definition: yyjson.h:3730
                +
                yyjson_api_inline yyjson_val * yyjson_doc_get_root(yyjson_doc *doc)
                Definition: yyjson.h:3722
                +

                A document holds all the memory for its internal values and strings. When you no longer need it, you should release the document and free up all the memory:

                // Free the document; if NULL is passed in, do nothing.
                +

                -JSON Value Content API

                -

                Returns the content or type of a JSON value.
                - This set of APIs also have version for mutable values, see mutable and immutable for details.

                -


                +JSON Value

                +

                The following functions can be used to determine the type of a JSON value.

                +
                // Returns the type and subtype of a JSON value.
                +
                // Returns 0 if the input is NULL.
                + + +
                +
                // Returns value's tag, see `Data Structures` doc for details.
                +
                uint8_t yyjson_get_tag(yyjson_val *val);
                +
                +
                // returns type description, such as:
                +
                // "null", "string", "array", "object", "true", "false",
                +
                // "uint", "sint", "real", "unknown"
                +
                const char *yyjson_get_type_desc(yyjson_val *val);
                +
                +
                // Returns true if the JSON value is specified type.
                +
                // Returns false if the input is NULL or not the specified type.
                +
                bool yyjson_is_null(yyjson_val *val); // null
                +
                bool yyjson_is_true(yyjson_val *val); // true
                +
                bool yyjson_is_false(yyjson_val *val); // false
                +
                bool yyjson_is_bool(yyjson_val *val); // true/false
                +
                bool yyjson_is_uint(yyjson_val *val); // uint64_t
                +
                bool yyjson_is_sint(yyjson_val *val); // int64_t
                +
                bool yyjson_is_int(yyjson_val *val); // uint64_t/int64_t
                +
                bool yyjson_is_real(yyjson_val *val); // double
                +
                bool yyjson_is_num(yyjson_val *val); // uint64_t/int64_t/double
                +
                bool yyjson_is_str(yyjson_val *val); // string
                +
                bool yyjson_is_arr(yyjson_val *val); // array
                +
                bool yyjson_is_obj(yyjson_val *val); // object
                +
                bool yyjson_is_ctn(yyjson_val *val); // array/object
                +
                uint8_t yyjson_subtype
                Definition: yyjson.h:444
                +
                yyjson_api_inline bool yyjson_is_ctn(yyjson_val *val)
                Definition: yyjson.h:3800
                +
                yyjson_api_inline uint8_t yyjson_get_tag(yyjson_val *val)
                Definition: yyjson.h:3818
                +
                yyjson_api_inline bool yyjson_is_bool(yyjson_val *val)
                Definition: yyjson.h:3764
                +
                yyjson_api_inline bool yyjson_is_real(yyjson_val *val)
                Definition: yyjson.h:3780
                +
                yyjson_api_inline const char * yyjson_get_type_desc(yyjson_val *val)
                Definition: yyjson.h:3822
                +
                uint8_t yyjson_type
                Definition: yyjson.h:433
                +
                yyjson_api_inline bool yyjson_is_int(yyjson_val *val)
                Definition: yyjson.h:3776
                +
                yyjson_api_inline bool yyjson_is_true(yyjson_val *val)
                Definition: yyjson.h:3756
                +
                yyjson_api_inline bool yyjson_is_false(yyjson_val *val)
                Definition: yyjson.h:3760
                +
                yyjson_api_inline yyjson_subtype yyjson_get_subtype(yyjson_val *val)
                Definition: yyjson.h:3814
                +
                yyjson_api_inline yyjson_type yyjson_get_type(yyjson_val *val)
                Definition: yyjson.h:3810
                +
                yyjson_api_inline bool yyjson_is_null(yyjson_val *val)
                Definition: yyjson.h:3752
                +
                yyjson_api_inline bool yyjson_is_sint(yyjson_val *val)
                Definition: yyjson.h:3772
                +
                yyjson_api_inline bool yyjson_is_uint(yyjson_val *val)
                Definition: yyjson.h:3768
                +
                yyjson_api_inline bool yyjson_is_arr(yyjson_val *val)
                Definition: yyjson.h:3792
                +
                yyjson_api_inline bool yyjson_is_num(yyjson_val *val)
                Definition: yyjson.h:3784
                +
                yyjson_api_inline bool yyjson_is_obj(yyjson_val *val)
                Definition: yyjson.h:3796
                +

                The following functions can be used to get the contents of the JSON value.

                +
                // Returns bool value, or false if `val` is not bool type.
                + +
                +
                // Returns uint64_t value, or 0 if `val` is not uint type.
                +
                uint64_t yyjson_get_uint(yyjson_val *val);
                +
                +
                // Returns int64_t value, or 0 if `val` is not sint type.
                + +
                +
                // Returns int value (may overflow), or 0 if `val` is not uint/sint type.
                + +
                +
                // Returns double value, or 0 if `val` is not real type.
                + +
                +
                // Returns the string value, or NULL if `val` is not string type.
                +
                const char *yyjson_get_str(yyjson_val *val);
                +
                +
                // Returns the content length (string length in bytes, array size,
                +
                // object size), or 0 if the value does not contains length data.
                + +
                +
                // Returns whether the value is equals to a string.
                +
                // Returns false if input is NULL or `val` is not string.
                +
                bool yyjson_equals_str(yyjson_val *val, const char *str);
                +
                bool yyjson_equals_strn(yyjson_val *val, const char *str, size_t len);
                +
                yyjson_api_inline int yyjson_get_int(yyjson_val *val)
                Definition: yyjson.h:3854
                +
                yyjson_api_inline double yyjson_get_real(yyjson_val *val)
                Definition: yyjson.h:3858
                +
                yyjson_api_inline const char * yyjson_get_str(yyjson_val *val)
                Definition: yyjson.h:3862
                +
                yyjson_api_inline bool yyjson_get_bool(yyjson_val *val)
                Definition: yyjson.h:3842
                +
                yyjson_api_inline uint64_t yyjson_get_uint(yyjson_val *val)
                Definition: yyjson.h:3846
                +
                yyjson_api_inline int64_t yyjson_get_sint(yyjson_val *val)
                Definition: yyjson.h:3850
                +

                The following functions can be used to modify the content of a JSON value.

                -

                Returns value's type.

                -
                uint8_t yyjson_type
                Definition: yyjson.h:430
                -
                yyjson_api_inline yyjson_type yyjson_get_type(yyjson_val *val)
                Definition: yyjson.h:3533
                -

                Returns value's subtype.

                -
                uint8_t yyjson_subtype
                Definition: yyjson.h:441
                -
                yyjson_api_inline yyjson_subtype yyjson_get_subtype(yyjson_val *val)
                Definition: yyjson.h:3537
                -

                Returns value's tag.

                uint8_t yyjson_get_tag(yyjson_val *val);
                -
                yyjson_api_inline uint8_t yyjson_get_tag(yyjson_val *val)
                Definition: yyjson.h:3541
                -

                Returns type description, such as: "null", "string", "array", "object", "true", "false", "uint", "sint", "real", "unknown"

                const char *yyjson_get_type_desc(yyjson_val *val);
                -
                yyjson_api_inline const char * yyjson_get_type_desc(yyjson_val *val)
                Definition: yyjson.h:3545
                -

                Returns bool value, or false if the value is not bool type.

                -
                yyjson_api_inline bool yyjson_get_bool(yyjson_val *val)
                Definition: yyjson.h:3565
                -

                Returns uint value, or 0 if the value is not uint type.

                uint64_t yyjson_get_uint(yyjson_val *val);
                -
                yyjson_api_inline uint64_t yyjson_get_uint(yyjson_val *val)
                Definition: yyjson.h:3569
                -

                Returns sint value, or 0 if the value is not sint type.

                -
                yyjson_api_inline int64_t yyjson_get_sint(yyjson_val *val)
                Definition: yyjson.h:3573
                -

                Returns int value (uint may overflow), or 0 if the value is not uint or sint type.

                -
                yyjson_api_inline int yyjson_get_int(yyjson_val *val)
                Definition: yyjson.h:3577
                -

                Returns double value, or 0 if the value is not real type.

                -
                yyjson_api_inline double yyjson_get_real(yyjson_val *val)
                Definition: yyjson.h:3581
                -

                Returns the string value, or NULL if the value is not string type

                const char *yyjson_get_str(yyjson_val *val);
                -
                yyjson_api_inline const char * yyjson_get_str(yyjson_val *val)
                Definition: yyjson.h:3585
                -

                Returns the string's length, or 0 if the value is not string type.

                -
                yyjson_api_inline size_t yyjson_get_len(yyjson_val *val)
                Definition: yyjson.h:3589
                -

                Returns whether the value is equals to a string.

                bool yyjson_equals_str(yyjson_val *val, const char *str);
                -

                Same as `yyjson_equals_str(), but you can pass an explicit string length.

                bool yyjson_equals_strn(yyjson_val *val, const char *str, size_t len);
                +

                Warning: For immutable documents, these functions will break the immutable convention, you should use this set of APIs with caution (e.g. make sure the document is only accessed in a single thread).

                +
                // Set the value to new type and content.
                +
                // Returns false if input is NULL or `val` is object or array.
                +
                bool yyjson_set_raw(yyjson_val *val, const char *raw, size_t len);
                + +
                bool yyjson_set_bool(yyjson_val *val, bool num);
                +
                bool yyjson_set_uint(yyjson_val *val, uint64_t num);
                +
                bool yyjson_set_sint(yyjson_val *val, int64_t num);
                +
                bool yyjson_set_int(yyjson_val *val, int num);
                +
                bool yyjson_set_real(yyjson_val *val, double num);
                +
                +
                // The string is not copied, should be held by caller.
                +
                bool yyjson_set_str(yyjson_val *val, const char *str);
                +
                bool yyjson_set_strn(yyjson_val *val, const char *str, size_t len);
                +
                yyjson_api_inline bool yyjson_set_null(yyjson_val *val)
                Definition: yyjson.h:3899
                +
                yyjson_api_inline bool yyjson_set_raw(yyjson_val *val, const char *raw, size_t len)
                Definition: yyjson.h:3892
                +
                yyjson_api_inline bool yyjson_set_uint(yyjson_val *val, uint64_t num)
                Definition: yyjson.h:3911
                +
                yyjson_api_inline bool yyjson_set_str(yyjson_val *val, const char *str)
                Definition: yyjson.h:3935
                +
                yyjson_api_inline bool yyjson_set_strn(yyjson_val *val, const char *str, size_t len)
                Definition: yyjson.h:3942
                +
                yyjson_api_inline bool yyjson_set_real(yyjson_val *val, double num)
                Definition: yyjson.h:3929
                +
                yyjson_api_inline bool yyjson_set_sint(yyjson_val *val, int64_t num)
                Definition: yyjson.h:3917
                +
                yyjson_api_inline bool yyjson_set_bool(yyjson_val *val, bool num)
                Definition: yyjson.h:3905
                +
                yyjson_api_inline bool yyjson_set_int(yyjson_val *val, int num)
                Definition: yyjson.h:3923

                -JSON Array API

                -

                Returns the property or child value of a JSON array.
                - This set of APIs also have version for mutable values, see mutable and immutable for details.

                -


                +JSON Array +

                The following functions can be used to access a JSON array.

                -

                Returns the number of elements in this array, or 0 if the input is not an array.

                -
                yyjson_api_inline size_t yyjson_arr_size(yyjson_val *arr)
                Definition: yyjson.h:3623
                -

                Returns the element at the specified position in this array, or NULL if array is empty or the index is out of bounds.
                - Note that this function takes a linear search time if array is not flat.

                -
                yyjson_api_inline yyjson_val * yyjson_arr_get(yyjson_val *arr, size_t idx)
                Definition: yyjson.h:3627
                -

                Returns the first element of this array, or NULL if array is empty.

                -
                yyjson_api_inline yyjson_val * yyjson_arr_get_first(yyjson_val *arr)
                Definition: yyjson.h:3642
                -

                Returns the last element of this array, or NULL if array is empty.
                - Note tha this function takes a linear search time if array is not flat.

                -
                yyjson_api_inline yyjson_val * yyjson_arr_get_last(yyjson_val *arr)
                Definition: yyjson.h:3651
                +

                Note that accessing elements by an index may take a linear search time. Therefore, if you need to iterate through an array, it is recommended to use the iterator API.

                +
                // Returns the number of elements in this array.
                +
                // Returns 0 if the input is not an array.
                + +
                +
                // Returns the element at the specified position (linear search time).
                +
                // Returns NULL if the index is out of bounds, or input is not an array.
                + +
                +
                // Returns the first element of this array (constant time).
                +
                // Returns NULL if array is empty or intput is not an array.
                + +
                +
                // Returns the last element of this array (linear search time).
                +
                // Returns NULL if array is empty or intput is not an array.
                + +
                yyjson_api_inline size_t yyjson_arr_size(yyjson_val *arr)
                Definition: yyjson.h:3956
                +
                yyjson_api_inline yyjson_val * yyjson_arr_get_last(yyjson_val *arr)
                Definition: yyjson.h:3984
                +
                yyjson_api_inline yyjson_val * yyjson_arr_get(yyjson_val *arr, size_t idx)
                Definition: yyjson.h:3960
                +
                yyjson_api_inline yyjson_val * yyjson_arr_get_first(yyjson_val *arr)
                Definition: yyjson.h:3975

                -JSON Array Iterator API

                -

                You can use two methods to traverse an array:
                +JSON Array Iterator +

                There are two ways to traverse an array:

                -

                Sample code (iterator):

                yyjson_val *arr; // this is your array
                +

                Sample code 1 (iterator API):

                yyjson_val *arr; // the array to be traversed
                while ((val = yyjson_arr_iter_next(&iter))) {
                -
                print(val);
                +
                your_func(val);
                }
                -
                yyjson_api_inline bool yyjson_arr_iter_init(yyjson_val *arr, yyjson_arr_iter *iter)
                Definition: yyjson.h:3679
                -
                yyjson_api_inline yyjson_val * yyjson_arr_iter_next(yyjson_arr_iter *iter)
                Definition: yyjson.h:3695
                -
                Definition: yyjson.h:3673
                -

                Sample code (foreach):

                yyjson_val *arr; // this is your array
                +
                yyjson_api_inline bool yyjson_arr_iter_init(yyjson_val *arr, yyjson_arr_iter *iter)
                Definition: yyjson.h:4012
                +
                yyjson_api_inline yyjson_val * yyjson_arr_iter_next(yyjson_arr_iter *iter)
                Definition: yyjson.h:4028
                +
                Definition: yyjson.h:4006
                +

                Sample code 2 (foreach macro):

                yyjson_val *arr; // the array to be traversed
                size_t idx, max;
                yyjson_arr_foreach(arr, idx, max, val) {
                -
                print(idx, val);
                +
                your_func(idx, val);
                }
                -
                #define yyjson_arr_foreach(arr, idx, max, val)
                Definition: yyjson.h:1440
                +
                #define yyjson_arr_foreach(arr, idx, max, val)
                Definition: yyjson.h:1537


                - There's also mutable version API to traverse an mutable array:

                -

                Sample code (mutable iterator):

                yyjson_mut_val *arr; // this is your mutable array
                +

                +

                There's also mutable version API to traverse an mutable array:
                +

                +

                Sample code 1 (mutable iterator API):

                yyjson_mut_val *arr; // the array to be traversed
                while ((val = yyjson_mut_arr_iter_next(&iter))) {
                -
                if (val_is_unused(val)) {
                -
                // remove current value inside iteration
                +
                if (your_val_is_unused(val)) {
                +
                // you can remove current value inside iteration
                }
                }
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_remove(yyjson_mut_arr_iter *iter)
                Definition: yyjson.h:4331
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_next(yyjson_mut_arr_iter *iter)
                Definition: yyjson.h:4319
                -
                yyjson_api_inline bool yyjson_mut_arr_iter_init(yyjson_mut_val *arr, yyjson_mut_arr_iter *iter)
                Definition: yyjson.h:4301
                -
                Definition: yyjson.h:4293
                -

                Sample code (mutable foreach):

                yyjson_mut_val *arr; // this is your mutable array
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_remove(yyjson_mut_arr_iter *iter)
                Definition: yyjson.h:4735
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_next(yyjson_mut_arr_iter *iter)
                Definition: yyjson.h:4723
                +
                yyjson_api_inline bool yyjson_mut_arr_iter_init(yyjson_mut_val *arr, yyjson_mut_arr_iter *iter)
                Definition: yyjson.h:4705
                +
                Definition: yyjson.h:4697
                +

                Sample code 2 (mutable foreach macro):

                yyjson_mut_val *arr; // the array to be traversed
                size_t idx, max;
                yyjson_mut_arr_foreach(arr, idx, max, val) {
                -
                print(idx, val);
                +
                your_func(idx, val);
                }
                -
                #define yyjson_mut_arr_foreach(arr, idx, max, val)
                Definition: yyjson.h:1989
                +
                #define yyjson_mut_arr_foreach(arr, idx, max, val)
                Definition: yyjson.h:2164

                -JSON Object API

                -

                Returns the property or child value of a JSON object.
                - This set of APIs also have version for mutable values, see mutable and immutable for details.

                -


                +JSON Object +

                The following functions can be used to access a JSON object.

                -

                Returns the number of key-value pairs in this object, or 0 if input is not an object.

                -
                yyjson_api_inline size_t yyjson_obj_size(yyjson_val *obj)
                Definition: yyjson.h:3712
                -

                Returns the value to which the specified key is mapped,
                - or NULL if this object contains no mapping for the key.
                - Note that this function takes a linear search time.

                yyjson_val *yyjson_obj_get(yyjson_val *obj, const char *key);
                -
                yyjson_api_inline yyjson_val * yyjson_obj_get(yyjson_val *obj, const char *key)
                Definition: yyjson.h:3716
                -

                Same as `yyjson_obj_get(), but you can pass an explicit string length.

                yyjson_val *yyjson_obj_getn(yyjson_val *obj, const char *key, size_t key_len);
                -
                yyjson_api_inline yyjson_val * yyjson_obj_getn(yyjson_val *obj, const char *key, size_t key_len)
                Definition: yyjson.h:3721
                -

                If the order of object's key is known at compile-time, you can use this method to avoid searching the entire object:

                // { "x":1, "y":2, "z":3 }
                +

                Note that accessing elements by a key may take a linear search time. Therefore, if you need to iterate through an object, it is recommended to use the iterator API.

                +
                // Returns the number of key-value pairs in this object.
                +
                // Returns 0 if input is not an object.
                + +
                +
                // Returns the value to which the specified key is mapped.
                +
                // Returns NULL if this object contains no mapping for the key.
                +
                yyjson_val *yyjson_obj_get(yyjson_val *obj, const char *key);
                +
                yyjson_val *yyjson_obj_getn(yyjson_val *obj, const char *key, size_t key_len);
                +
                +
                // If the order of object's key is known at compile-time,
                +
                // you can use this method to avoid searching the entire object.
                +
                // e.g. { "x":1, "y":2, "z":3 }
                yyjson_val *obj = ...;
                -
                if (yyjson_obj_iter_init(obj, &iter)) {
                -
                yyjson_val *x = yyjson_obj_iter_get(&iter, "x");
                -
                yyjson_val *y = yyjson_obj_iter_get(&iter, "y");
                -
                yyjson_val *z = yyjson_obj_iter_get(&iter, "z");
                -
                }
                -
                yyjson_api_inline yyjson_val * yyjson_obj_iter_get(yyjson_obj_iter *iter, const char *key)
                Definition: yyjson.h:3783
                -
                yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, yyjson_obj_iter *iter)
                Definition: yyjson.h:3752
                -
                Definition: yyjson.h:3745
                + +
                + + + +
                yyjson_api_inline yyjson_val * yyjson_obj_get(yyjson_val *obj, const char *key)
                Definition: yyjson.h:4049
                +
                yyjson_api_inline yyjson_val * yyjson_obj_iter_get(yyjson_obj_iter *iter, const char *key)
                Definition: yyjson.h:4116
                +
                yyjson_api_inline yyjson_val * yyjson_obj_getn(yyjson_val *obj, const char *key, size_t key_len)
                Definition: yyjson.h:4054
                +
                yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, yyjson_obj_iter *iter)
                Definition: yyjson.h:4085
                +
                yyjson_api_inline size_t yyjson_obj_size(yyjson_val *obj)
                Definition: yyjson.h:4045
                +
                Definition: yyjson.h:4078

                -JSON Object Iterator API

                -

                You can use two methods to traverse an object:
                +JSON Object Iterator +

                There are two ways to traverse an object:

                -

                Sample code (iterator):

                yyjson_val *obj; // this is your object
                +

                Sample code 1 (iterator API):

                yyjson_val *obj; // the object to be traversed
                yyjson_val *key, *val;
                while ((key = yyjson_obj_iter_next(&iter))) {
                -
                print(key, val);
                +
                your_func(key, val);
                }
                -
                yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val(yyjson_val *key)
                Definition: yyjson.h:3779
                -
                yyjson_api_inline yyjson_val * yyjson_obj_iter_next(yyjson_obj_iter *iter)
                Definition: yyjson.h:3769
                -

                Sample code (foreach):

                yyjson_val *obj; // this is your object
                +
                yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val(yyjson_val *key)
                Definition: yyjson.h:4112
                +
                yyjson_api_inline yyjson_val * yyjson_obj_iter_next(yyjson_obj_iter *iter)
                Definition: yyjson.h:4102
                +

                Sample code 2 (foreach macro):

                yyjson_val *obj; // this is your object
                size_t idx, max;
                yyjson_val *key, *val;
                yyjson_obj_foreach(obj, idx, max, key, val) {
                -
                print(key, val);
                +
                your_func(key, val);
                }
                -
                #define yyjson_obj_foreach(obj, idx, max, key, val)
                Definition: yyjson.h:1597
                +
                #define yyjson_obj_foreach(obj, idx, max, key, val)
                Definition: yyjson.h:1694


                -

                There's also mutable version API to traverse an mutable object:

                -

                Sample code (mutable iterator):

                yyjson_mut_val *obj; // this is your mutable object
                +

                There's also mutable version API to traverse an mutable object:
                +

                +

                Sample code 1 (mutable iterator API):

                yyjson_mut_val *obj; // the object to be traversed
                yyjson_mut_val *key, *val;
                while ((key = yyjson_mut_obj_iter_next(&iter))) {
                -
                if (key_is_unused(key)) {
                -
                // remove current key-value pair inside iteration
                +
                if (your_key_is_unused(key)) {
                +
                // you can remove current kv pair inside iteration
                }
                }
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_next(yyjson_mut_obj_iter *iter)
                Definition: yyjson.h:4959
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_remove(yyjson_mut_obj_iter *iter)
                Definition: yyjson.h:4976
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get_val(yyjson_mut_val *key)
                Definition: yyjson.h:4971
                -
                yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, yyjson_mut_obj_iter *iter)
                Definition: yyjson.h:4941
                -
                Definition: yyjson.h:4933
                -

                Sample code (mutable foreach):

                yyjson_mut_val *obj; // this is your mutable object
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_next(yyjson_mut_obj_iter *iter)
                Definition: yyjson.h:5363
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_remove(yyjson_mut_obj_iter *iter)
                Definition: yyjson.h:5380
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get_val(yyjson_mut_val *key)
                Definition: yyjson.h:5375
                +
                yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, yyjson_mut_obj_iter *iter)
                Definition: yyjson.h:5345
                +
                Definition: yyjson.h:5337
                +

                Sample code 2 (mutable foreach macro):

                yyjson_mut_val *obj; // the object to be traversed
                size_t idx, max;
                yyjson_val *key, *val;
                yyjson_obj_foreach(obj, idx, max, key, val) {
                -
                print(key, val);
                +
                your_func(key, val);
                }

                JSON Pointer

                -

                yyjson allows you to query JSON value with JSON Pointer (RFC 6901).

                -
                // pointer is a null-terminated string
                +

                The library supports querying JSON values via JSON Pointer (RFC 6901).

                +
                // `JSON pointer` is a null-terminated string.
                yyjson_val *yyjson_get_pointer(yyjson_val *val, const char *ptr);
                -
                // pointer with string length, allow NUL (Unicode U+0000) characters inside
                +
                // `JSON pointer` with string length, allow NUL (Unicode U+0000) characters inside.
                yyjson_val *yyjson_get_pointern(yyjson_val *val, const char *ptr, size_t len);
                yyjson_val *yyjson_doc_get_pointern(yyjson_doc *doc, const char *ptr, size_t len);
                yyjson_mut_val *yyjson_mut_get_pointern(yyjson_mut_val *val, const char *ptr, size_t len);
                yyjson_mut_val *yyjson_mut_doc_get_pointern(yyjson_mut_doc *doc, const char *ptr, size_t len);
                -
                yyjson_api_inline yyjson_val * yyjson_get_pointer(yyjson_val *val, const char *ptr)
                Definition: yyjson.h:5491
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_get_pointer(yyjson_mut_val *val, const char *ptr)
                Definition: yyjson.h:5517
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_pointer(yyjson_mut_doc *doc, const char *ptr)
                Definition: yyjson.h:5528
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_pointern(yyjson_mut_doc *doc, const char *ptr, size_t len)
                Definition: yyjson.h:5523
                -
                yyjson_api_inline yyjson_val * yyjson_doc_get_pointern(yyjson_doc *doc, const char *ptr, size_t len)
                Definition: yyjson.h:5497
                -
                yyjson_api_inline yyjson_val * yyjson_get_pointern(yyjson_val *val, const char *ptr, size_t len)
                Definition: yyjson.h:5482
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_get_pointern(yyjson_mut_val *val, const char *ptr, size_t len)
                Definition: yyjson.h:5508
                -
                yyjson_api_inline yyjson_val * yyjson_doc_get_pointer(yyjson_doc *doc, const char *ptr)
                Definition: yyjson.h:5503
                +
                yyjson_api_inline yyjson_val * yyjson_get_pointer(yyjson_val *val, const char *ptr)
                Definition: yyjson.h:5927
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_get_pointer(yyjson_mut_val *val, const char *ptr)
                Definition: yyjson.h:5953
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_pointer(yyjson_mut_doc *doc, const char *ptr)
                Definition: yyjson.h:5964
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_pointern(yyjson_mut_doc *doc, const char *ptr, size_t len)
                Definition: yyjson.h:5959
                +
                yyjson_api_inline yyjson_val * yyjson_doc_get_pointern(yyjson_doc *doc, const char *ptr, size_t len)
                Definition: yyjson.h:5933
                +
                yyjson_api_inline yyjson_val * yyjson_get_pointern(yyjson_val *val, const char *ptr, size_t len)
                Definition: yyjson.h:5918
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_get_pointern(yyjson_mut_val *val, const char *ptr, size_t len)
                Definition: yyjson.h:5944
                +
                yyjson_api_inline yyjson_val * yyjson_doc_get_pointer(yyjson_doc *doc, const char *ptr)
                Definition: yyjson.h:5939

                For example, given the JSON document:

                {
                "size" : 3,
                "users" : [
                @@ -762,87 +811,133 @@

                "/no_match" NULL -"no_slash" NULL +"no_slash" NULL + +"/" NULL (match to empty key: root[""])

                Create JSON Document

                -

                You can use a yyjson_mut_doc to build your JSON document.
                +

                yyjson_mut_doc and related APIs are used to build JSON documents.
                +

                +

                Notice that yyjson_mut_doc uses a memory pool to hold all strings and values; the pool can only be created, grown, or freed in its entirety. Thus yyjson_mut_doc is more suitable for write-once than mutation of an existing document.

                -

                Notice that yyjson_mut_doc use a memory pool to hold all strings and values; the pool can only be created, grown or freed in its entirety. Thus yyjson_mut_doc is more suitable for write-once, than mutation of an existing document.

                +

                JSON objects and arrays are made up of linked lists, so each yyjson_mut_val can only be added to one object or array.

                Sample code:

                -
                // Create a mutable document.
                +
                // Build this JSON:
                +
                // {
                +
                // "page": 123,
                +
                // "names": [ "Harry", "Ron", "Hermione" ]
                +
                // }
                +
                +
                // Create a mutable document.
                -
                // Create a `uint` value, the value's memory is held by doc.
                - +
                // Create an object, the value's memory is held by doc.
                +
                -
                // Create an array, the array's memory is held by doc.
                - - +
                // Create key and value, add to the root object.
                +
                yyjson_mut_val *key = yyjson_mut_str(doc, "page");
                +
                yyjson_mut_val *num = yyjson_mut_int(doc, 123);
                +
                yyjson_mut_obj_add(root, key, num);
                -
                // Add the value to arr1
                - +
                // Create 3 string value, add to the array object.
                + +
                yyjson_mut_val *name1 = yyjson_mut_str(doc, "Harry");
                +
                yyjson_mut_val *name2 = yyjson_mut_str(doc, "Ron");
                +
                yyjson_mut_val *name3 = yyjson_mut_str(doc, "Hermione");
                +
                yyjson_mut_arr_append(names, name1);
                +
                yyjson_mut_arr_append(names, name2);
                +
                yyjson_mut_arr_append(names, name3);
                -
                // ❌ Wrong, the value is already added to another container.
                - +
                // ❌ Wrong! the value is already added to another container.
                +
                yyjson_mut_obj_add(root, key, name1);
                +
                +
                // Set the document's root value.
                + +
                +
                // Write to JSON string
                +
                const char *json = yyjson_mut_write(doc, 0, NULL);
                // Free the memory of doc and all values which is created from this doc.
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj(yyjson_mut_doc *doc)
                Definition: yyjson.h:5430
                yyjson_api void yyjson_mut_doc_free(yyjson_mut_doc *doc)
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_uint(yyjson_mut_doc *doc, uint64_t num)
                Definition: yyjson.h:4166
                -
                yyjson_api_inline bool yyjson_mut_arr_append(yyjson_mut_val *arr, yyjson_mut_val *val)
                Definition: yyjson.h:4575
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_int(yyjson_mut_doc *doc, int64_t num)
                Definition: yyjson.h:4596
                +
                yyjson_api_inline bool yyjson_mut_obj_add(yyjson_mut_val *obj, yyjson_mut_val *key, yyjson_mut_val *val)
                Definition: yyjson.h:5586
                +
                yyjson_api_inline bool yyjson_mut_arr_append(yyjson_mut_val *arr, yyjson_mut_val *val)
                Definition: yyjson.h:4979

                -Mutable Document API

                -

                Creates and returns a new mutable JSON document, returns NULL on error.
                - If allocator is NULL, the default allocator will be used. The alc is memory allocator, pass NULL if you don't need it, see memory allocator for details.
                -

                Delete the JSON document, free the memory of this doc (and all values created from this doc).

                Get or set the root value of this JSON document.

                +Mutable Document +

                The following functions are used to create, modify, copy, and destroy a JSON document.
                +

                +
                // Creates and returns a new mutable JSON document.
                +
                // Returns NULL on error (e.g. memory allocation failure).
                +
                // If `alc` is NULL, the default allocator will be used.
                + +
                +
                // Delete the JSON document, free the memory of this doc
                +
                // and all values created from this doc
                + +
                +
                // Get or set the root value of this JSON document.
                + -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_root(yyjson_mut_doc *doc)
                Definition: yyjson.h:3930
                -

                Copies and returns a new mutable document from input, returns NULL on error.
                - The alc is memory allocator, pass NULL if you don't need it, see memory allocator for details.
                -

                Copies and returns a new mutable value from input, returns NULL on error.
                - The memory was managed by document. */

                +
                +
                // Copies and returns a new mutable document/value from input.
                +
                // Returns NULL on error (e.g. memory allocation failure).
                +
                +
                // doc -> mut_doc
                + +
                // val -> mut_val
                + +
                // mut_doc -> mut_doc
                + +
                // mut_val -> mut_val
                + +
                // mut_doc -> doc
                + +
                // mut_val -> doc
                + +
                yyjson_api yyjson_mut_val * yyjson_mut_val_mut_copy(yyjson_mut_doc *doc, yyjson_mut_val *val)
                +
                yyjson_api yyjson_mut_doc * yyjson_mut_doc_mut_copy(yyjson_mut_doc *doc, const yyjson_alc *alc)
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_doc_get_root(yyjson_mut_doc *doc)
                Definition: yyjson.h:4265

                -Mutable JSON Value Creation API

                -

                You can use these functions to create mutable JSON value,
                - The value's memory is held by the document.
                -
                +JSON Value Creation +

                The following functions are used to create mutable JSON value, the value's memory is held by the document.

                -

                Creates and returns a null value, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_null(yyjson_mut_doc *doc)
                Definition: yyjson.h:4121
                -

                Creates and returns a true value, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_true(yyjson_mut_doc *doc)
                Definition: yyjson.h:4132
                -

                Creates and returns a false value, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_false(yyjson_mut_doc *doc)
                Definition: yyjson.h:4143
                -

                Creates and returns a bool value, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_bool(yyjson_mut_doc *doc, bool val)
                Definition: yyjson.h:4154
                -

                Creates and returns an unsigned integer value, returns NULL on error.

                Creates and returns a signed integer value, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_sint(yyjson_mut_doc *doc, int64_t num)
                Definition: yyjson.h:4179
                -

                Creates and returns a signed integer value, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_int(yyjson_mut_doc *doc, int64_t num)
                Definition: yyjson.h:4192
                -

                Creates and returns an real number value, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_real(yyjson_mut_doc *doc, double num)
                Definition: yyjson.h:4197
                -

                Creates and returns a string value, returns NULL on error.
                - The input value should be a valid UTF-8 encoded string with null-terminator.
                - Note that the input string is NOT copied.

                -

                Creates and returns a string value, returns NULL on error.
                - The input value should be a valid UTF-8 encoded string.
                - Note that the input string is NOT copied.

                yyjson_mut_val *yyjson_mut_strn(yyjson_mut_doc *doc, const char *str, size_t len);
                -

                Creates and returns a string value, returns NULL on error.
                - The input value should be a valid UTF-8 encoded string with null-terminator.
                - The input string is copied and held by the document.

                Creates and returns a string value, returns NULL on error.
                - The input value should be a valid UTF-8 encoded string.
                - The input string is copied and held by the document.

                yyjson_mut_val *yyjson_mut_strncpy(yyjson_mut_doc *doc, const char *str, size_t len);
                +
                // Creates and returns a new value, returns NULL on error.
                + + + + + + + + +
                +
                // Creates a string value, the input string is NOT copied.
                + +
                yyjson_mut_val *yyjson_mut_strn(yyjson_mut_doc *doc, const char *str, size_t len);
                +
                +
                // Creates a string value, the input string is copied and held by the document.
                + +
                yyjson_mut_val *yyjson_mut_strncpy(yyjson_mut_doc *doc, const char *str, size_t len);
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_true(yyjson_mut_doc *doc)
                Definition: yyjson.h:4536
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_real(yyjson_mut_doc *doc, double num)
                Definition: yyjson.h:4601
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_false(yyjson_mut_doc *doc)
                Definition: yyjson.h:4547
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_bool(yyjson_mut_doc *doc, bool val)
                Definition: yyjson.h:4558
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_null(yyjson_mut_doc *doc)
                Definition: yyjson.h:4525
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_uint(yyjson_mut_doc *doc, uint64_t num)
                Definition: yyjson.h:4570
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_sint(yyjson_mut_doc *doc, int64_t num)
                Definition: yyjson.h:4583

                -Mutable JSON Array Creation API

                -

                Creates and returns an empty mutable array, returns NULL on error.

                Creates and returns a mutable array with c array.

                yyjson_mut_val *yyjson_mut_arr_with_bool(yyjson_mut_doc *doc, bool *vals, size_t count);
                +JSON Array Creation +

                The following functions are used to create mutable JSON array.
                +

                +
                // Creates and returns an empty mutable array, returns NULL on error.
                + +
                +
                // Creates and returns a mutable array with c array.
                +
                yyjson_mut_val *yyjson_mut_arr_with_bool(yyjson_mut_doc *doc, bool *vals, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_sint(yyjson_mut_doc *doc, int64_t *vals, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_uint(yyjson_mut_doc *doc, uint64_t *vals, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_real(yyjson_mut_doc *doc, double *vals, size_t count);
                @@ -856,62 +951,76 @@

                yyjson_mut_val *yyjson_mut_arr_with_uint64(yyjson_mut_doc *doc, uint64_t *vals, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_float(yyjson_mut_doc *doc, float *vals, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_double(yyjson_mut_doc *doc, double *vals, size_t count);
                -
                -
                // sample:
                +
                // sample code:
                int vals[3] = {-1, 0, 1};
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint(yyjson_mut_doc *doc, const int64_t *vals, size_t count)
                Definition: yyjson.h:4393
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint8(yyjson_mut_doc *doc, const uint8_t *vals, size_t count)
                Definition: yyjson.h:4440
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint64(yyjson_mut_doc *doc, const int64_t *vals, size_t count)
                Definition: yyjson.h:4432
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_float(yyjson_mut_doc *doc, const float *vals, size_t count)
                Definition: yyjson.h:4472
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint32(yyjson_mut_doc *doc, const int32_t *vals, size_t count)
                Definition: yyjson.h:4424
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_real(yyjson_mut_doc *doc, const double *vals, size_t count)
                Definition: yyjson.h:4403
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint16(yyjson_mut_doc *doc, const int16_t *vals, size_t count)
                Definition: yyjson.h:4416
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint16(yyjson_mut_doc *doc, const uint16_t *vals, size_t count)
                Definition: yyjson.h:4448
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint64(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
                Definition: yyjson.h:4464
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
                Definition: yyjson.h:4398
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint8(yyjson_mut_doc *doc, const int8_t *vals, size_t count)
                Definition: yyjson.h:4408
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint32(yyjson_mut_doc *doc, const uint32_t *vals, size_t count)
                Definition: yyjson.h:4456
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_double(yyjson_mut_doc *doc, const double *vals, size_t count)
                Definition: yyjson.h:4480
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_bool(yyjson_mut_doc *doc, const bool *vals, size_t count)
                Definition: yyjson.h:4386
                -

                Creates and returns a mutable array with strings. The strings should be encoded as UTF-8.

                yyjson_mut_val *yyjson_mut_arr_with_str(yyjson_mut_doc *doc, const char **vals, size_t count);
                +
                +
                // Creates and returns a mutable array with strings,
                +
                // the strings should be encoded as UTF-8.
                +
                yyjson_mut_val *yyjson_mut_arr_with_str(yyjson_mut_doc *doc, const char **vals, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_strn(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_strcpy(yyjson_mut_doc *doc, const char **vals, size_t count);
                yyjson_mut_val *yyjson_mut_arr_with_strncpy(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count);
                -
                -
                // sample:
                +
                // sample code:
                const char strs[3] = {"Jan", "Feb", "Mar"};
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strn(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count)
                Definition: yyjson.h:4498
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strcpy(yyjson_mut_doc *doc, const char **vals, size_t count)
                Definition: yyjson.h:4508
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strncpy(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count)
                Definition: yyjson.h:4522
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_str(yyjson_mut_doc *doc, const char **vals, size_t count)
                Definition: yyjson.h:4488
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint(yyjson_mut_doc *doc, const int64_t *vals, size_t count)
                Definition: yyjson.h:4797
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint8(yyjson_mut_doc *doc, const uint8_t *vals, size_t count)
                Definition: yyjson.h:4844
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint64(yyjson_mut_doc *doc, const int64_t *vals, size_t count)
                Definition: yyjson.h:4836
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strn(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count)
                Definition: yyjson.h:4902
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_float(yyjson_mut_doc *doc, const float *vals, size_t count)
                Definition: yyjson.h:4876
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint32(yyjson_mut_doc *doc, const int32_t *vals, size_t count)
                Definition: yyjson.h:4828
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_real(yyjson_mut_doc *doc, const double *vals, size_t count)
                Definition: yyjson.h:4807
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint16(yyjson_mut_doc *doc, const int16_t *vals, size_t count)
                Definition: yyjson.h:4820
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint16(yyjson_mut_doc *doc, const uint16_t *vals, size_t count)
                Definition: yyjson.h:4852
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strcpy(yyjson_mut_doc *doc, const char **vals, size_t count)
                Definition: yyjson.h:4912
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint64(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
                Definition: yyjson.h:4868
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
                Definition: yyjson.h:4802
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint8(yyjson_mut_doc *doc, const int8_t *vals, size_t count)
                Definition: yyjson.h:4812
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint32(yyjson_mut_doc *doc, const uint32_t *vals, size_t count)
                Definition: yyjson.h:4860
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_double(yyjson_mut_doc *doc, const double *vals, size_t count)
                Definition: yyjson.h:4884
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strncpy(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count)
                Definition: yyjson.h:4926
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_str(yyjson_mut_doc *doc, const char **vals, size_t count)
                Definition: yyjson.h:4892
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_bool(yyjson_mut_doc *doc, const bool *vals, size_t count)
                Definition: yyjson.h:4790

                -Mutable JSON Array Modification API

                -

                Inserts a value into an array at a given index, returns false on error.
                - Note that Tthis function takes a linear search time.

                -
                yyjson_api_inline bool yyjson_mut_arr_insert(yyjson_mut_val *arr, yyjson_mut_val *val, size_t idx)
                Definition: yyjson.h:4544
                -

                Inserts a val at the end of the array, returns false on error.

                Inserts a val at the head of the array, returns false on error.

                -
                yyjson_api_inline bool yyjson_mut_arr_prepend(yyjson_mut_val *arr, yyjson_mut_val *val)
                Definition: yyjson.h:4594
                -

                Replaces a value at index and returns old value, returns NULL on error.
                - Note that this function takes a linear search time.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_replace(yyjson_mut_val *arr, size_t idx, yyjson_mut_val *val)
                Definition: yyjson.h:4613
                -

                Removes and returns a value at index, returns NULL on error.
                - Note that this function takes a linear search time.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_remove(yyjson_mut_val *arr, size_t idx)
                Definition: yyjson.h:4641
                -

                Removes and returns the first value in this array, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_remove_first(yyjson_mut_val *arr)
                Definition: yyjson.h:4665
                -

                Removes and returns the last value in this array, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_remove_last(yyjson_mut_val *arr)
                Definition: yyjson.h:4684
                -

                Removes all values within a specified range in the array.
                - Note that this function takes a linear search time.

                bool yyjson_mut_arr_remove_range(yyjson_mut_val *arr, size_t idx, size_t len);
                -
                yyjson_api_inline bool yyjson_mut_arr_remove_range(yyjson_mut_val *arr, size_t idx, size_t len)
                Definition: yyjson.h:4706
                -

                Removes all values in this array.

                -
                yyjson_api_inline bool yyjson_mut_arr_clear(yyjson_mut_val *arr)
                Definition: yyjson.h:4728
                -

                -Mutable JSON Array Modification Convenience API

                -

                Adds a value at the end of this array, returns false on error.

                +JSON Array Modification +

                The following functions are used to modify the contents of a JSON array.
                +

                +
                // Inserts a value into an array at a given index.
                +
                // Returns false on error (e.g. out of bounds).
                +
                // Note that this function takes a linear search time.
                + +
                +
                // Inserts a val at the end of the array, returns false on error.
                + +
                +
                // Inserts a val at the head of the array, returns false on error.
                + +
                +
                // Replaces a value at index and returns old value, returns NULL on error.
                +
                // Note that this function takes a linear search time.
                + +
                +
                // Removes and returns a value at index, returns NULL on error.
                +
                // Note that this function takes a linear search time.
                + +
                +
                // Removes and returns the first value in this array, returns NULL on error.
                + +
                +
                // Removes and returns the last value in this array, returns NULL on error.
                + +
                +
                // Removes all values within a specified range in the array.
                +
                // Note that this function takes a linear search time.
                +
                bool yyjson_mut_arr_remove_range(yyjson_mut_val *arr, size_t idx, size_t len);
                +
                +
                // Removes all values in this array.
                + +
                +
                // Convenience API:
                +
                // Adds a value at the end of this array, returns false on error.
                + @@ -924,66 +1033,94 @@

                bool yyjson_mut_arr_add_strn(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str, size_t len);
                bool yyjson_mut_arr_add_strcpy(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str);
                bool yyjson_mut_arr_add_strncpy(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str, size_t len);
                -
                yyjson_api_inline bool yyjson_mut_arr_add_str(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str)
                Definition: yyjson.h:4836
                -
                yyjson_api_inline bool yyjson_mut_arr_add_true(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:4768
                -
                yyjson_api_inline bool yyjson_mut_arr_add_strncpy(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str, size_t len)
                Definition: yyjson.h:4866
                -
                yyjson_api_inline bool yyjson_mut_arr_add_strcpy(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str)
                Definition: yyjson.h:4856
                -
                yyjson_api_inline bool yyjson_mut_arr_add_bool(yyjson_mut_doc *doc, yyjson_mut_val *arr, bool val)
                Definition: yyjson.h:4786
                -
                yyjson_api_inline bool yyjson_mut_arr_add_uint(yyjson_mut_doc *doc, yyjson_mut_val *arr, uint64_t num)
                Definition: yyjson.h:4796
                -
                yyjson_api_inline bool yyjson_mut_arr_add_false(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:4777
                -
                yyjson_api_inline bool yyjson_mut_arr_add_strn(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str, size_t len)
                Definition: yyjson.h:4846
                -
                yyjson_api_inline bool yyjson_mut_arr_add_real(yyjson_mut_doc *doc, yyjson_mut_val *arr, double num)
                Definition: yyjson.h:4826
                -
                yyjson_api_inline bool yyjson_mut_arr_add_val(yyjson_mut_val *arr, yyjson_mut_val *val)
                Definition: yyjson.h:4754
                -
                yyjson_api_inline bool yyjson_mut_arr_add_sint(yyjson_mut_doc *doc, yyjson_mut_val *arr, int64_t num)
                Definition: yyjson.h:4806
                -
                yyjson_api_inline bool yyjson_mut_arr_add_null(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:4759
                -

                Creates and adds a new array at the end of the array.
                - Returns the new array, or NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_add_arr(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:4876
                -

                Creates and adds a new object at the end of the array.
                - Returns the new object, or NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_add_obj(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:4885
                -

                -Mutable JSON Object Creation API

                -

                Creates and returns a mutable object, returns NULL on error.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj(yyjson_mut_doc *doc)
                Definition: yyjson.h:5026
                -

                Creates and returns a mutable object with keys and values,
                - returns NULL on error. The keys and values are NOT copied.
                - The strings should be encoded as UTF-8 with null-terminator.

                +
                +
                // Convenience API:
                +
                // Creates and adds a new array at the end of the array.
                +
                // Returns the new array, or NULL on error.
                + +
                +
                // Convenience API:
                +
                // Creates and adds a new object at the end of the array.
                +
                // Returns the new object, or NULL on error.
                + +
                yyjson_api_inline bool yyjson_mut_arr_add_str(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str)
                Definition: yyjson.h:5240
                +
                yyjson_api_inline bool yyjson_mut_arr_add_true(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:5172
                +
                yyjson_api_inline bool yyjson_mut_arr_prepend(yyjson_mut_val *arr, yyjson_mut_val *val)
                Definition: yyjson.h:4998
                +
                yyjson_api_inline bool yyjson_mut_arr_add_strncpy(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str, size_t len)
                Definition: yyjson.h:5270
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_remove(yyjson_mut_val *arr, size_t idx)
                Definition: yyjson.h:5045
                +
                yyjson_api_inline bool yyjson_mut_arr_clear(yyjson_mut_val *arr)
                Definition: yyjson.h:5132
                +
                yyjson_api_inline bool yyjson_mut_arr_add_strcpy(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str)
                Definition: yyjson.h:5260
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_replace(yyjson_mut_val *arr, size_t idx, yyjson_mut_val *val)
                Definition: yyjson.h:5017
                +
                yyjson_api_inline bool yyjson_mut_arr_add_bool(yyjson_mut_doc *doc, yyjson_mut_val *arr, bool val)
                Definition: yyjson.h:5190
                +
                yyjson_api_inline bool yyjson_mut_arr_add_uint(yyjson_mut_doc *doc, yyjson_mut_val *arr, uint64_t num)
                Definition: yyjson.h:5200
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_add_arr(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:5280
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_remove_last(yyjson_mut_val *arr)
                Definition: yyjson.h:5088
                +
                yyjson_api_inline bool yyjson_mut_arr_add_false(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:5181
                +
                yyjson_api_inline bool yyjson_mut_arr_add_strn(yyjson_mut_doc *doc, yyjson_mut_val *arr, const char *str, size_t len)
                Definition: yyjson.h:5250
                +
                yyjson_api_inline bool yyjson_mut_arr_add_real(yyjson_mut_doc *doc, yyjson_mut_val *arr, double num)
                Definition: yyjson.h:5230
                +
                yyjson_api_inline bool yyjson_mut_arr_add_val(yyjson_mut_val *arr, yyjson_mut_val *val)
                Definition: yyjson.h:5158
                +
                yyjson_api_inline bool yyjson_mut_arr_add_sint(yyjson_mut_doc *doc, yyjson_mut_val *arr, int64_t num)
                Definition: yyjson.h:5210
                +
                yyjson_api_inline bool yyjson_mut_arr_remove_range(yyjson_mut_val *arr, size_t idx, size_t len)
                Definition: yyjson.h:5110
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_add_obj(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:5289
                +
                yyjson_api_inline bool yyjson_mut_arr_insert(yyjson_mut_val *arr, yyjson_mut_val *val, size_t idx)
                Definition: yyjson.h:4948
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_remove_first(yyjson_mut_val *arr)
                Definition: yyjson.h:5069
                +
                yyjson_api_inline bool yyjson_mut_arr_add_null(yyjson_mut_doc *doc, yyjson_mut_val *arr)
                Definition: yyjson.h:5163
                +

                +JSON Object Creation

                +

                The following functions are used to create mutable JSON object.
                +

                +
                // Creates and returns a mutable object, returns NULL on error.
                + +
                +
                // Creates and returns a mutable object with keys and values,
                +
                // returns NULL on error. The keys and values are NOT copied.
                +
                // The strings should be encoded as UTF-8 with null-terminator.
                +
                const char **keys,
                const char **vals,
                size_t count);
                -
                // sample:
                -
                const char vkeys[] = {"name", "type", "id"};
                -
                const char *vals[] = {"Harry", "student", "888999"};
                +
                // sample code:
                +
                const char keys[] = {"name", "type", "id"};
                +
                const char *vals[] = {"Harry", "student", "123456"};
                yyjson_mut_obj_with_str(doc, keys, vals, 3);
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_str(yyjson_mut_doc *doc, const char **keys, const char **vals, size_t count)
                Definition: yyjson.h:5037
                -

                Creates and returns a mutable object with key-value pairs and pair count,
                - returns NULL on error. The keys and values are NOT copied.
                - The strings should be encoded as UTF-8 with null-terminator.

                +
                +
                // Creates and returns a mutable object with key-value pairs,
                +
                // returns NULL on error. The keys and values are NOT copied.
                +
                // The strings should be encoded as UTF-8 with null-terminator.
                +
                const char **kv_pairs,
                size_t pair_count);
                -
                // sample:
                -
                const char *pairs[] = {"name", "Harry", "type", "student", "id", "888999"};
                +
                // sample code:
                +
                const char *pairs[] = {"name", "Harry", "type", "student", "id", "123456"};
                yyjson_mut_obj_with_kv(doc, pairs, 3);
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_kv(yyjson_mut_doc *doc, const char **kv_pairs, size_t pair_count)
                Definition: yyjson.h:5068
                -

                -Mutable JSON Object Modification API

                -

                Adds a key-value pair at the end of the object. The key must be a string.
                - This function allows duplicated key in one object.

                bool yyjson_mut_obj_add(yyjson_mut_val *obj, yyjson_mut_val *key,yyjson_mut_val *val);
                -

                Adds a key-value pair to the object, The key must be a string.
                - This function may remove all key-value pairs for the given key before add.
                - Note that this function takes a linear search time.

                -
                yyjson_api_inline bool yyjson_mut_obj_put(yyjson_mut_val *obj, yyjson_mut_val *key, yyjson_mut_val *val)
                Definition: yyjson.h:5193
                -

                Removes key-value pair from the object with given key.
                - Note that this function takes a linear search time.

                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_remove(yyjson_mut_val *obj, yyjson_mut_val *key)
                Definition: yyjson.h:5231
                -

                Removes all key-value pairs in this object.

                -
                yyjson_api_inline bool yyjson_mut_obj_clear(yyjson_mut_val *obj)
                Definition: yyjson.h:5260
                -

                -Mutable JSON Object Modification Convenience API

                -

                Adds a key-value pair at the end of the object. The key is not copied.
                - Note that these functions allow duplicated key in one object.

                -
                bool yyjson_mut_obj_add_null(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key);
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_str(yyjson_mut_doc *doc, const char **keys, const char **vals, size_t count)
                Definition: yyjson.h:5441
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_kv(yyjson_mut_doc *doc, const char **kv_pairs, size_t pair_count)
                Definition: yyjson.h:5472
                +

                +JSON Object Modification

                +

                The following functions are used to modify the contents of a JSON object.
                +

                +
                // Adds a key-value pair at the end of the object.
                +
                // The key must be a string value.
                +
                // This function allows duplicated key in one object.
                + +
                +
                // Adds a key-value pair to the object.
                +
                // The key must be a string value.
                +
                // This function may remove all key-value pairs for the given key before add.
                +
                // Note that this function takes a linear search time.
                + +
                +
                // Removes key-value pair from the object with a given key.
                +
                // Note that this function takes a linear search time.
                + +
                +
                // Removes all key-value pairs in this object.
                + +
                +
                // Convenience API:
                +
                // Adds a key-value pair at the end of the object. The key is not copied.
                +
                // Note that these functions allow duplicated key in one object.
                +
                bool yyjson_mut_obj_add_null(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key);
                bool yyjson_mut_obj_add_true(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key);
                bool yyjson_mut_obj_add_false(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key);
                bool yyjson_mut_obj_add_bool(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, bool val);
                @@ -995,35 +1132,58 @@

                bool yyjson_mut_obj_add_strn(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val, size_t len);
                bool yyjson_mut_obj_add_strcpy(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val);
                bool yyjson_mut_obj_add_strncpy(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val, size_t len);
                -
                yyjson_api_inline bool yyjson_mut_obj_add_strncpy(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val, size_t len)
                Definition: yyjson.h:5419
                -
                yyjson_api_inline bool yyjson_mut_obj_add_sint(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, int64_t val)
                Definition: yyjson.h:5353
                -
                yyjson_api_inline bool yyjson_mut_obj_add_strn(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val, size_t len)
                Definition: yyjson.h:5394
                -
                yyjson_api_inline bool yyjson_mut_obj_add_false(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5326
                -
                yyjson_api_inline bool yyjson_mut_obj_add_int(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, int64_t val)
                Definition: yyjson.h:5363
                -
                yyjson_api_inline bool yyjson_mut_obj_add_uint(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, uint64_t val)
                Definition: yyjson.h:5343
                -
                yyjson_api_inline bool yyjson_mut_obj_add_null(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5310
                -
                yyjson_api_inline bool yyjson_mut_obj_add_true(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5318
                -
                yyjson_api_inline bool yyjson_mut_obj_add_str(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val)
                Definition: yyjson.h:5383
                -
                yyjson_api_inline bool yyjson_mut_obj_add_real(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, double val)
                Definition: yyjson.h:5373
                -
                yyjson_api_inline bool yyjson_mut_obj_add_bool(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, bool val)
                Definition: yyjson.h:5334
                -
                yyjson_api_inline bool yyjson_mut_obj_add_strcpy(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val)
                Definition: yyjson.h:5406
                -

                Removes all key-value pairs for the given key.
                - Note that this function takes a linear search time.

                bool yyjson_mut_obj_remove_str(yyjson_mut_val *obj, const char *key);
                +
                +
                // Convenience API:
                +
                // Removes all key-value pairs for the given key.
                +
                // Note that this function takes a linear search time.
                +
                bool yyjson_mut_obj_remove_str(yyjson_mut_val *obj, const char *key);
                bool yyjson_mut_obj_remove_strn(yyjson_mut_val *obj, const char *key, size_t len);
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_remove_str(yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5442
                -
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_remove_strn(yyjson_mut_val *obj, const char *key, size_t len)
                Definition: yyjson.h:5447
                -

                +
                +
                // Convenience API:
                +
                // Replaces all matching keys with the new key.
                +
                // Returns true if at least one key was renamed.
                +
                // This function takes a linear search time.
                +
                yyjson_api_inline bool yyjson_mut_obj_rename_key(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *new_key);
                +
                yyjson_api_inline bool yyjson_mut_obj_rename_keyn(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, size_t len, const char *new_key, size_t new_len);
                +
                yyjson_api_inline bool yyjson_mut_obj_add_strncpy(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val, size_t len)
                Definition: yyjson.h:5823
                +
                yyjson_api_inline bool yyjson_mut_obj_rename_keyn(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, size_t len, const char *new_key, size_t new_len)
                Definition: yyjson.h:5879
                +
                yyjson_api_inline bool yyjson_mut_obj_add_sint(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, int64_t val)
                Definition: yyjson.h:5757
                +
                yyjson_api_inline bool yyjson_mut_obj_add_strn(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val, size_t len)
                Definition: yyjson.h:5798
                +
                yyjson_api_inline bool yyjson_mut_obj_add_false(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5730
                +
                yyjson_api_inline bool yyjson_mut_obj_add_int(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, int64_t val)
                Definition: yyjson.h:5767
                +
                yyjson_api_inline bool yyjson_mut_obj_add_uint(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, uint64_t val)
                Definition: yyjson.h:5747
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_remove_str(yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5846
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_remove(yyjson_mut_val *obj, yyjson_mut_val *key)
                Definition: yyjson.h:5635
                +
                #define yyjson_api_inline
                Definition: yyjson.h:266
                +
                yyjson_api_inline bool yyjson_mut_obj_add_null(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5714
                +
                yyjson_api_inline bool yyjson_mut_obj_add_true(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key)
                Definition: yyjson.h:5722
                +
                yyjson_api_inline bool yyjson_mut_obj_add_str(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val)
                Definition: yyjson.h:5787
                +
                yyjson_api_inline bool yyjson_mut_obj_add_real(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, double val)
                Definition: yyjson.h:5777
                +
                yyjson_api_inline bool yyjson_mut_obj_add_bool(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, bool val)
                Definition: yyjson.h:5738
                +
                yyjson_api_inline bool yyjson_mut_obj_add_strcpy(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *val)
                Definition: yyjson.h:5810
                +
                yyjson_api_inline bool yyjson_mut_obj_put(yyjson_mut_val *obj, yyjson_mut_val *key, yyjson_mut_val *val)
                Definition: yyjson.h:5597
                +
                yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_remove_strn(yyjson_mut_val *obj, const char *key, size_t len)
                Definition: yyjson.h:5851
                +
                yyjson_api_inline bool yyjson_mut_obj_rename_key(yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *new_key)
                Definition: yyjson.h:5870
                +
                yyjson_api_inline bool yyjson_mut_obj_clear(yyjson_mut_val *obj)
                Definition: yyjson.h:5664
                +

                JSON Merge Patch

                -

                Creates and returns a merge-patched JSON value (RFC 7386). Returns NULL if the patch could not be applied. Specification and example: https://tools.ietf.org/html/rfc7386

                +

                The library supports JSON Merge Patch (RFC 7386). Specification and example: https://tools.ietf.org/html/rfc7386

                // Creates and returns a merge-patched JSON value.
                +
                // Returns NULL if the patch could not be applied.
                +
                yyjson_val *orig,
                yyjson_val *patch);
                +
                + + +
                yyjson_mut_val *patch);
                yyjson_api yyjson_mut_val * yyjson_merge_patch(yyjson_mut_doc *doc, yyjson_val *orig, yyjson_val *patch)
                +
                yyjson_api yyjson_mut_val * yyjson_mut_merge_patch(yyjson_mut_doc *doc, yyjson_mut_val *orig, yyjson_mut_val *patch)

                -

                +

                Number Processing

                -

                +

                Number reader

                -

                yyjson has a built-in high-performance number reader,
                +

                The library has a built-in high-performance number reader,
                it will parse numbers according to these rules by default:

                  @@ -1033,10 +1193,10 @@

                • If a real number overflow (infinity), it will report an error.
                • If a number does not match the JSON standard, it will report an error.
                -

                You can use YYJSON_READ_ALLOW_INF_AND_NAN flag to allow nan and inf number/literal, see reader flag for details.

                -

                +

                You can use YYJSON_READ_ALLOW_INF_AND_NAN flag to allow nan and inf number/literal. You can also use YYJSON_READ_NUMBER_AS_RAW to read numbers as raw strings without parsing them. See Reader flag for details.

                +

                Number writer

                -

                yyjson has a built-in high-performance number writer,
                +

                The library has a built-in high-performance number writer,
                it will write numbers according to these rules by default:

                  @@ -1050,23 +1210,22 @@

                • Floating-point number writer should generate shortest correctly rounded decimal representation.
                -

                You can use YYJSON_WRITE_ALLOW_INF_AND_NAN flag to write inf/nan number as Infinity and NaN literals without error, but this is not standard JSON, see writer flag for details.

                -

                You can also use YYJSON_WRITE_INF_AND_NAN_AS_NULL to write inf/nan number as null without error.

                -

                +

                You can use YYJSON_WRITE_ALLOW_INF_AND_NAN flag to write inf/nan number as Infinity and NaN literals without error, but this is not standard JSON. You can also use YYJSON_WRITE_INF_AND_NAN_AS_NULL to write inf/nan number as null literal. See Writer flag for details.

                +

                Text Processing

                -

                +

                Character Encoding

                -

                yyjson only supports UTF-8 encoding without BOM, as specified in RFC 8259:

                +

                The library only supports UTF-8 encoding without BOM, as specified in RFC 8259:

                ‍JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8. Implementations MUST NOT add a byte order mark (U+FEFF) to the beginning of a networked-transmitted JSON text.

                By default, yyjson performs a strict UTF-8 encoding validation on input strings. An error will be reported when an invalid character is encountered.

                -

                You could use YYJSON_READ_ALLOW_INVALID_UNICODE and YYJSON_WRITE_ALLOW_INVALID_UNICODE flag to allow invalid unicode encoding. However, you should be aware that the result value from yyjson may contain invalid characters, which can be used by other code and may pose security risks.

                -

                +

                You could use YYJSON_READ_ALLOW_INVALID_UNICODE and YYJSON_WRITE_ALLOW_INVALID_UNICODE flags to allow invalid unicode encoding. However, you should be aware that the result value from yyjson may contain invalid characters, which can be used by other code and may pose security risks.

                +

                NUL Character

                -

                yyjson supports the NUL character (also known as null terminator, or Unicode U+0000, ASCII \0).

                -

                When reading JSON, \u0000 will be unescaped to NUL. If a string contains NUL, the length obtained with strlen() will be inaccurate, and you should use yyjson_get_len() to get the real length.

                -

                When building JSON, the input string is treated as null-terminated. If you need to pass in a string with NUL inside, you should use the API with the n suffix and pass in the real length.

                +

                The library supports the NUL character (also known as null terminator, or Unicode U+0000, ASCII \0) inside strings.

                +

                When reading JSON, \u0000 will be unescaped to NUL. If a string contains NUL, the length obtained with strlen() will be inaccurate, and you should use yyjson_get_len() to get the actual length.

                +

                When building JSON, the input string is treated as null-terminated. If you need to pass in a string with NUL inside, you should use the API with the n suffix and pass in the actual length.

                For example:

                // null-terminated string
                yyjson_mut_str(doc, str);
                yyjson_obj_get(obj, str);
                @@ -1078,11 +1237,11 @@

                // C++ string
                std::string sstr = ...;
                yyjson_obj_getn(obj, sstr.data(), sstr.length());
                -

                +

                Memory Allocator

                -

                yyjson does not call libc's memory allocation functions (malloc/realloc/free) directly. When memory allocation is required, yyjson's API takes a parameter named alc that allows the caller to pass in an allocator. If the alc is NULL, yyjson will use the default memory allocator, which is a simple wrapper of libc's functions.

                +

                The library does not call libc's memory allocation functions (malloc/realloc/free) directly. Instead, when memory allocation is required, yyjson's API takes a parameter named alc that allows the caller to pass in an allocator. If the alc is NULL, yyjson will use the default memory allocator, which is a simple wrapper of libc's functions.

                Custom memory allocator allows you to take more control over memory allocation, here are a few examples:

                -

                +

                Single allocator for multiple JSON

                If you need to parse multiple small JSON, you can use a single allocator with pre-allocated buffer to avoid frequent memory allocation.

                Sample code:

                // max data size for single JSON
                @@ -1105,8 +1264,8 @@

                // free the buffer
                free(buf);
                -
                yyjson_api_inline size_t yyjson_read_max_memory_usage(size_t len, yyjson_read_flag flg)
                Definition: yyjson.h:782
                -

                +
                yyjson_api_inline size_t yyjson_read_max_memory_usage(size_t len, yyjson_read_flag flg)
                Definition: yyjson.h:785
                +

                Stack memory allocator

                If the JSON is small enough, you can use stack memory to read or write it.

                Sample code:

                char buf[128 * 1024]; // stack buffer
                @@ -1116,7 +1275,7 @@

                yyjson_doc *doc = yyjson_read_opts(dat, len, 0, &alc, NULL);
                ...
                yyjson_doc_free(doc); // this is optional, as the memory is on stack
                -

                +

                Use third-party allocator library

                You can use a third-party high-performance memory allocator for yyjson,
                such as jemalloc, tcmalloc, mimalloc.

                @@ -1153,40 +1312,39 @@

                char *json = yyjson_doc_write(doc, 0, alc, NULL, NULL);
                ...
                alc->free(alc->ctx, json);
                -

                +

                Null Check

                -

                yyjson's public API will do null check for every input parameters to avoid crashes.

                +

                The library's public API will do null check for every input parameter to avoid crashes.

                For example, when reading a JSON, you don't need to do null check or type check on each value:

                yyjson_doc *doc = yyjson_read(NULL, 0, 0); // doc is NULL
                yyjson_val *val = yyjson_doc_get_root(doc); // val is NULL
                const char *str = yyjson_get_str(val); // str is NULL
                if (!str) printf("err!");
                yyjson_doc_free(doc); // do nothing
                -

                But if you are sure that a value is non-null, and the type is matched, you can use the unsafe prefix API to avoid the null check.

                +

                But if you are sure that a value is non-null and the type is matched, you can use the unsafe prefix API to avoid the null check.

                For example, when iterating over an array or object, the value and key must be non-null:

                size_t idx, max;
                yyjson_val *key, *val;
                yyjson_obj_foreach(obj, idx, max, key, val) {
                -
                // this is a valid JSON, so the key must be a non-null string
                +
                // this is a valid JSON, so the key must be a valid string
                if (unsafe_yyjson_equals_str(key, "id") &&
                unsafe_yyjson_is_uint(val) &&
                unsafe_yyjson_get_uint(val) == 1234) {
                -
                // found
                +
                ...
                }
                }
                -

                +

                Thread Safe

                -

                yyjson does not use global variables, so if you can ensure that the input parameters of a function are immutable, then the function call is thread-safe.
                +

                The library does not use global variables, so if you can ensure that the input parameters of a function are thread-safe, then the function calls are also thread-safe.

                -

                yyjson_doc and yyjson_val is immutable and thread-safe,
                - yyjson_mut_doc and yyjson_mut_val is mutable and not thread-safe.

                -

                +

                Typically, yyjson_doc and yyjson_val are immutable and thread-safe, while yyjson_mut_doc and yyjson_mut_val are mutable and not thread-safe.

                +

                Locale Dependent

                -

                yyjson is locale-independent.

                +

                The library is locale-independent.

                However, there are some special conditions that you need to be aware of:

                1. You use libc's setlocale() function to change locale.
                2. -
                3. Your environment does not use IEEE 754 floating-point (e.g. some IBM mainframes) or you explicitly specified the YYJSON_DISABLE_FAST_FP_CONV flag at build time.
                4. +
                5. Your environment does not use IEEE 754 floating-point standard (e.g. some IBM mainframes), or you explicitly set YYJSON_DISABLE_FAST_FP_CONV during build, in which case yyjson will use strtod() to parse floating-point numbers.
                -

                When you meet both of these conditions, you should avoid call setlocale() while other thread is parsing JSON, otherwise an error may be returned for JSON floating point number parsing.

                +

                When you meet both of these conditions, you should avoid calling setlocale() while other thread is parsing JSON, otherwise an error may be returned for JSON floating point number parsing.

                diff --git a/doc/doxygen/html/md_doc__build_and_test.html b/doc/doxygen/html/md_doc__build_and_test.html index 2bb0f48..eef5fb3 100644 --- a/doc/doxygen/html/md_doc__build_and_test.html +++ b/doc/doxygen/html/md_doc__build_and_test.html @@ -6,7 +6,7 @@ -yyjson: Build and Test +yyjson: Building and testing @@ -35,7 +35,7 @@ -
                yyjson 0.5.1 +
                yyjson 0.6.0
                A high performance C JSON library.
                @@ -93,21 +93,30 @@
                -
                Build and Test
                +
                Building and testing

                There are several ways to integrate yyjson into your project: source code, package manager, and CMake.

                Source code

                -

                yyjson aims to provide a cross-platform JSON library, so it was written in ANSI C (actually C99, but compatible with strict C89). You can copy yyjson.h and yyjson.c to your project and start using it without any configuration.

                +

                yyjson aims to provide a cross-platform JSON library, so it is written in ANSI C (actually C99, but compatible with strict C89). You can copy yyjson.h and yyjson.c to your project and start using it without any configuration.

                yyjson has been tested with the following compilers: gcc, clang, msvc, icc, tcc. If you get a compile error, please report a bug.

                yyjson has all features enabled by default, but you can trim out some of them by adding compile-time options. For example, disable JSON writer to reduce the binary size when you don't need serialization, or disable comments support to improve parsing performance. See Compile-time Options for details.

                Package manager

                You can use some popular package managers to download and install yyjson, such as vcpkg, conan, and xmake. The yyjson package in these package managers is kept up to date by community contributors. If the version is out of date, please create an issue or pull request on their repository.

                -

                +

                +Use vcpkg

                +

                You can build and install yyjson using vcpkg dependency manager:

                +
                git clone https://github.com/Microsoft/vcpkg.git
                +
                cd vcpkg
                +
                ./bootstrap-vcpkg.sh # ./bootstrap-vcpkg.bat for Powershell
                +
                ./vcpkg integrate install
                +
                ./vcpkg install yyjson
                +

                If the version is out of date, please create an issue or pull request on the vcpkg repository.

                +

                CMake

                -

                +

                Use CMake to build a library

                Clone the repository and create build directory:

                git clone https://github.com/ibireme/yyjson.git
                mkdir build
                @@ -126,20 +135,35 @@

              • -DYYJSON_ENABLE_VALGRIND=ON Enable valgrind memory checker for tests.
              • -DYYJSON_ENABLE_SANITIZE=ON Enable sanitizer for tests.
              • -DYYJSON_ENABLE_FASTMATH=ON Enable fast-math for tests.
              • -
              • -YYJSON_FORCE_32_BIT=ON Force 32-bit for tests (gcc/clang/icc).
              • +
              • -DYYJSON_FORCE_32_BIT=ON Force 32-bit for tests (gcc/clang/icc).
              • -DYYJSON_DISABLE_READER=ON Disable JSON reader if you don't need it.
              • -DYYJSON_DISABLE_WRITER=ON Disable JSON writer if you don't need it.
              • -
              • -DYYJSON_DISABLE_FAST_FP_CONV=ON Disable fast floating-pointer conversion.
              • +
              • -DYYJSON_DISABLE_FAST_FP_CONV=ON Disable builtin fast floating-pointer conversion.
              • -DYYJSON_DISABLE_NON_STANDARD=ON Disable non-standard JSON support at compile-time.
              -

              +

              Use CMake as a dependency

              -

              You may add the yyjson subdirectory to your CMakeFile.txt, and link it to your target:

              add_subdirectory(vendor/yyjson)
              -
              target_link_libraries(your_target yyjson)
              -

              You may also add some build options for yyjson library:

              set(YYJSON_DISABLE_NON_STANDARD ON CACHE INTERNAL "")
              +

              You can download and unzip yyjson to your project folder and link it in your CMakeLists.txt file:

              # Add some options (optional)
              +
              set(YYJSON_DISABLE_NON_STANDARD ON CACHE INTERNAL "")
              +
              +
              # Add the `yyjson` subdirectory
              add_subdirectory(vendor/yyjson)
              -
              target_link_libraries(your_target yyjson)
              -

              +
              +
              # Link yyjson to your target
              +
              target_link_libraries(your_target PRIVATE yyjson)
              +

              If your CMake version is higher than 3.14, you can use the following method to let CMake automatically download it:

              include(FetchContent)
              +
              +
              # Let CMake download yyjson
              +
              FetchContent_Declare(
              +
              yyjson
              +
              GIT_REPOSITORY https://github.com/ibireme/yyjson.git
              +
              GIT_TAG master # master, or version number, e.g. 0.6.0
              +
              )
              +
              FetchContent_MakeAvailable(yyjson)
              +
              +
              # Link yyjson to your target
              +
              target_link_libraries(your_target PRIVATE yyjson)
              +

              Use CMake to generate project

              If you want to build or debug yyjson with another compiler or IDE, try these commands:

              # Clang for Linux/Unix:
              cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
              @@ -163,12 +187,12 @@

              # Xcode with XCTest
              cmake .. -G Xcode -DYYJSON_BUILD_TESTS=ON
              -

              +

            Use CMake to generate documentation

            yyjson uses doxygen to generate the documentation (you must have doxygen installed):

            cmake .. -DYYJSON_BUILD_DOC=ON
            cmake --build .

            After executing this script, doxygen will output the generated html files to build/doxygen/html. You can also read the pre-generated document online: https://ibireme.github.io/yyjson/doc/doxygen/html/

            -

            +

            Testing With CMake and CTest

            Build and run all tests:

            cmake .. -DYYJSON_BUILD_TESTS=ON
            cmake --build .
            @@ -185,10 +209,10 @@

            lcov -c -d ./CMakeFiles/yyjson.dir/src -o cov.info
            genhtml cov.info -o ./cov_report
            -

            Build and run fuzz test with LibFuzzer (compiler should be LLVM Clang, Apple Clang or gcc is not supported):

            cmake .. -DYYJSON_BUILD_FUZZER=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
            +

            Build and run fuzz test with LibFuzzer (compiler should be LLVM Clang, while Apple Clang or gcc are not supported):

            cmake .. -DYYJSON_BUILD_FUZZER=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
            cmake --build .
            ./fuzzer -dict=fuzzer.dict ./corpus
            -

            +

            Compile-time Options

            yyjson supports some compile-time options, you can define these macros as 1 to disable some features at compile-time.

            YYJSON_DISABLE_READER
            @@ -198,7 +222,7 @@

            yyjson_api yyjson_doc * yyjson_read_file(const char *path, yyjson_read_flag flg, const yyjson_alc *alc, yyjson_read_err *err)
            yyjson_api yyjson_doc * yyjson_read_opts(char *dat, size_t len, yyjson_read_flag flg, const yyjson_alc *alc, yyjson_read_err *err)
            -
            yyjson_api_inline yyjson_doc * yyjson_read(const char *dat, size_t len, yyjson_read_flag flg)
            Definition: yyjson.h:738
            +
            yyjson_api_inline yyjson_doc * yyjson_read(const char *dat, size_t len, yyjson_read_flag flg)
            Definition: yyjson.h:741

This will reduce the binary size by about 60%.
It is recommended when you don't need to parse JSON.

YYJSON_DISABLE_WRITER
@@ -215,28 +239,28 @@

-
yyjson_api_inline char * yyjson_val_write(const yyjson_val *val, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:1114
+
yyjson_api_inline char * yyjson_val_write(const yyjson_val *val, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:1164
yyjson_api bool yyjson_write_file(const char *path, const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
yyjson_api char * yyjson_write_opts(const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
-
yyjson_api_inline char * yyjson_mut_val_write(const yyjson_mut_val *val, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:1192
+
yyjson_api_inline char * yyjson_mut_val_write(const yyjson_mut_val *val, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:1242
yyjson_api bool yyjson_val_write_file(const char *path, const yyjson_val *val, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
yyjson_api char * yyjson_val_write_opts(const yyjson_val *val, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
yyjson_api char * yyjson_mut_write_opts(const yyjson_mut_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
-
yyjson_api_inline char * yyjson_mut_write(const yyjson_mut_doc *doc, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:1033
+
yyjson_api_inline char * yyjson_mut_write(const yyjson_mut_doc *doc, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:1083
yyjson_api char * yyjson_mut_val_write_opts(const yyjson_mut_val *val, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
-
yyjson_api_inline char * yyjson_write(const yyjson_doc *doc, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:953
+
yyjson_api_inline char * yyjson_write(const yyjson_doc *doc, yyjson_write_flag flg, size_t *len)
Definition: yyjson.h:1003
yyjson_api bool yyjson_mut_write_file(const char *path, const yyjson_mut_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
yyjson_api bool yyjson_mut_val_write_file(const char *path, const yyjson_mut_val *val, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)

This will reduce the binary size by about 30%.
It is recommended when you don't need to serialize JSON.

YYJSON_DISABLE_FAST_FP_CONV
Define as 1 to disable the fast floating-point number conversion in yyjson, and use libc's strtod/snprintf instead.
- This will reduce binary size by about 30%, but significantly slow down floating-point reading and writing speed.
+ This will reduce binary size by about 30%, but significantly slow down the floating-point read/write speed.
It is recommended when you don't need to deal with JSON that contains a lot of floating point numbers.

YYJSON_DISABLE_NON_STANDARD
Define as 1 to disable non-standard JSON support at compile-time:

This will reduce binary size by about 10%, and increase performance slightly.
It is recommended when you don't need to deal with non-standard JSON.

YYJSON_EXPORTS
diff --git a/doc/doxygen/html/md_doc__data_structure.html b/doc/doxygen/html/md_doc__data_structure.html index ac10186..40adf02 100644 --- a/doc/doxygen/html/md_doc__data_structure.html +++ b/doc/doxygen/html/md_doc__data_structure.html @@ -35,7 +35,7 @@ -

yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
@@ -96,14 +96,15 @@
Data Structures
-

yyjson has 2 types of data structures: immutable and mutable.

-

When reading a JSON, yyjson returns immutable document and values;
- When building a JSON, yyjson creates mutable document and values.
- yyjson also provides some methods to convert immutable document into mutable document.
-
- Note that the data structures described in this document are private, and you should use public API to access them.

+

yyjson has two types of data structures: immutable and mutable.

+
    +
  • Immutable data structures are returned when reading a JSON document. They cannot be modified.
  • +
  • Mutable data structures are created when building a JSON document. They can be modified.
  • +
  • yyjson also provides some functions for converting between these two types of data structures.
  • +
+

Note that the data structures described in this document are private, and you should use the public API to access them.


-

+

Immutable Value

Each JSON value is stored in an immutable yyjson_val struct:

struct yyjson_val {
uint64_t tag;
@@ -116,14 +117,14 @@

size_t ofs;
} uni;
}
-
yyjson_val_uni uni
Definition: yyjson.h:3271
-
uint64_t tag
Definition: yyjson.h:3270
-
Definition: yyjson.h:3269
+
yyjson_val_uni uni
Definition: yyjson.h:3475
+
uint64_t tag
Definition: yyjson.h:3474
+
Definition: yyjson.h:3473

The lower 8 bits of tag stores the type of value.
The higher 56 bits of tag stores the size of value (string length, object size or array size).

-

Modern 64-bit processors are typically limited to supporting fewer than 64 bits for RAM addresses (Wikipedia). For example, Intel64, AMD64 and ARMv8 has a 52-bit (4PB) physical address limit. So we can safely store type and size into a 64 bits tag.

-

+

Modern 64-bit processors are typically limited to supporting fewer than 64 bits for RAM addresses (Wikipedia). For example, Intel64, AMD64, and ARMv8 have a 52-bit (4PB) physical address limit. Therefore, it is safe to store the type and size in a 64-bit tag.

+

Immutable Document

A JSON document stores all strings in a contiguous memory area.
Each string is unescaped in-place and ended with a null-terminator.
@@ -131,16 +132,16 @@

-yyjson_val
+yyjson_doc

A JSON document stores all values in another contiguous memory area.
The object and array stores their own memory usage, so we can easily walk through a container's child values.
For example:

-yyjson_val
+yyjson_doc

-

+

Mutable Value

Each mutable JSON value is stored in an yyjson_mut_val struct:

uint64_t tag;
@@ -154,22 +155,22 @@

} uni;
}
-
yyjson_mut_val * next
Definition: yyjson.h:3832
-
yyjson_val_uni uni
Definition: yyjson.h:3831
-
uint64_t tag
Definition: yyjson.h:3830
-
Definition: yyjson.h:3829
-

+
yyjson_mut_val * next
Definition: yyjson.h:4165
+
yyjson_val_uni uni
Definition: yyjson.h:4164
+
uint64_t tag
Definition: yyjson.h:4163
+
Definition: yyjson.h:4162
+

The tag and uni field is same as immutable value, the next field is used to build linked list.

-

+

Mutable Document

A mutable JSON document is composed of multiple yyjson_mut_val.

The child values of an object or array are linked as a cycle,
- the parent hold the tail of the linked list, so yyjson can do append, prepend and remove_first in O(1) time.

+ the parent holds the tail of the circular linked list, so that yyjson can do append, prepend and remove_first in O(1) time.

For example:

-yyjson_val
+yyjson_mut_doc
diff --git a/doc/doxygen/html/navtreedata.js b/doc/doxygen/html/navtreedata.js index 69504fa..4b482e8 100644 --- a/doc/doxygen/html/navtreedata.js +++ b/doc/doxygen/html/navtreedata.js @@ -34,87 +34,87 @@ var NAVTREE = [ "TODO", "index.html#autotoc_md13", null ], [ "License", "index.html#autotoc_md14", null ] ] ], - [ "Build and Test", "md_doc__build_and_test.html", [ + [ "Building and testing", "md_doc__build_and_test.html", [ [ "Source code", "md_doc__build_and_test.html#autotoc_md15", null ], - [ "Package manager", "md_doc__build_and_test.html#autotoc_md16", null ], - [ "CMake", "md_doc__build_and_test.html#autotoc_md17", [ - [ "Use CMake to build a library", "md_doc__build_and_test.html#autotoc_md18", null ], - [ "Use CMake as a dependency", "md_doc__build_and_test.html#autotoc_md19", null ], - [ "Use CMake to generate project", "md_doc__build_and_test.html#autotoc_md20", null ], - [ "Use CMake to generate documentation", "md_doc__build_and_test.html#autotoc_md21", null ], - [ "Testing With CMake and CTest", "md_doc__build_and_test.html#autotoc_md22", null ] + [ "Package manager", "md_doc__build_and_test.html#autotoc_md16", [ + [ "Use vcpkg", "md_doc__build_and_test.html#autotoc_md17", null ] ] ], - [ "Compile-time Options", "md_doc__build_and_test.html#autotoc_md23", null ] + [ "CMake", "md_doc__build_and_test.html#autotoc_md18", [ + [ "Use CMake to build a library", "md_doc__build_and_test.html#autotoc_md19", null ], + [ "Use CMake as a dependency", "md_doc__build_and_test.html#autotoc_md20", null ], + [ "Use CMake to generate project", "md_doc__build_and_test.html#autotoc_md21", null ], + [ "Use CMake to generate documentation", "md_doc__build_and_test.html#autotoc_md22", null ], + [ "Testing With CMake and CTest", "md_doc__build_and_test.html#autotoc_md23", null ] + ] ], + [ "Compile-time Options", "md_doc__build_and_test.html#autotoc_md24", null ] ] ], [ "API", "md_doc__a_p_i.html", [ - [ "API Design", "md_doc__a_p_i.html#autotoc_md24", [ - [ "API prefix", "md_doc__a_p_i.html#autotoc_md25", null ], - [ "API for immutable/mutable data", "md_doc__a_p_i.html#autotoc_md26", null ], - [ "API for string", "md_doc__a_p_i.html#autotoc_md27", null ] + [ "API Design", "md_doc__a_p_i.html#autotoc_md25", [ + [ "API prefix", "md_doc__a_p_i.html#autotoc_md26", null ], + [ "API for immutable/mutable data", "md_doc__a_p_i.html#autotoc_md27", null ], + [ "API for string", "md_doc__a_p_i.html#autotoc_md28", null ] ] ], - [ "Read JSON", "md_doc__a_p_i.html#autotoc_md29", [ - [ "Read JSON from string", "md_doc__a_p_i.html#autotoc_md30", null ], - [ "Read JSON from file", "md_doc__a_p_i.html#autotoc_md31", null ], - [ "Read JSON with options", "md_doc__a_p_i.html#autotoc_md32", null ], - [ "Reader flag", "md_doc__a_p_i.html#autotoc_md33", null ] + [ "Read JSON", "md_doc__a_p_i.html#autotoc_md30", [ + [ "Read JSON from string", "md_doc__a_p_i.html#autotoc_md31", null ], + [ "Read JSON from file", "md_doc__a_p_i.html#autotoc_md32", null ], + [ "Read JSON with options", "md_doc__a_p_i.html#autotoc_md33", null ], + [ "Reader flag", "md_doc__a_p_i.html#autotoc_md34", null ] ] ], - [ "Write JSON", "md_doc__a_p_i.html#autotoc_md35", [ - [ "Write JSON to string", "md_doc__a_p_i.html#autotoc_md36", null ], - [ "Write JSON to file", "md_doc__a_p_i.html#autotoc_md37", null ], - [ "Write JSON with options", "md_doc__a_p_i.html#autotoc_md38", null ], - [ "Writer flag", "md_doc__a_p_i.html#autotoc_md39", null ] + [ "Write JSON", "md_doc__a_p_i.html#autotoc_md36", [ + [ "Write JSON to string", "md_doc__a_p_i.html#autotoc_md37", null ], + [ "Write JSON to file", "md_doc__a_p_i.html#autotoc_md38", null ], + [ "Write JSON with options", "md_doc__a_p_i.html#autotoc_md39", null ], + [ "Writer flag", "md_doc__a_p_i.html#autotoc_md40", null ] ] ], - [ "Access JSON Document", "md_doc__a_p_i.html#autotoc_md41", [ - [ "JSON Document API", "md_doc__a_p_i.html#autotoc_md42", null ], - [ "JSON Value API", "md_doc__a_p_i.html#autotoc_md43", null ], - [ "JSON Value Content API", "md_doc__a_p_i.html#autotoc_md44", null ], - [ "JSON Array API", "md_doc__a_p_i.html#autotoc_md45", null ], - [ "JSON Array Iterator API", "md_doc__a_p_i.html#autotoc_md46", null ], - [ "JSON Object API", "md_doc__a_p_i.html#autotoc_md47", null ], - [ "JSON Object Iterator API", "md_doc__a_p_i.html#autotoc_md48", null ], + [ "Access JSON Document", "md_doc__a_p_i.html#autotoc_md42", [ + [ "JSON Document", "md_doc__a_p_i.html#autotoc_md43", null ], + [ "JSON Value", "md_doc__a_p_i.html#autotoc_md44", null ], + [ "JSON Array", "md_doc__a_p_i.html#autotoc_md45", null ], + [ "JSON Array Iterator", "md_doc__a_p_i.html#autotoc_md46", null ], + [ "JSON Object", "md_doc__a_p_i.html#autotoc_md47", null ], + [ "JSON Object Iterator", "md_doc__a_p_i.html#autotoc_md48", null ], [ "JSON Pointer", "md_doc__a_p_i.html#autotoc_md49", null ] ] ], [ "Create JSON Document", "md_doc__a_p_i.html#autotoc_md51", [ - [ "Mutable Document API", "md_doc__a_p_i.html#autotoc_md52", null ], - [ "Mutable JSON Value Creation API", "md_doc__a_p_i.html#autotoc_md53", null ], - [ "Mutable JSON Array Creation API", "md_doc__a_p_i.html#autotoc_md54", null ], - [ "Mutable JSON Array Modification API", "md_doc__a_p_i.html#autotoc_md55", null ], - [ "Mutable JSON Array Modification Convenience API", "md_doc__a_p_i.html#autotoc_md56", null ], - [ "Mutable JSON Object Creation API", "md_doc__a_p_i.html#autotoc_md57", null ], - [ "Mutable JSON Object Modification API", "md_doc__a_p_i.html#autotoc_md58", null ], - [ "Mutable JSON Object Modification Convenience API", "md_doc__a_p_i.html#autotoc_md59", null ], - [ "JSON Merge Patch", "md_doc__a_p_i.html#autotoc_md60", null ] + [ "Mutable Document", "md_doc__a_p_i.html#autotoc_md52", null ], + [ "JSON Value Creation", "md_doc__a_p_i.html#autotoc_md53", null ], + [ "JSON Array Creation", "md_doc__a_p_i.html#autotoc_md54", null ], + [ "JSON Array Modification", "md_doc__a_p_i.html#autotoc_md55", null ], + [ "JSON Object Creation", "md_doc__a_p_i.html#autotoc_md56", null ], + [ "JSON Object Modification", "md_doc__a_p_i.html#autotoc_md57", null ], + [ "JSON Merge Patch", "md_doc__a_p_i.html#autotoc_md58", null ] ] ], - [ "Number Processing", "md_doc__a_p_i.html#autotoc_md62", [ - [ "Number reader", "md_doc__a_p_i.html#autotoc_md63", null ], - [ "Number writer", "md_doc__a_p_i.html#autotoc_md64", null ] + [ "Number Processing", "md_doc__a_p_i.html#autotoc_md60", [ + [ "Number reader", "md_doc__a_p_i.html#autotoc_md61", null ], + [ "Number writer", "md_doc__a_p_i.html#autotoc_md62", null ] ] ], - [ "Text Processing", "md_doc__a_p_i.html#autotoc_md65", [ - [ "Character Encoding", "md_doc__a_p_i.html#autotoc_md66", null ], - [ "NUL Character", "md_doc__a_p_i.html#autotoc_md67", null ] + [ "Text Processing", "md_doc__a_p_i.html#autotoc_md63", [ + [ "Character Encoding", "md_doc__a_p_i.html#autotoc_md64", null ], + [ "NUL Character", "md_doc__a_p_i.html#autotoc_md65", null ] ] ], - [ "Memory Allocator", "md_doc__a_p_i.html#autotoc_md68", [ - [ "Single allocator for multiple JSON", "md_doc__a_p_i.html#autotoc_md69", null ], - [ "Stack memory allocator", "md_doc__a_p_i.html#autotoc_md70", null ], - [ "Use third-party allocator library", "md_doc__a_p_i.html#autotoc_md71", null ] + [ "Memory Allocator", "md_doc__a_p_i.html#autotoc_md66", [ + [ "Single allocator for multiple JSON", "md_doc__a_p_i.html#autotoc_md67", null ], + [ "Stack memory allocator", "md_doc__a_p_i.html#autotoc_md68", null ], + [ "Use third-party allocator library", "md_doc__a_p_i.html#autotoc_md69", null ] ] ], - [ "Null Check", "md_doc__a_p_i.html#autotoc_md72", null ], - [ "Thread Safe", "md_doc__a_p_i.html#autotoc_md73", null ], - [ "Locale Dependent", "md_doc__a_p_i.html#autotoc_md74", null ] + [ "Null Check", "md_doc__a_p_i.html#autotoc_md70", null ], + [ "Thread Safe", "md_doc__a_p_i.html#autotoc_md71", null ], + [ "Locale Dependent", "md_doc__a_p_i.html#autotoc_md72", null ] ] ], [ "Data Structures", "md_doc__data_structure.html", [ - [ "Immutable Value", "md_doc__data_structure.html#autotoc_md76", null ], - [ "Immutable Document", "md_doc__data_structure.html#autotoc_md77", null ], - [ "Mutable Value", "md_doc__data_structure.html#autotoc_md79", null ], - [ "Mutable Document", "md_doc__data_structure.html#autotoc_md80", null ] + [ "Immutable Value", "md_doc__data_structure.html#autotoc_md74", null ], + [ "Immutable Document", "md_doc__data_structure.html#autotoc_md75", null ], + [ "Mutable Value", "md_doc__data_structure.html#autotoc_md77", null ], + [ "Mutable Document", "md_doc__data_structure.html#autotoc_md78", null ] ] ], [ "Changelog", "md__c_h_a_n_g_e_l_o_g.html", [ - [ "0.5.1 (2022-06-17)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md82", null ], - [ "0.5.0 (2022-05-25)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md84", null ], - [ "0.4.0 (2021-12-12)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md88", null ], - [ "0.3.0 (2021-05-25)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md92", null ], - [ "0.2.0 (2020-12-12)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md96", null ], - [ "0.1.0 (2020-10-26)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md101", null ] + [ "0.6.0 (2022-12-12)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md80", null ], + [ "0.5.1 (2022-06-17)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md83", null ], + [ "0.5.0 (2022-05-25)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md85", null ], + [ "0.4.0 (2021-12-12)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md89", null ], + [ "0.3.0 (2021-05-25)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md93", null ], + [ "0.2.0 (2020-12-12)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md97", null ], + [ "0.1.0 (2020-10-26)", "md__c_h_a_n_g_e_l_o_g.html#autotoc_md102", null ] ] ], [ "Files", "files.html", [ [ "File List", "files.html", "files_dup" ], @@ -140,7 +140,7 @@ var NAVTREE = var NAVTREEINDEX = [ "annotated.html", -"yyjson_8h.html#a6efba736a610baa629bf2a0b0a41d4a9" +"yyjson_8h.html#a691136e772913e98860a791e65b70f04" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/doc/doxygen/html/navtreeindex0.js b/doc/doxygen/html/navtreeindex0.js index 53ef67d..db27c95 100644 --- a/doc/doxygen/html/navtreeindex0.js +++ b/doc/doxygen/html/navtreeindex0.js @@ -24,36 +24,36 @@ var NAVTREEINDEX0 = "index.html#autotoc_md3":[0,2], "index.html#autotoc_md7":[0,3], "md__c_h_a_n_g_e_l_o_g.html":[4], -"md__c_h_a_n_g_e_l_o_g.html#autotoc_md101":[4,5], -"md__c_h_a_n_g_e_l_o_g.html#autotoc_md82":[4,0], -"md__c_h_a_n_g_e_l_o_g.html#autotoc_md84":[4,1], -"md__c_h_a_n_g_e_l_o_g.html#autotoc_md88":[4,2], -"md__c_h_a_n_g_e_l_o_g.html#autotoc_md92":[4,3], -"md__c_h_a_n_g_e_l_o_g.html#autotoc_md96":[4,4], +"md__c_h_a_n_g_e_l_o_g.html#autotoc_md102":[4,6], +"md__c_h_a_n_g_e_l_o_g.html#autotoc_md80":[4,0], +"md__c_h_a_n_g_e_l_o_g.html#autotoc_md83":[4,1], +"md__c_h_a_n_g_e_l_o_g.html#autotoc_md85":[4,2], +"md__c_h_a_n_g_e_l_o_g.html#autotoc_md89":[4,3], +"md__c_h_a_n_g_e_l_o_g.html#autotoc_md93":[4,4], +"md__c_h_a_n_g_e_l_o_g.html#autotoc_md97":[4,5], "md_doc__a_p_i.html":[2], -"md_doc__a_p_i.html#autotoc_md24":[2,0], -"md_doc__a_p_i.html#autotoc_md25":[2,0,0], -"md_doc__a_p_i.html#autotoc_md26":[2,0,1], -"md_doc__a_p_i.html#autotoc_md27":[2,0,2], -"md_doc__a_p_i.html#autotoc_md29":[2,1], -"md_doc__a_p_i.html#autotoc_md30":[2,1,0], -"md_doc__a_p_i.html#autotoc_md31":[2,1,1], -"md_doc__a_p_i.html#autotoc_md32":[2,1,2], -"md_doc__a_p_i.html#autotoc_md33":[2,1,3], -"md_doc__a_p_i.html#autotoc_md35":[2,2], -"md_doc__a_p_i.html#autotoc_md36":[2,2,0], -"md_doc__a_p_i.html#autotoc_md37":[2,2,1], -"md_doc__a_p_i.html#autotoc_md38":[2,2,2], -"md_doc__a_p_i.html#autotoc_md39":[2,2,3], -"md_doc__a_p_i.html#autotoc_md41":[2,3], -"md_doc__a_p_i.html#autotoc_md42":[2,3,0], -"md_doc__a_p_i.html#autotoc_md43":[2,3,1], -"md_doc__a_p_i.html#autotoc_md44":[2,3,2], -"md_doc__a_p_i.html#autotoc_md45":[2,3,3], -"md_doc__a_p_i.html#autotoc_md46":[2,3,4], -"md_doc__a_p_i.html#autotoc_md47":[2,3,5], -"md_doc__a_p_i.html#autotoc_md48":[2,3,6], -"md_doc__a_p_i.html#autotoc_md49":[2,3,7], +"md_doc__a_p_i.html#autotoc_md25":[2,0], +"md_doc__a_p_i.html#autotoc_md26":[2,0,0], +"md_doc__a_p_i.html#autotoc_md27":[2,0,1], +"md_doc__a_p_i.html#autotoc_md28":[2,0,2], +"md_doc__a_p_i.html#autotoc_md30":[2,1], +"md_doc__a_p_i.html#autotoc_md31":[2,1,0], +"md_doc__a_p_i.html#autotoc_md32":[2,1,1], +"md_doc__a_p_i.html#autotoc_md33":[2,1,2], +"md_doc__a_p_i.html#autotoc_md34":[2,1,3], +"md_doc__a_p_i.html#autotoc_md36":[2,2], +"md_doc__a_p_i.html#autotoc_md37":[2,2,0], +"md_doc__a_p_i.html#autotoc_md38":[2,2,1], +"md_doc__a_p_i.html#autotoc_md39":[2,2,2], +"md_doc__a_p_i.html#autotoc_md40":[2,2,3], +"md_doc__a_p_i.html#autotoc_md42":[2,3], +"md_doc__a_p_i.html#autotoc_md43":[2,3,0], +"md_doc__a_p_i.html#autotoc_md44":[2,3,1], +"md_doc__a_p_i.html#autotoc_md45":[2,3,2], +"md_doc__a_p_i.html#autotoc_md46":[2,3,3], +"md_doc__a_p_i.html#autotoc_md47":[2,3,4], +"md_doc__a_p_i.html#autotoc_md48":[2,3,5], +"md_doc__a_p_i.html#autotoc_md49":[2,3,6], "md_doc__a_p_i.html#autotoc_md51":[2,4], "md_doc__a_p_i.html#autotoc_md52":[2,4,0], "md_doc__a_p_i.html#autotoc_md53":[2,4,1], @@ -62,36 +62,35 @@ var NAVTREEINDEX0 = "md_doc__a_p_i.html#autotoc_md56":[2,4,4], "md_doc__a_p_i.html#autotoc_md57":[2,4,5], "md_doc__a_p_i.html#autotoc_md58":[2,4,6], -"md_doc__a_p_i.html#autotoc_md59":[2,4,7], -"md_doc__a_p_i.html#autotoc_md60":[2,4,8], -"md_doc__a_p_i.html#autotoc_md62":[2,5], -"md_doc__a_p_i.html#autotoc_md63":[2,5,0], -"md_doc__a_p_i.html#autotoc_md64":[2,5,1], -"md_doc__a_p_i.html#autotoc_md65":[2,6], -"md_doc__a_p_i.html#autotoc_md66":[2,6,0], -"md_doc__a_p_i.html#autotoc_md67":[2,6,1], -"md_doc__a_p_i.html#autotoc_md68":[2,7], -"md_doc__a_p_i.html#autotoc_md69":[2,7,0], -"md_doc__a_p_i.html#autotoc_md70":[2,7,1], -"md_doc__a_p_i.html#autotoc_md71":[2,7,2], -"md_doc__a_p_i.html#autotoc_md72":[2,8], -"md_doc__a_p_i.html#autotoc_md73":[2,9], -"md_doc__a_p_i.html#autotoc_md74":[2,10], +"md_doc__a_p_i.html#autotoc_md60":[2,5], +"md_doc__a_p_i.html#autotoc_md61":[2,5,0], +"md_doc__a_p_i.html#autotoc_md62":[2,5,1], +"md_doc__a_p_i.html#autotoc_md63":[2,6], +"md_doc__a_p_i.html#autotoc_md64":[2,6,0], +"md_doc__a_p_i.html#autotoc_md65":[2,6,1], +"md_doc__a_p_i.html#autotoc_md66":[2,7], +"md_doc__a_p_i.html#autotoc_md67":[2,7,0], +"md_doc__a_p_i.html#autotoc_md68":[2,7,1], +"md_doc__a_p_i.html#autotoc_md69":[2,7,2], +"md_doc__a_p_i.html#autotoc_md70":[2,8], +"md_doc__a_p_i.html#autotoc_md71":[2,9], +"md_doc__a_p_i.html#autotoc_md72":[2,10], "md_doc__build_and_test.html":[1], "md_doc__build_and_test.html#autotoc_md15":[1,0], "md_doc__build_and_test.html#autotoc_md16":[1,1], -"md_doc__build_and_test.html#autotoc_md17":[1,2], -"md_doc__build_and_test.html#autotoc_md18":[1,2,0], -"md_doc__build_and_test.html#autotoc_md19":[1,2,1], -"md_doc__build_and_test.html#autotoc_md20":[1,2,2], -"md_doc__build_and_test.html#autotoc_md21":[1,2,3], -"md_doc__build_and_test.html#autotoc_md22":[1,2,4], -"md_doc__build_and_test.html#autotoc_md23":[1,3], +"md_doc__build_and_test.html#autotoc_md17":[1,1,0], +"md_doc__build_and_test.html#autotoc_md18":[1,2], +"md_doc__build_and_test.html#autotoc_md19":[1,2,0], +"md_doc__build_and_test.html#autotoc_md20":[1,2,1], +"md_doc__build_and_test.html#autotoc_md21":[1,2,2], +"md_doc__build_and_test.html#autotoc_md22":[1,2,3], +"md_doc__build_and_test.html#autotoc_md23":[1,2,4], +"md_doc__build_and_test.html#autotoc_md24":[1,3], "md_doc__data_structure.html":[3], -"md_doc__data_structure.html#autotoc_md76":[3,0], -"md_doc__data_structure.html#autotoc_md77":[3,1], -"md_doc__data_structure.html#autotoc_md79":[3,2], -"md_doc__data_structure.html#autotoc_md80":[3,3], +"md_doc__data_structure.html#autotoc_md74":[3,0], +"md_doc__data_structure.html#autotoc_md75":[3,1], +"md_doc__data_structure.html#autotoc_md77":[3,2], +"md_doc__data_structure.html#autotoc_md78":[3,3], "pages.html":[], "structyyjson__alc.html":[5,2,0,0], "structyyjson__alc.html#a2c770ff93f0f331bd60076eecd93661e":[5,2,0,0,1], @@ -99,155 +98,156 @@ var NAVTREEINDEX0 = "structyyjson__alc.html#ad8aa6e0f1af26b74e6540c8439aafa9e":[5,2,0,0,3], "structyyjson__alc.html#ae9499246c39efd68c206280de1b31f45":[5,2,0,0,0], "yyjson_8h.html":[5,0,0,0], -"yyjson_8h.html#a00409eb59aee687f7778d00510b59d38":[5,0,0,0,260], +"yyjson_8h.html#a00409eb59aee687f7778d00510b59d38":[5,0,0,0,286], "yyjson_8h.html#a012fa5561c6c87879cceee4e0879a6b6":[5,0,0,0,44], "yyjson_8h.html#a01aace85ea46ac42974d86fb217a5086":[5,0,0,0,82], "yyjson_8h.html#a022754b3eabf9ec15a4f8e9d52db015f":[5,0,0,0,76], -"yyjson_8h.html#a032637dbdee5a6525420384daa097dff":[5,0,0,0,237], -"yyjson_8h.html#a046c7832484dab943bed61ffac274e9c":[5,0,0,0,270], -"yyjson_8h.html#a04ff184b833fe2d6932309821e2b2e5a":[5,0,0,0,259], +"yyjson_8h.html#a032637dbdee5a6525420384daa097dff":[5,0,0,0,252], +"yyjson_8h.html#a046c7832484dab943bed61ffac274e9c":[5,0,0,0,296], +"yyjson_8h.html#a04ff184b833fe2d6932309821e2b2e5a":[5,0,0,0,285], "yyjson_8h.html#a05771fb3cd9c9d2f854dc9528feac58a":[5,0,0,0,133], "yyjson_8h.html#a0590c5ffcdd4f997a0ab5845ef624531":[5,0,0,0,42], "yyjson_8h.html#a05ac3955547a4be055542f922564ded6":[5,0,0,0,7,2], -"yyjson_8h.html#a0718192e8eb1b46a83116b15ce6e67c7":[5,0,0,0,171], +"yyjson_8h.html#a0718192e8eb1b46a83116b15ce6e67c7":[5,0,0,0,172], +"yyjson_8h.html#a079fdf2d481492c8533104437dbf2283":[5,0,0,0,278], "yyjson_8h.html#a07affd3b28fe93360627a1c4e03b5b88":[5,0,0,0,31], "yyjson_8h.html#a083356ecb65e45453033285f3d836de9":[5,0,0,0,62], "yyjson_8h.html#a08b69c78024de357ed49abcc19d5b2f3":[5,0,0,0,113], "yyjson_8h.html#a09acbadaf1d791167a277ed35540577b":[5,0,0,0,104], "yyjson_8h.html#a0a914f47b39417dd25fe728eef7d8f00":[5,0,0,0,34], -"yyjson_8h.html#a0b729e2b5afc21914a723897dda10c3f":[5,0,0,0,280], -"yyjson_8h.html#a0d42ebb09b02ed4e579938b96a833070":[5,0,0,0,282], +"yyjson_8h.html#a0b729e2b5afc21914a723897dda10c3f":[5,0,0,0,306], +"yyjson_8h.html#a0cbd041b4d5a31d6dcc0bd759eae6cf7":[5,0,0,0,242], +"yyjson_8h.html#a0d42ebb09b02ed4e579938b96a833070":[5,0,0,0,308], "yyjson_8h.html#a0de4b27af40f104d2b1aac72edd6832e":[5,0,0,0,22], "yyjson_8h.html#a0ea8514c92f39fd93ddcbe93a7f466e5":[5,0,0,0,55], -"yyjson_8h.html#a0eeb35b40e688fce9dd61ed400984042":[5,0,0,0,298], -"yyjson_8h.html#a0f1a9fea8fbc13caf61861dfdb498d46":[5,0,0,0,223], +"yyjson_8h.html#a0eeb35b40e688fce9dd61ed400984042":[5,0,0,0,324], +"yyjson_8h.html#a0f1a9fea8fbc13caf61861dfdb498d46":[5,0,0,0,226], +"yyjson_8h.html#a108d97873650fd95453f3c82a0b6a2aa":[5,0,0,0,237], "yyjson_8h.html#a11aa8b6fd06edf8fe371bae828052b39":[5,0,0,0,13,2], "yyjson_8h.html#a125859d255ca67ed339fbf3d05539c94":[5,0,0,0,108], "yyjson_8h.html#a13065ff687cfd3b49eb38739676594f3":[5,0,0,0,36], "yyjson_8h.html#a13178c6320dbd1268f2548c08505c311":[5,0,0,0,69], -"yyjson_8h.html#a13c39f37c6936907c266ba9c076dd741":[5,0,0,0,235], -"yyjson_8h.html#a13d5da22b245b8242d9c5c6bd6b3582b":[5,0,0,0,218], +"yyjson_8h.html#a13c39f37c6936907c266ba9c076dd741":[5,0,0,0,250], +"yyjson_8h.html#a13d5da22b245b8242d9c5c6bd6b3582b":[5,0,0,0,219], "yyjson_8h.html#a147b5b874e6b939731f1b6c15abcbbca":[5,0,0,0,64], "yyjson_8h.html#a1557f6dca4e03380449cb9b5f043f699":[5,0,0,0,121], -"yyjson_8h.html#a1588bdc6f4125e5c6d1daf6b240f6ff8":[5,0,0,0,236], +"yyjson_8h.html#a1588bdc6f4125e5c6d1daf6b240f6ff8":[5,0,0,0,251], "yyjson_8h.html#a158fecc9fb751aeb56472844321bdfab":[5,0,0,0,107], "yyjson_8h.html#a15bbce96107aa455670ebe9aab98964d":[5,0,0,0,51], "yyjson_8h.html#a172090776a18e45190c933fb3294c07c":[5,0,0,0,8,0], -"yyjson_8h.html#a177181eee333314c7b40e2dc573fcdec":[5,0,0,0,231], -"yyjson_8h.html#a179477749cf2aa26c0841089debe4756":[5,0,0,0,297], +"yyjson_8h.html#a177181eee333314c7b40e2dc573fcdec":[5,0,0,0,235], +"yyjson_8h.html#a179477749cf2aa26c0841089debe4756":[5,0,0,0,323], "yyjson_8h.html#a17d4291b05a54acc6310d16653de48b3":[5,0,0,0,13,1], -"yyjson_8h.html#a17fda97923bb434d4214c56534586606":[5,0,0,0,179], -"yyjson_8h.html#a184a7d8fa5b929ce01c7181712c34747":[5,0,0,0,158], -"yyjson_8h.html#a18810c64371c556ea42c0addb9e25bdc":[5,0,0,0,279], -"yyjson_8h.html#a1887a4e64900348851f22d528950bf7e":[5,0,0,0,157], -"yyjson_8h.html#a1a032ed912524326d22331f7dd1366f2":[5,0,0,0,168], +"yyjson_8h.html#a17fda97923bb434d4214c56534586606":[5,0,0,0,180], +"yyjson_8h.html#a184a7d8fa5b929ce01c7181712c34747":[5,0,0,0,159], +"yyjson_8h.html#a18810c64371c556ea42c0addb9e25bdc":[5,0,0,0,305], +"yyjson_8h.html#a1887a4e64900348851f22d528950bf7e":[5,0,0,0,158], +"yyjson_8h.html#a1a032ed912524326d22331f7dd1366f2":[5,0,0,0,169], "yyjson_8h.html#a1a7a91be15978b45345976c8432769aa":[5,0,0,0,65], "yyjson_8h.html#a1b6f74828e64779d450ffd0cbe61f08f":[5,0,0,0,13,0], -"yyjson_8h.html#a1cafb3655e6e9e60f019d2b7a9bf79c2":[5,0,0,0,286], -"yyjson_8h.html#a1d544048860a8c53510d560b4d60411a":[5,0,0,0,201], +"yyjson_8h.html#a1cafb3655e6e9e60f019d2b7a9bf79c2":[5,0,0,0,312], +"yyjson_8h.html#a1d544048860a8c53510d560b4d60411a":[5,0,0,0,202], "yyjson_8h.html#a1d8217217a7138d40e01752d3181ab85":[5,0,0,0,14,3], "yyjson_8h.html#a1dbfcf575677cf45d7b1e1bef3de9c91":[5,0,0,0,6,1], -"yyjson_8h.html#a1e8a4dea2e9e9248acde14c664ab702b":[5,0,0,0,246], -"yyjson_8h.html#a1f3b09c4f279287f8af93b3754a41e85":[5,0,0,0,248], -"yyjson_8h.html#a20d8f66fbe535a20596001dc2022f0b4":[5,0,0,0,303], +"yyjson_8h.html#a1e8a4dea2e9e9248acde14c664ab702b":[5,0,0,0,262], +"yyjson_8h.html#a1f3b09c4f279287f8af93b3754a41e85":[5,0,0,0,264], +"yyjson_8h.html#a20d8f66fbe535a20596001dc2022f0b4":[5,0,0,0,329], "yyjson_8h.html#a20fa69856e99295473e1b3e111adc3b1":[5,0,0,0,120], -"yyjson_8h.html#a210aa96478b0b005b1611fe2f0ecbaa2":[5,0,0,0,204], +"yyjson_8h.html#a210aa96478b0b005b1611fe2f0ecbaa2":[5,0,0,0,205], "yyjson_8h.html#a214c115652630e5acaa9fa062844e0c9":[5,0,0,0,117], "yyjson_8h.html#a216b976b352fe001d580fe837a844e79":[5,0,0,0,52], "yyjson_8h.html#a23a525f4192a237730aedfad55798fdb":[5,0,0,0,29], "yyjson_8h.html#a2498a5bf91ec2eb7d4a00f89dc465954":[5,0,0,0,14,1], -"yyjson_8h.html#a25f0e04af88792dd01e0ed8461ffb51b":[5,0,0,0,176], +"yyjson_8h.html#a25f0e04af88792dd01e0ed8461ffb51b":[5,0,0,0,177], "yyjson_8h.html#a26d9cd39957b06085492ec7050850a19":[5,0,0,0,122], "yyjson_8h.html#a274fc7be14bed93794e3e720927f7bc5":[5,0,0,0,112], "yyjson_8h.html#a286c610e7e27b8b4667a93eba2e2fa28":[5,0,0,0,88], "yyjson_8h.html#a2877858de77e7765ef44d8659eb7fcd3":[5,0,0,0,105], -"yyjson_8h.html#a2936ca2492ae8cdcdf0435f5259ff854":[5,0,0,0,247], +"yyjson_8h.html#a2936ca2492ae8cdcdf0435f5259ff854":[5,0,0,0,263], +"yyjson_8h.html#a298c4558e0b349e4f801f210f19ac8b1":[5,0,0,0,245], "yyjson_8h.html#a2ae7e73e8a1431554d621059b06222e6":[5,0,0,0,146], -"yyjson_8h.html#a2b6a426ece4ffeb9dede1f7a9970140d":[5,0,0,0,252], +"yyjson_8h.html#a2b6a426ece4ffeb9dede1f7a9970140d":[5,0,0,0,268], "yyjson_8h.html#a2b6ed8ca435b89b44a9c66cad30fd9d5":[5,0,0,0,21], -"yyjson_8h.html#a2bbea1da400b473e92b8429027d0f307":[5,0,0,0,182], -"yyjson_8h.html#a2cea1aba7baff98fee5affd7737fc969":[5,0,0,0,273], -"yyjson_8h.html#a2d82bd0dc78358326b03e28b9acc19e4":[5,0,0,0,265], +"yyjson_8h.html#a2bbea1da400b473e92b8429027d0f307":[5,0,0,0,183], +"yyjson_8h.html#a2cea1aba7baff98fee5affd7737fc969":[5,0,0,0,299], +"yyjson_8h.html#a2d82bd0dc78358326b03e28b9acc19e4":[5,0,0,0,291], "yyjson_8h.html#a2e3dedcd83d286602101018024f21c52":[5,0,0,0,81], "yyjson_8h.html#a2ed1833f97594ca751e4d079d1620e7a":[5,0,0,0,14,2], "yyjson_8h.html#a2f30e3958bf136b4e8453a0e78b43d0f":[5,0,0,0,8,2], "yyjson_8h.html#a2fcd8be107f850c0d81ba7bff62edeb7":[5,0,0,0,27], "yyjson_8h.html#a32884e21b899ea5869b12aec02083002":[5,0,0,0,32], "yyjson_8h.html#a33580e2537c25685fd1209951dcbc967":[5,0,0,0,59], +"yyjson_8h.html#a335b9fdffa2885eb5eddd1ee2b43016b":[5,0,0,0,224], "yyjson_8h.html#a33704c7475fcdbc8ce7504e9b9756b16":[5,0,0,0,126], -"yyjson_8h.html#a3403b9c25c8b8f2b3027f4e6d97d0ca8":[5,0,0,0,249], -"yyjson_8h.html#a35cfc3e94310aaddb9eaf6609c4640d9":[5,0,0,0,228], +"yyjson_8h.html#a3403b9c25c8b8f2b3027f4e6d97d0ca8":[5,0,0,0,265], +"yyjson_8h.html#a35cfc3e94310aaddb9eaf6609c4640d9":[5,0,0,0,231], "yyjson_8h.html#a35f777885b981bd9caf1c24737b40921":[5,0,0,0,24], "yyjson_8h.html#a36af676813028c1360e8b343768f0e81":[5,0,0,0,43], -"yyjson_8h.html#a36b5cade5e5cfecd47e9ae584078e2b4":[5,0,0,0,219], +"yyjson_8h.html#a36b5cade5e5cfecd47e9ae584078e2b4":[5,0,0,0,220], "yyjson_8h.html#a37185af21190fa0852a9b1ef9e041151":[5,0,0,0,17], "yyjson_8h.html#a37d0c7987b2958550076586ca36082fd":[5,0,0,0,136], "yyjson_8h.html#a383b0a924785a30a49f6c59de235cd28":[5,0,0,0,67], -"yyjson_8h.html#a38fa90e4cf75b0a78148de2058c1b3bd":[5,0,0,0,289], +"yyjson_8h.html#a38fa90e4cf75b0a78148de2058c1b3bd":[5,0,0,0,315], "yyjson_8h.html#a3a07ac3ac97c66ae9b23efeab600d013":[5,0,0,0,4,1], "yyjson_8h.html#a3cf0581ecad48a658da626cf86903f42":[5,0,0,0,89], -"yyjson_8h.html#a3d3ab359890ab167041732a871ab943d":[5,0,0,0,211], +"yyjson_8h.html#a3d3ab359890ab167041732a871ab943d":[5,0,0,0,212], "yyjson_8h.html#a3db87979e01ea1d86ce073b9e7218fe9":[5,0,0,0,2,1], -"yyjson_8h.html#a3de6970785ebf0dd000d28c916793388":[5,0,0,0,164], -"yyjson_8h.html#a3f69c2e1cdc99ae4f9914435b7a542d7":[5,0,0,0,229], -"yyjson_8h.html#a4070a94fca9592eefa2798dd45237d85":[5,0,0,0,197], -"yyjson_8h.html#a40c9783509f730cb3ef67080be9444d8":[5,0,0,0,295], +"yyjson_8h.html#a3de6970785ebf0dd000d28c916793388":[5,0,0,0,165], +"yyjson_8h.html#a3f69c2e1cdc99ae4f9914435b7a542d7":[5,0,0,0,232], +"yyjson_8h.html#a4070a94fca9592eefa2798dd45237d85":[5,0,0,0,198], +"yyjson_8h.html#a40c9783509f730cb3ef67080be9444d8":[5,0,0,0,321], "yyjson_8h.html#a419008c4a6f2dc4221211b0d7770109a":[5,0,0,0,140], -"yyjson_8h.html#a41cb8e304e08d7455f43c753bfa19b82":[5,0,0,0,291], -"yyjson_8h.html#a43ccc01254525cef16699e72079e3e49":[5,0,0,0,266], -"yyjson_8h.html#a4408e0c5928db936b89d49ccf255100b":[5,0,0,0,300], -"yyjson_8h.html#a4530f9fc02f8604cef3de273feb4ab6a":[5,0,0,0,200], -"yyjson_8h.html#a45722cf492b766514ee7778ca3b3d4cd":[5,0,0,0,162], +"yyjson_8h.html#a41cb8e304e08d7455f43c753bfa19b82":[5,0,0,0,317], +"yyjson_8h.html#a43ccc01254525cef16699e72079e3e49":[5,0,0,0,292], +"yyjson_8h.html#a4408e0c5928db936b89d49ccf255100b":[5,0,0,0,326], +"yyjson_8h.html#a4530f9fc02f8604cef3de273feb4ab6a":[5,0,0,0,201], +"yyjson_8h.html#a45722cf492b766514ee7778ca3b3d4cd":[5,0,0,0,163], "yyjson_8h.html#a45a5da162ba8a920163c74b71f48ead8":[5,0,0,0,26], "yyjson_8h.html#a489b91cc6038a17ebc90193bc00e9e8b":[5,0,0,0,78], -"yyjson_8h.html#a49cfc79051b729689f4f08592b284cc9":[5,0,0,0,226], -"yyjson_8h.html#a4b5c0a7092625f0324bccec938f8862f":[5,0,0,0,268], +"yyjson_8h.html#a49cfc79051b729689f4f08592b284cc9":[5,0,0,0,229], +"yyjson_8h.html#a4b5c0a7092625f0324bccec938f8862f":[5,0,0,0,294], "yyjson_8h.html#a4c03e94b391df0f2b019c8df6c6e70f1":[5,0,0,0,39], -"yyjson_8h.html#a4c37c92b9977d86475cda1884c9ae52e":[5,0,0,0,180], +"yyjson_8h.html#a4c37c92b9977d86475cda1884c9ae52e":[5,0,0,0,181], "yyjson_8h.html#a4c9dc89d29725de644b1d9b801aa28ff":[5,0,0,0,6,2], "yyjson_8h.html#a4d30446a286f54e2f95847f3c6669493":[5,0,0,0,45], -"yyjson_8h.html#a4d515d2d192d13281ffe69c1d95cdd49":[5,0,0,0,296], +"yyjson_8h.html#a4d515d2d192d13281ffe69c1d95cdd49":[5,0,0,0,322], "yyjson_8h.html#a4fc0b10196e010a7e5e9a2cec6769904":[5,0,0,0,15,0], "yyjson_8h.html#a4ff4915acd7a289001592a762b4b40e5":[5,0,0,0,149], "yyjson_8h.html#a50039175677ae5fdd51f1c6942fa3d3d":[5,0,0,0,131], "yyjson_8h.html#a5079543ec26e3634d0d97491195f0daf":[5,0,0,0,84], "yyjson_8h.html#a50bfce709c7853491172fe4198d43863":[5,0,0,0,150], +"yyjson_8h.html#a510bd8af8c64911827c890bd67245282":[5,0,0,0,241], "yyjson_8h.html#a527bfefae4532c4061e56d581ec4fc01":[5,0,0,0,92], -"yyjson_8h.html#a52c88fea8622d7bf4e81ecea93dc5df6":[5,0,0,0,193], +"yyjson_8h.html#a52c88fea8622d7bf4e81ecea93dc5df6":[5,0,0,0,194], "yyjson_8h.html#a52f3358d27af0b1f1aeb3fe4dc7da1c0":[5,0,0,0,91], -"yyjson_8h.html#a538974615c719cb8ea2e8ea7705569cf":[5,0,0,0,174], +"yyjson_8h.html#a533791670fe27f71bab321d586e11ea2":[5,0,0,0,240], +"yyjson_8h.html#a538974615c719cb8ea2e8ea7705569cf":[5,0,0,0,175], "yyjson_8h.html#a53b930a8e372ddd7c8d4d389caad391e":[5,0,0,0,35], "yyjson_8h.html#a54bfa0c027fb21e9e5c33a9f4ecbe0f5":[5,0,0,0,135], "yyjson_8h.html#a550600110929a7030f464a460b5b62cb":[5,0,0,0,1,0], -"yyjson_8h.html#a55f4228c2d65d497ad3cee8abe95c0be":[5,0,0,0,214], +"yyjson_8h.html#a55f4228c2d65d497ad3cee8abe95c0be":[5,0,0,0,215], "yyjson_8h.html#a5607c9ba393206ad94ecd90fbeb59017":[5,0,0,0,13,3], -"yyjson_8h.html#a56726ff7e284700736e26e56afa6cf7b":[5,0,0,0,194], -"yyjson_8h.html#a57835e7f895e7533006340ad3abe0b80":[5,0,0,0,290], +"yyjson_8h.html#a56726ff7e284700736e26e56afa6cf7b":[5,0,0,0,195], "yyjson_8h.html#a57afc80d0c89c0ae20d5ff183f3a8205":[5,0,0,0,147], -"yyjson_8h.html#a5ae266ef7d5c52eaa2d5afeafab41721":[5,0,0,0,159], -"yyjson_8h.html#a5b8948d47748a81d6a4abf94949e0e88":[5,0,0,0,288], +"yyjson_8h.html#a5ae266ef7d5c52eaa2d5afeafab41721":[5,0,0,0,160], +"yyjson_8h.html#a5b8948d47748a81d6a4abf94949e0e88":[5,0,0,0,314], "yyjson_8h.html#a5bfc74dbba137fc4d662702666f5073a":[5,0,0,0,72], "yyjson_8h.html#a5c7fae9804b126005f99c67f3c703ad5":[5,0,0,0,97], -"yyjson_8h.html#a5c94af000c170272356f060c76f91559":[5,0,0,0,186], +"yyjson_8h.html#a5c94af000c170272356f060c76f91559":[5,0,0,0,187], "yyjson_8h.html#a5e90e838f969425f75372d4b4246d145":[5,0,0,0,71], -"yyjson_8h.html#a5f48e712fe4988f779a35309779dd765":[5,0,0,0,203], +"yyjson_8h.html#a5f48e712fe4988f779a35309779dd765":[5,0,0,0,204], "yyjson_8h.html#a5fd1ae5bada624c9687acce330eef7aa":[5,0,0,0,8,1], -"yyjson_8h.html#a601ac20666dd26bfbec016ee4cbb1b92":[5,0,0,0,224], -"yyjson_8h.html#a6033befb82b9331d2c19c09799ec5bcf":[5,0,0,0,253], -"yyjson_8h.html#a605ac08b083fb65331d7fa5eb5d32225":[5,0,0,0,256], +"yyjson_8h.html#a601ac20666dd26bfbec016ee4cbb1b92":[5,0,0,0,227], +"yyjson_8h.html#a6033befb82b9331d2c19c09799ec5bcf":[5,0,0,0,269], +"yyjson_8h.html#a605ac08b083fb65331d7fa5eb5d32225":[5,0,0,0,272], "yyjson_8h.html#a6068c4293a2b35493b18421b9afbd3d5":[5,0,0,0,48], "yyjson_8h.html#a60fd8094ee3eff6e7b629471f50aa139":[5,0,0,0,20], "yyjson_8h.html#a6105e202bdb2e3b0bd1b561722b80afa":[5,0,0,0,83], -"yyjson_8h.html#a630b55e2937f7ffe8c0dcef20497ce93":[5,0,0,0,220], -"yyjson_8h.html#a64603b1c33c9ebc626665dea61e25abd":[5,0,0,0,169], -"yyjson_8h.html#a660d533ce8b661e85c5b14e4e99e5085":[5,0,0,0,217], +"yyjson_8h.html#a630b55e2937f7ffe8c0dcef20497ce93":[5,0,0,0,221], +"yyjson_8h.html#a64168360e4ac45070f98c6db92b89cd7":[5,0,0,0,238], +"yyjson_8h.html#a64603b1c33c9ebc626665dea61e25abd":[5,0,0,0,170], +"yyjson_8h.html#a660d533ce8b661e85c5b14e4e99e5085":[5,0,0,0,218], "yyjson_8h.html#a665b0cc9ee2ced31785321d55cde349e":[5,0,0,0,16], -"yyjson_8h.html#a66761be40cfb010086ec798ddb44018f":[5,0,0,0,239], -"yyjson_8h.html#a682886dc8be2307076b125b496b15570":[5,0,0,0,19], -"yyjson_8h.html#a691136e772913e98860a791e65b70f04":[5,0,0,0,18], -"yyjson_8h.html#a69acff4e2298d6b1a315d5f75a5eaa9d":[5,0,0,0,170], -"yyjson_8h.html#a6c2526c5ad89f0addaae26f356ecf609":[5,0,0,0,7,1], -"yyjson_8h.html#a6df6d46adbd674a53cbfc049d49ec5c5":[5,0,0,0,127], -"yyjson_8h.html#a6e891b4020dd6325d6eacb5e108da3c4":[5,0,0,0,215], -"yyjson_8h.html#a6ee1dc133fa773528286cd0b25300cb2":[5,0,0,0,152] +"yyjson_8h.html#a66761be40cfb010086ec798ddb44018f":[5,0,0,0,255], +"yyjson_8h.html#a682886dc8be2307076b125b496b15570":[5,0,0,0,19] }; diff --git a/doc/doxygen/html/navtreeindex1.js b/doc/doxygen/html/navtreeindex1.js index f05734d..c08fe46 100644 --- a/doc/doxygen/html/navtreeindex1.js +++ b/doc/doxygen/html/navtreeindex1.js @@ -1,177 +1,202 @@ var NAVTREEINDEX1 = { +"yyjson_8h.html#a691136e772913e98860a791e65b70f04":[5,0,0,0,18], +"yyjson_8h.html#a69acff4e2298d6b1a315d5f75a5eaa9d":[5,0,0,0,171], +"yyjson_8h.html#a6c2526c5ad89f0addaae26f356ecf609":[5,0,0,0,7,1], +"yyjson_8h.html#a6df6d46adbd674a53cbfc049d49ec5c5":[5,0,0,0,127], +"yyjson_8h.html#a6e0c3b9ff069db64e4aa14da1078b538":[5,0,0,0,239], +"yyjson_8h.html#a6e891b4020dd6325d6eacb5e108da3c4":[5,0,0,0,216], +"yyjson_8h.html#a6ee1dc133fa773528286cd0b25300cb2":[5,0,0,0,153], "yyjson_8h.html#a6efba736a610baa629bf2a0b0a41d4a9":[5,0,0,0,109], -"yyjson_8h.html#a6efc657d7f9aefdcba51e753fcea02c1":[5,0,0,0,195], -"yyjson_8h.html#a700da5ce5bf8bb9d3739cc73a0f51cdf":[5,0,0,0,240], -"yyjson_8h.html#a70209d60e93b24573e8830911c7940a6":[5,0,0,0,274], -"yyjson_8h.html#a708869e986c30d3a03026be8ce4c2b37":[5,0,0,0,172], +"yyjson_8h.html#a6efc657d7f9aefdcba51e753fcea02c1":[5,0,0,0,196], +"yyjson_8h.html#a700da5ce5bf8bb9d3739cc73a0f51cdf":[5,0,0,0,256], +"yyjson_8h.html#a70209d60e93b24573e8830911c7940a6":[5,0,0,0,300], +"yyjson_8h.html#a708869e986c30d3a03026be8ce4c2b37":[5,0,0,0,173], "yyjson_8h.html#a7173b66e47ee6fad38b11651d20e7ddf":[5,0,0,0,132], -"yyjson_8h.html#a721dacf0e32ee6c7f18817aca806e9b2":[5,0,0,0,190], -"yyjson_8h.html#a725cc27bd7bd37c1d18c41589abd34db":[5,0,0,0,261], +"yyjson_8h.html#a721dacf0e32ee6c7f18817aca806e9b2":[5,0,0,0,191], +"yyjson_8h.html#a725cc27bd7bd37c1d18c41589abd34db":[5,0,0,0,287], "yyjson_8h.html#a72bc53a422a133e2eba68ffa736f9e8b":[5,0,0,0,5,1], "yyjson_8h.html#a72bd3b0467273c40dbe376bc7c0a8f06":[5,0,0,0,134], -"yyjson_8h.html#a73e0044fd0c511263cbf5cd869976475":[5,0,0,0,189], -"yyjson_8h.html#a740d49152b7b9974c65efeab698dfb67":[5,0,0,0,187], +"yyjson_8h.html#a73e0044fd0c511263cbf5cd869976475":[5,0,0,0,190], +"yyjson_8h.html#a740d49152b7b9974c65efeab698dfb67":[5,0,0,0,188], "yyjson_8h.html#a7435fee591b112fbdcc455fc60b1416b":[5,0,0,0,75], "yyjson_8h.html#a7445de186190ceef09c5be6d589e6a65":[5,0,0,0,6,0], -"yyjson_8h.html#a7541eb4eadf59e84f1ef06889789d460":[5,0,0,0,227], -"yyjson_8h.html#a76cb39cc0755460feedaf3fcf32cea01":[5,0,0,0,272], +"yyjson_8h.html#a7541eb4eadf59e84f1ef06889789d460":[5,0,0,0,230], +"yyjson_8h.html#a75ee22602fb750b67fda804fb653ef1e":[5,0,0,0,279], +"yyjson_8h.html#a76cb39cc0755460feedaf3fcf32cea01":[5,0,0,0,298], "yyjson_8h.html#a77011c6b1268f9068abe1975b92e38e0":[5,0,0,0,28], "yyjson_8h.html#a78cf6dd1700f2cd7d7f256b4c2339d8b":[5,0,0,0,38], -"yyjson_8h.html#a7910a72a728d4f245d43417a42e2e91a":[5,0,0,0,292], +"yyjson_8h.html#a7910a72a728d4f245d43417a42e2e91a":[5,0,0,0,318], "yyjson_8h.html#a793250c5394193a73b5e9506c8381994":[5,0,0,0,119], -"yyjson_8h.html#a79720744960c9b4fdabbfb28379bbeb4":[5,0,0,0,262], -"yyjson_8h.html#a7a45a4b5a1340bb3c2907b7faf3981be":[5,0,0,0,250], +"yyjson_8h.html#a79720744960c9b4fdabbfb28379bbeb4":[5,0,0,0,288], +"yyjson_8h.html#a797642b2f815a4f05db03ef87f08cc4f":[5,0,0,0,152], +"yyjson_8h.html#a7a142af553e7831989593aee44f74e26":[5,0,0,0,254], +"yyjson_8h.html#a7a45a4b5a1340bb3c2907b7faf3981be":[5,0,0,0,266], "yyjson_8h.html#a7a5f504993031f912d06777b8a7b5aff":[5,0,0,0,148], -"yyjson_8h.html#a7af42d62aa1583986c687c5cd10b010e":[5,0,0,0,245], +"yyjson_8h.html#a7af42d62aa1583986c687c5cd10b010e":[5,0,0,0,261], "yyjson_8h.html#a7b766ff66469615aab5bed9f760aab07":[5,0,0,0,41], -"yyjson_8h.html#a7bb8c32c190a8e4ce4f5e9e95623f304":[5,0,0,0,178], +"yyjson_8h.html#a7bb8c32c190a8e4ce4f5e9e95623f304":[5,0,0,0,179], "yyjson_8h.html#a7d8d98b60284e646b8b22a8341d99a7f":[5,0,0,0,77], -"yyjson_8h.html#a7f123c4c3d850fd6c4e46a2b3aad4508":[5,0,0,0,293], -"yyjson_8h.html#a80380f14a448ea046eb718e068c2df6b":[5,0,0,0,202], +"yyjson_8h.html#a7f123c4c3d850fd6c4e46a2b3aad4508":[5,0,0,0,319], +"yyjson_8h.html#a80380f14a448ea046eb718e068c2df6b":[5,0,0,0,203], "yyjson_8h.html#a81cc3185457d7fd86f3818319d7efe18":[5,0,0,0,85], "yyjson_8h.html#a83e0a27da01978e46f074b6bb068d9eb":[5,0,0,0,5,3], -"yyjson_8h.html#a841a5fd5b187b1ff40232e9d36a5a156":[5,0,0,0,276], +"yyjson_8h.html#a841a5fd5b187b1ff40232e9d36a5a156":[5,0,0,0,302], +"yyjson_8h.html#a84604772b235ec0f651532013f2480a8":[5,0,0,0,246], "yyjson_8h.html#a847bb374b9c7fa6fff34088d23d87dad":[5,0,0,0,128], +"yyjson_8h.html#a84e98fae940ff675b2a22076cbd5efc1":[5,0,0,0,244], "yyjson_8h.html#a85f4bcdc777cde51a40359ac9e38c98b":[5,0,0,0,143], -"yyjson_8h.html#a874f912f9c023bc353d1a770798017a1":[5,0,0,0,263], +"yyjson_8h.html#a874f912f9c023bc353d1a770798017a1":[5,0,0,0,289], "yyjson_8h.html#a87eb200779eff088b93ea0a67ab3e300":[5,0,0,0,1,2], -"yyjson_8h.html#a881e2ee3f487385810829df8bc675f1f":[5,0,0,0,243], -"yyjson_8h.html#a893a09172b402af1bf520cf7347dfeab":[5,0,0,0,238], -"yyjson_8h.html#a8940a4ae4ba3467bb7bc6c5ee3deb2ea":[5,0,0,0,285], -"yyjson_8h.html#a896424a210ec4983f0634467ebe85a68":[5,0,0,0,167], +"yyjson_8h.html#a881e2ee3f487385810829df8bc675f1f":[5,0,0,0,259], +"yyjson_8h.html#a893a09172b402af1bf520cf7347dfeab":[5,0,0,0,253], +"yyjson_8h.html#a8940a4ae4ba3467bb7bc6c5ee3deb2ea":[5,0,0,0,311], +"yyjson_8h.html#a896424a210ec4983f0634467ebe85a68":[5,0,0,0,168], "yyjson_8h.html#a89cb55aebc946e462968a2bcace5ba5a":[5,0,0,0,61], -"yyjson_8h.html#a8a9cc40b5f3f93b66ba191449f81fbda":[5,0,0,0,230], -"yyjson_8h.html#a8a9f7ea865526acb97ee4eff8d0bb79f":[5,0,0,0,154], +"yyjson_8h.html#a8a9cc40b5f3f93b66ba191449f81fbda":[5,0,0,0,233], +"yyjson_8h.html#a8a9f7ea865526acb97ee4eff8d0bb79f":[5,0,0,0,155], "yyjson_8h.html#a8e0dfe2ac2a53faadf137d159162d193":[5,0,0,0,96], "yyjson_8h.html#a8f6ad942e4ba4d3fb7cb52459af708a6":[5,0,0,0,115], -"yyjson_8h.html#a8f8b24bb3b8dafc3f135a926b06da2fa":[5,0,0,0,275], +"yyjson_8h.html#a8f8b24bb3b8dafc3f135a926b06da2fa":[5,0,0,0,301], "yyjson_8h.html#a9026faa4e022392c28e8f9afa553362f":[5,0,0,0,94], "yyjson_8h.html#a9044823fa7fb431019662e589d45707c":[5,0,0,0,1,1], -"yyjson_8h.html#a907fa46c6ab95e9d7652392507f17e3b":[5,0,0,0,184], -"yyjson_8h.html#a90a824479a3d07f47e9bcce9bbbfcdc0":[5,0,0,0,206], +"yyjson_8h.html#a90614444c9d6bbd7d8586176986adbc5":[5,0,0,0,284], +"yyjson_8h.html#a907fa46c6ab95e9d7652392507f17e3b":[5,0,0,0,185], +"yyjson_8h.html#a90a824479a3d07f47e9bcce9bbbfcdc0":[5,0,0,0,207], "yyjson_8h.html#a90c3e1c55dcf04a7879abed9a57cb278":[5,0,0,0,139], "yyjson_8h.html#a923bc9e3c4af69b5bdb5361a9f0a4ba5":[5,0,0,0,124], -"yyjson_8h.html#a92e202b3738250ffee612089bdec91eb":[5,0,0,0,173], +"yyjson_8h.html#a92e202b3738250ffee612089bdec91eb":[5,0,0,0,174], "yyjson_8h.html#a930a47cf837316e3758e38057178edac":[5,0,0,0,98], "yyjson_8h.html#a934aea39ecf26ad163ad5dcf45cb8e6f":[5,0,0,0,15,4], -"yyjson_8h.html#a95300bcf1cdb52d296e39aa1a4650741":[5,0,0,0,234], +"yyjson_8h.html#a95300bcf1cdb52d296e39aa1a4650741":[5,0,0,0,249], "yyjson_8h.html#a95aebc83fff9793f7701a6e37df5e03f":[5,0,0,0,53], -"yyjson_8h.html#a964840d68d5d27ad2e16c63b4b2475b6":[5,0,0,0,222], +"yyjson_8h.html#a964840d68d5d27ad2e16c63b4b2475b6":[5,0,0,0,225], "yyjson_8h.html#a97b82f92bd96415090ce9803b9757bf9":[5,0,0,0,106], "yyjson_8h.html#a986e994db00b2749e000af0a4331454c":[5,0,0,0,74], -"yyjson_8h.html#a98e9f97614fce2a6187473eeb35274e8":[5,0,0,0,208], -"yyjson_8h.html#a996f8aa51f4c1475448974cf98f28df3":[5,0,0,0,198], -"yyjson_8h.html#a9e79f1480256c6e2e8dfbf61da9cd853":[5,0,0,0,209], +"yyjson_8h.html#a98e9f97614fce2a6187473eeb35274e8":[5,0,0,0,209], +"yyjson_8h.html#a996f8aa51f4c1475448974cf98f28df3":[5,0,0,0,199], +"yyjson_8h.html#a9a0f4082d2244b7264a819bbc32ebbdf":[5,0,0,0,282], +"yyjson_8h.html#a9e49dc52b6209708df0ccf4ddf49b8c4":[5,0,0,0,283], +"yyjson_8h.html#a9e79f1480256c6e2e8dfbf61da9cd853":[5,0,0,0,210], "yyjson_8h.html#a9f15531ba6ee708766e05d6b959a6177":[5,0,0,0,58], -"yyjson_8h.html#a9f40302607516131c026ca5f13a29946":[5,0,0,0,207], +"yyjson_8h.html#a9f40302607516131c026ca5f13a29946":[5,0,0,0,208], "yyjson_8h.html#a9f57a6c365d29ca3a139341d30f183a1":[5,0,0,0,70], "yyjson_8h.html#a9ff667f95ec6e6e264509e1681c74357":[5,0,0,0,114], "yyjson_8h.html#aa2481ee429a84f67e5f2200a4bbc6155":[5,0,0,0,14,4], "yyjson_8h.html#aa33a13a85b840b3dbc1f8534db2bd8fc":[5,0,0,0,60], "yyjson_8h.html#aa33ac310f363ace5f4dda3697b2c0123":[5,0,0,0,151], -"yyjson_8h.html#aa476cdc60442393b93dd0474ed4f08bc":[5,0,0,0,284], +"yyjson_8h.html#aa476cdc60442393b93dd0474ed4f08bc":[5,0,0,0,310], "yyjson_8h.html#aa47704ca9b08cdd7b8b151ec67c4afd6":[5,0,0,0,102], -"yyjson_8h.html#aa4b243e9de837405d83bcc3251156cea":[5,0,0,0,196], +"yyjson_8h.html#aa4b243e9de837405d83bcc3251156cea":[5,0,0,0,197], "yyjson_8h.html#aa6d66fc870aac34589593a0bf6561647":[5,0,0,0,40], -"yyjson_8h.html#aa9789f197f972dc433ea2eb622defd50":[5,0,0,0,254], -"yyjson_8h.html#aaa4bef14b71ff145fe8cdc2fa98c7f45":[5,0,0,0,210], -"yyjson_8h.html#aaafe8a57b5e53c9f7f9984c80ab3be1f":[5,0,0,0,181], -"yyjson_8h.html#aad64266ebfbdd2a9627050cf1f3f48d7":[5,0,0,0,188], -"yyjson_8h.html#aad6de220fa487e31bd1bd2c2cccd9bff":[5,0,0,0,160], -"yyjson_8h.html#aadb5f3196fe14e75914ed34d6e700076":[5,0,0,0,177], +"yyjson_8h.html#aa9789f197f972dc433ea2eb622defd50":[5,0,0,0,270], +"yyjson_8h.html#aaa4bef14b71ff145fe8cdc2fa98c7f45":[5,0,0,0,211], +"yyjson_8h.html#aaafe8a57b5e53c9f7f9984c80ab3be1f":[5,0,0,0,182], +"yyjson_8h.html#aad64266ebfbdd2a9627050cf1f3f48d7":[5,0,0,0,189], +"yyjson_8h.html#aad6de220fa487e31bd1bd2c2cccd9bff":[5,0,0,0,161], +"yyjson_8h.html#aadb5f3196fe14e75914ed34d6e700076":[5,0,0,0,178], "yyjson_8h.html#aae70fe76dfae0e8aa93d0226ec8510d9":[5,0,0,0,145], "yyjson_8h.html#aaed218041aa262337e179d487f4c770c":[5,0,0,0,66], "yyjson_8h.html#aaf5c505b42eeb64e7a0ac17e3d7d3847":[5,0,0,0,15,2], -"yyjson_8h.html#ab0a5c5a568b7f2c0a6301149f0f6aa84":[5,0,0,0,155], +"yyjson_8h.html#ab0a5c5a568b7f2c0a6301149f0f6aa84":[5,0,0,0,156], "yyjson_8h.html#ab1a7e03f48bb31760030fbdab7d6597b":[5,0,0,0,5,0], "yyjson_8h.html#ab2237deb1190a0333a88d571a8adcb0c":[5,0,0,0,142], -"yyjson_8h.html#ab2c44c43c9e8ff194799fd59ae688ee2":[5,0,0,0,156], +"yyjson_8h.html#ab2c44c43c9e8ff194799fd59ae688ee2":[5,0,0,0,157], "yyjson_8h.html#ab361240999d684579904a9aa3af5004f":[5,0,0,0,110], "yyjson_8h.html#ab439bc90f6631a67dd3ed4626eb3b4ad":[5,0,0,0,79], "yyjson_8h.html#ab459a079674a115123c353441dacda22":[5,0,0,0,103], -"yyjson_8h.html#ab4f2d4e7fa716c89d3a31f74504898a9":[5,0,0,0,277], +"yyjson_8h.html#ab4f2d4e7fa716c89d3a31f74504898a9":[5,0,0,0,303], "yyjson_8h.html#ab5169c5637fdfc27fe10b919b78b6468":[5,0,0,0,15,3], "yyjson_8h.html#ab589c80e05e4e65fa28e23acc1ee8255":[5,0,0,0,4,0], "yyjson_8h.html#ab608a351427921421a2e23877399acd5":[5,0,0,0,54], -"yyjson_8h.html#ab83087bafd1f48910b62bf63200679e1":[5,0,0,0,251], -"yyjson_8h.html#ab8f221edd44b0c61d9ff78637bfca05e":[5,0,0,0,294], +"yyjson_8h.html#ab83087bafd1f48910b62bf63200679e1":[5,0,0,0,267], +"yyjson_8h.html#ab8f221edd44b0c61d9ff78637bfca05e":[5,0,0,0,320], "yyjson_8h.html#ab96f33fef20cadcb9bb045c60749b516":[5,0,0,0,125], "yyjson_8h.html#ab9c7f452ed21a9800501c25e715f35f7":[5,0,0,0,137], +"yyjson_8h.html#aba2b7153e213808a87ecde3ce00b23e1":[5,0,0,0,234], "yyjson_8h.html#abbe8e69f634b1a5a78c1dae08b88e0ef":[5,0,0,0,33], -"yyjson_8h.html#abdaf14b79fe803289070c0e5d5a705b8":[5,0,0,0,242], -"yyjson_8h.html#abdbf139ee03d263c8a833fbef8cbf63c":[5,0,0,0,269], -"yyjson_8h.html#abe2f1b0c0b8cb9ceab3cdc35d4574c86":[5,0,0,0,192], -"yyjson_8h.html#abeeca08e3b6994dddd55951a83cd648f":[5,0,0,0,199], +"yyjson_8h.html#abdaf14b79fe803289070c0e5d5a705b8":[5,0,0,0,258], +"yyjson_8h.html#abdbf139ee03d263c8a833fbef8cbf63c":[5,0,0,0,295], +"yyjson_8h.html#abe2f1b0c0b8cb9ceab3cdc35d4574c86":[5,0,0,0,193], +"yyjson_8h.html#abeeca08e3b6994dddd55951a83cd648f":[5,0,0,0,200], "yyjson_8h.html#ac02a007abcdf7a80894f839acafa5963":[5,0,0,0,37], -"yyjson_8h.html#ac0e1bcd9f449e4b1e62d25fb96830a62":[5,0,0,0,191], +"yyjson_8h.html#ac0e1bcd9f449e4b1e62d25fb96830a62":[5,0,0,0,192], "yyjson_8h.html#ac12f7aed42260b8d2ede0fded3f72167":[5,0,0,0,5,4], -"yyjson_8h.html#ac234e82f7a1203e656bcbb0af2ce8c01":[5,0,0,0,299], +"yyjson_8h.html#ac234e82f7a1203e656bcbb0af2ce8c01":[5,0,0,0,325], "yyjson_8h.html#ac24336d6f29b5b6c09f513373b6fc83e":[5,0,0,0,144], "yyjson_8h.html#ac3de217ef6c479380e38f35a2a166477":[5,0,0,0,90], "yyjson_8h.html#ac4aab52f91a8b365344a74812be4e712":[5,0,0,0,73], "yyjson_8h.html#ac4b6eb9e397730bbb264f64d46cafacf":[5,0,0,0,93], "yyjson_8h.html#ac709738fbf9da708c28992c40746fcbf":[5,0,0,0,49], +"yyjson_8h.html#ac782a838c6378f022434d7ab3a3b333d":[5,0,0,0,280], "yyjson_8h.html#ac81702a782ecfeb9874ce43706ecf02e":[5,0,0,0,130], -"yyjson_8h.html#aca1345f5057068e556cc6fadda10d04c":[5,0,0,0,212], -"yyjson_8h.html#acbfde7c1173b4258f83029c6dacf47c3":[5,0,0,0,216], +"yyjson_8h.html#aca1345f5057068e556cc6fadda10d04c":[5,0,0,0,213], +"yyjson_8h.html#acbfde7c1173b4258f83029c6dacf47c3":[5,0,0,0,217], "yyjson_8h.html#acd2884309c99b42f916fffd50c018c59":[5,0,0,0,101], -"yyjson_8h.html#acd434c1a97d275f97f743e47e228831a":[5,0,0,0,232], -"yyjson_8h.html#acf234d21f0cb4b7fc89381ef25e9f0a8":[5,0,0,0,258], -"yyjson_8h.html#acfc8545d9b1af8dd8f1488e34fbac351":[5,0,0,0,183], -"yyjson_8h.html#ad102bbd0cada29540232c3f2aaa53375":[5,0,0,0,163], -"yyjson_8h.html#ad18730f04c429faa79be473de57efd5e":[5,0,0,0,175], +"yyjson_8h.html#acd434c1a97d275f97f743e47e228831a":[5,0,0,0,247], +"yyjson_8h.html#acf234d21f0cb4b7fc89381ef25e9f0a8":[5,0,0,0,275], +"yyjson_8h.html#acfc8545d9b1af8dd8f1488e34fbac351":[5,0,0,0,184], +"yyjson_8h.html#ad0f58bd6ac0289fd55d09b02fa3d4743":[5,0,0,0,281], +"yyjson_8h.html#ad102bbd0cada29540232c3f2aaa53375":[5,0,0,0,164], +"yyjson_8h.html#ad18730f04c429faa79be473de57efd5e":[5,0,0,0,176], "yyjson_8h.html#ad20aad460c6d7c62f7c371ca5be54667":[5,0,0,0,99], "yyjson_8h.html#ad22baac3e9ae0ff932b38f4257c3b800":[5,0,0,0,5,2], -"yyjson_8h.html#ad231975496ac3788fe5d69804e295443":[5,0,0,0,264], -"yyjson_8h.html#ad2a7aa77fa66a593536e3d7c3edb1d7a":[5,0,0,0,244], -"yyjson_8h.html#ad2fb99734b237a7af74924443fe5260e":[5,0,0,0,287], -"yyjson_8h.html#ad32e0e0427bda63164f12fe689a6f854":[5,0,0,0,213], +"yyjson_8h.html#ad231975496ac3788fe5d69804e295443":[5,0,0,0,290], +"yyjson_8h.html#ad2a7aa77fa66a593536e3d7c3edb1d7a":[5,0,0,0,260], +"yyjson_8h.html#ad2fb99734b237a7af74924443fe5260e":[5,0,0,0,313], +"yyjson_8h.html#ad32e0e0427bda63164f12fe689a6f854":[5,0,0,0,214], +"yyjson_8h.html#ad3c513a8fd61c173c4afa404572e02f6":[5,0,0,0,243], "yyjson_8h.html#ad54c34d490dd8e479e21e4cb29bc814b":[5,0,0,0,50], "yyjson_8h.html#ad58bddcf6dd41d193d37d2a16df159d1":[5,0,0,0,15,1], "yyjson_8h.html#ad58dcd5f514d5f3c71412ec86af9e2d0":[5,0,0,0,14,0], -"yyjson_8h.html#ad5bf7b51ed21d3c99500a8f488b2b4b0":[5,0,0,0,278], +"yyjson_8h.html#ad5bf7b51ed21d3c99500a8f488b2b4b0":[5,0,0,0,304], "yyjson_8h.html#ad7a6d7801cb0c35ee08fc6ba9d343106":[5,0,0,0,23], "yyjson_8h.html#ad88b6743f333d9e4eff04b0138619e74":[5,0,0,0,118], "yyjson_8h.html#ad8c68a8cec010d2d5f8942eb1136afde":[5,0,0,0,141], -"yyjson_8h.html#ad8eeaba5611ace5817c7019067cf85fd":[5,0,0,0,271], -"yyjson_8h.html#ad9f16424bfef46cd479066905f653591":[5,0,0,0,185], +"yyjson_8h.html#ad8eeaba5611ace5817c7019067cf85fd":[5,0,0,0,297], +"yyjson_8h.html#ad99ceda574b466f8102699e52564c8da":[5,0,0,0,276], +"yyjson_8h.html#ad9f16424bfef46cd479066905f653591":[5,0,0,0,186], "yyjson_8h.html#adabd9eb44fac843109d6bc79f12ff6ff":[5,0,0,0,63], "yyjson_8h.html#adad98bd766cf52d99f2c54dcb120786d":[5,0,0,0,56], "yyjson_8h.html#add7037998fb39b3e2d1b3caf59f9d66a":[5,0,0,0,80], -"yyjson_8h.html#addde26cc012f50aee79a623e6be4614e":[5,0,0,0,165], +"yyjson_8h.html#addde26cc012f50aee79a623e6be4614e":[5,0,0,0,166], "yyjson_8h.html#addf8b34eb1d89a54df0482acbd29872c":[5,0,0,0,7,3], -"yyjson_8h.html#adf8b2d3c8b57e85d58108d58c68b0db5":[5,0,0,0,241], +"yyjson_8h.html#adf8b2d3c8b57e85d58108d58c68b0db5":[5,0,0,0,257], "yyjson_8h.html#ae0898f45c9fca1d7d6bdd35b3488a10f":[5,0,0,0,116], -"yyjson_8h.html#ae152a6e8e8c6e4efd798fa6eca9d311f":[5,0,0,0,301], +"yyjson_8h.html#ae152a6e8e8c6e4efd798fa6eca9d311f":[5,0,0,0,327], "yyjson_8h.html#ae19102b96509817f1188f732be19642b":[5,0,0,0,46], -"yyjson_8h.html#ae27cb375110302ec19f4376d7cab3c5b":[5,0,0,0,153], +"yyjson_8h.html#ae2709fd5ec704ef7a569d62195e4652d":[5,0,0,0,316], +"yyjson_8h.html#ae27cb375110302ec19f4376d7cab3c5b":[5,0,0,0,154], "yyjson_8h.html#ae3f12da3b11d3227dd517a1079065a3f":[5,0,0,0,30], "yyjson_8h.html#ae4aa66c2b00d3173291dd48ae398b1c0":[5,0,0,0,2,0], "yyjson_8h.html#ae4b5e4edc9713d9f48e2a6750ad5ebff":[5,0,0,0,68], -"yyjson_8h.html#ae511cac592355c2f60f170402b9d8dbf":[5,0,0,0,257], -"yyjson_8h.html#ae6dfd237f7997125e606d678b3b59b5c":[5,0,0,0,221], -"yyjson_8h.html#ae82405796b54b235125a5dd14c06650b":[5,0,0,0,283], -"yyjson_8h.html#ae8d7e4c75adb1b9adb2246165491a4a3":[5,0,0,0,233], -"yyjson_8h.html#aeab3c2a1d86225e5b181fb1bba7587d4":[5,0,0,0,255], -"yyjson_8h.html#aebdaa55a1673e99d2dcea01a15c633be":[5,0,0,0,302], +"yyjson_8h.html#ae511cac592355c2f60f170402b9d8dbf":[5,0,0,0,273], +"yyjson_8h.html#ae6dfd237f7997125e606d678b3b59b5c":[5,0,0,0,222], +"yyjson_8h.html#ae82405796b54b235125a5dd14c06650b":[5,0,0,0,309], +"yyjson_8h.html#ae8d7e4c75adb1b9adb2246165491a4a3":[5,0,0,0,248], +"yyjson_8h.html#aea65c64007cfa236faa17e1ac87c4e5e":[5,0,0,0,223], +"yyjson_8h.html#aeab3c2a1d86225e5b181fb1bba7587d4":[5,0,0,0,271], +"yyjson_8h.html#aebdaa55a1673e99d2dcea01a15c633be":[5,0,0,0,328], "yyjson_8h.html#aec0e874c4847338f3b61bf46257cb557":[5,0,0,0,95], -"yyjson_8h.html#aec30d870399447d1b611c400dff5a55c":[5,0,0,0,281], -"yyjson_8h.html#aec3a6e6812f3ca8fd58c858275443fe0":[5,0,0,0,161], +"yyjson_8h.html#aec30d870399447d1b611c400dff5a55c":[5,0,0,0,307], +"yyjson_8h.html#aec3a6e6812f3ca8fd58c858275443fe0":[5,0,0,0,162], "yyjson_8h.html#aec946d2b34d3b52a87e252afb2ee2aef":[5,0,0,0,57], +"yyjson_8h.html#aec9ae4949a2cb626242ec174fba5aadb":[5,0,0,0,274], "yyjson_8h.html#aedbd4efc6436d66382936b8c450a5877":[5,0,0,0,86], -"yyjson_8h.html#aee5bc7d2ad2169a04f54e63139eddb86":[5,0,0,0,205], +"yyjson_8h.html#aee5bc7d2ad2169a04f54e63139eddb86":[5,0,0,0,206], "yyjson_8h.html#af089d7f9bfb1b4fadf46073a534379b0":[5,0,0,0,111], "yyjson_8h.html#af15973d5bdb6b7b8ea79571220771027":[5,0,0,0,7,0], +"yyjson_8h.html#af1f4dd90c0bd891cb139e72cfd588789":[5,0,0,0,277], +"yyjson_8h.html#af6dac7e5e95ccc12d79c31b96d33940a":[5,0,0,0,236], "yyjson_8h.html#af7484aeed9b789103efb985f2f42ab46":[5,0,0,0,123], "yyjson_8h.html#af7da1562cde867338bc69395c2aeb0ad":[5,0,0,0,138], -"yyjson_8h.html#af9824de7303491b4e43dd423878ae0a0":[5,0,0,0,166], +"yyjson_8h.html#af9824de7303491b4e43dd423878ae0a0":[5,0,0,0,167], "yyjson_8h.html#afb1e130c69db1f54e924e82c3d6377c9":[5,0,0,0,100], "yyjson_8h.html#afb7989387fc481f678e13325c18e6338":[5,0,0,0,47], -"yyjson_8h.html#afc2749d9ed694b6d0a4f5c14da19c7d4":[5,0,0,0,225], +"yyjson_8h.html#afc2749d9ed694b6d0a4f5c14da19c7d4":[5,0,0,0,228], "yyjson_8h.html#afd2b114767b989006259409c6955bb37":[5,0,0,0,129], "yyjson_8h.html#afe50edcbf467f426784326f2282c51fd":[5,0,0,0,25], -"yyjson_8h.html#aff1d62b68993630e74355e4611b77520":[5,0,0,0,267], +"yyjson_8h.html#aff1d62b68993630e74355e4611b77520":[5,0,0,0,293], "yyjson_8h.html#affa9d4c51b9073804d91ef50e3f5ebd6":[5,0,0,0,87], "yyjson_8h.html#structyyjson__arr__iter":[5,0,0,0,6], "yyjson_8h.html#structyyjson__doc":[5,0,0,0,5], diff --git a/doc/doxygen/html/pages.html b/doc/doxygen/html/pages.html index 6ba6d71..05175c1 100644 --- a/doc/doxygen/html/pages.html +++ b/doc/doxygen/html/pages.html @@ -35,7 +35,7 @@ -
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
@@ -98,7 +98,7 @@
Here is a list of all related documentation pages:
- + diff --git a/doc/doxygen/html/search/all_10.js b/doc/doxygen/html/search/all_10.js index 1ff2ced..027c6f4 100644 --- a/doc/doxygen/html/search/all_10.js +++ b/doc/doxygen/html/search/all_10.js @@ -123,185 +123,211 @@ var searchData= ['yyjson_5fmut_5fdoc_5fget_5fpointer_120',['yyjson_mut_doc_get_pointer',['../yyjson_8h.html#a4ff4915acd7a289001592a762b4b40e5',1,'yyjson.h']]], ['yyjson_5fmut_5fdoc_5fget_5fpointern_121',['yyjson_mut_doc_get_pointern',['../yyjson_8h.html#a50bfce709c7853491172fe4198d43863',1,'yyjson.h']]], ['yyjson_5fmut_5fdoc_5fget_5froot_122',['yyjson_mut_doc_get_root',['../yyjson_8h.html#aa33ac310f363ace5f4dda3697b2c0123',1,'yyjson.h']]], - ['yyjson_5fmut_5fdoc_5fmut_5fcopy_123',['yyjson_mut_doc_mut_copy',['../yyjson_8h.html#a6ee1dc133fa773528286cd0b25300cb2',1,'yyjson.h']]], - ['yyjson_5fmut_5fdoc_5fnew_124',['yyjson_mut_doc_new',['../yyjson_8h.html#ae27cb375110302ec19f4376d7cab3c5b',1,'yyjson.h']]], - ['yyjson_5fmut_5fdoc_5fset_5froot_125',['yyjson_mut_doc_set_root',['../yyjson_8h.html#a8a9f7ea865526acb97ee4eff8d0bb79f',1,'yyjson.h']]], - ['yyjson_5fmut_5fequals_126',['yyjson_mut_equals',['../yyjson_8h.html#ab0a5c5a568b7f2c0a6301149f0f6aa84',1,'yyjson.h']]], - ['yyjson_5fmut_5fequals_5fstr_127',['yyjson_mut_equals_str',['../yyjson_8h.html#ab2c44c43c9e8ff194799fd59ae688ee2',1,'yyjson.h']]], - ['yyjson_5fmut_5fequals_5fstrn_128',['yyjson_mut_equals_strn',['../yyjson_8h.html#a1887a4e64900348851f22d528950bf7e',1,'yyjson.h']]], - ['yyjson_5fmut_5ffalse_129',['yyjson_mut_false',['../yyjson_8h.html#a184a7d8fa5b929ce01c7181712c34747',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fbool_130',['yyjson_mut_get_bool',['../yyjson_8h.html#a5ae266ef7d5c52eaa2d5afeafab41721',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fint_131',['yyjson_mut_get_int',['../yyjson_8h.html#aad6de220fa487e31bd1bd2c2cccd9bff',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5flen_132',['yyjson_mut_get_len',['../yyjson_8h.html#aec3a6e6812f3ca8fd58c858275443fe0',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fpointer_133',['yyjson_mut_get_pointer',['../yyjson_8h.html#a45722cf492b766514ee7778ca3b3d4cd',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fpointern_134',['yyjson_mut_get_pointern',['../yyjson_8h.html#ad102bbd0cada29540232c3f2aaa53375',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fraw_135',['yyjson_mut_get_raw',['../yyjson_8h.html#a3de6970785ebf0dd000d28c916793388',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5freal_136',['yyjson_mut_get_real',['../yyjson_8h.html#addde26cc012f50aee79a623e6be4614e',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fsint_137',['yyjson_mut_get_sint',['../yyjson_8h.html#af9824de7303491b4e43dd423878ae0a0',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fstr_138',['yyjson_mut_get_str',['../yyjson_8h.html#a896424a210ec4983f0634467ebe85a68',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fsubtype_139',['yyjson_mut_get_subtype',['../yyjson_8h.html#a1a032ed912524326d22331f7dd1366f2',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5ftag_140',['yyjson_mut_get_tag',['../yyjson_8h.html#a64603b1c33c9ebc626665dea61e25abd',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5ftype_141',['yyjson_mut_get_type',['../yyjson_8h.html#a69acff4e2298d6b1a315d5f75a5eaa9d',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5ftype_5fdesc_142',['yyjson_mut_get_type_desc',['../yyjson_8h.html#a0718192e8eb1b46a83116b15ce6e67c7',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fuint_143',['yyjson_mut_get_uint',['../yyjson_8h.html#a708869e986c30d3a03026be8ce4c2b37',1,'yyjson.h']]], - ['yyjson_5fmut_5fint_144',['yyjson_mut_int',['../yyjson_8h.html#a92e202b3738250ffee612089bdec91eb',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5farr_145',['yyjson_mut_is_arr',['../yyjson_8h.html#a538974615c719cb8ea2e8ea7705569cf',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fbool_146',['yyjson_mut_is_bool',['../yyjson_8h.html#ad18730f04c429faa79be473de57efd5e',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fctn_147',['yyjson_mut_is_ctn',['../yyjson_8h.html#a25f0e04af88792dd01e0ed8461ffb51b',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5ffalse_148',['yyjson_mut_is_false',['../yyjson_8h.html#aadb5f3196fe14e75914ed34d6e700076',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fint_149',['yyjson_mut_is_int',['../yyjson_8h.html#a7bb8c32c190a8e4ce4f5e9e95623f304',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fnull_150',['yyjson_mut_is_null',['../yyjson_8h.html#a17fda97923bb434d4214c56534586606',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fnum_151',['yyjson_mut_is_num',['../yyjson_8h.html#a4c37c92b9977d86475cda1884c9ae52e',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fobj_152',['yyjson_mut_is_obj',['../yyjson_8h.html#aaafe8a57b5e53c9f7f9984c80ab3be1f',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fraw_153',['yyjson_mut_is_raw',['../yyjson_8h.html#a2bbea1da400b473e92b8429027d0f307',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5freal_154',['yyjson_mut_is_real',['../yyjson_8h.html#acfc8545d9b1af8dd8f1488e34fbac351',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fsint_155',['yyjson_mut_is_sint',['../yyjson_8h.html#a907fa46c6ab95e9d7652392507f17e3b',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fstr_156',['yyjson_mut_is_str',['../yyjson_8h.html#ad9f16424bfef46cd479066905f653591',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5ftrue_157',['yyjson_mut_is_true',['../yyjson_8h.html#a5c94af000c170272356f060c76f91559',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fuint_158',['yyjson_mut_is_uint',['../yyjson_8h.html#a740d49152b7b9974c65efeab698dfb67',1,'yyjson.h']]], - ['yyjson_5fmut_5fmerge_5fpatch_159',['yyjson_mut_merge_patch',['../yyjson_8h.html#aad64266ebfbdd2a9627050cf1f3f48d7',1,'yyjson.h']]], - ['yyjson_5fmut_5fnull_160',['yyjson_mut_null',['../yyjson_8h.html#a73e0044fd0c511263cbf5cd869976475',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_161',['yyjson_mut_obj',['../yyjson_8h.html#a721dacf0e32ee6c7f18817aca806e9b2',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_162',['yyjson_mut_obj_add',['../yyjson_8h.html#ac0e1bcd9f449e4b1e62d25fb96830a62',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fbool_163',['yyjson_mut_obj_add_bool',['../yyjson_8h.html#abe2f1b0c0b8cb9ceab3cdc35d4574c86',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5ffalse_164',['yyjson_mut_obj_add_false',['../yyjson_8h.html#a52c88fea8622d7bf4e81ecea93dc5df6',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fint_165',['yyjson_mut_obj_add_int',['../yyjson_8h.html#a56726ff7e284700736e26e56afa6cf7b',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fnull_166',['yyjson_mut_obj_add_null',['../yyjson_8h.html#a6efc657d7f9aefdcba51e753fcea02c1',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5freal_167',['yyjson_mut_obj_add_real',['../yyjson_8h.html#aa4b243e9de837405d83bcc3251156cea',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fsint_168',['yyjson_mut_obj_add_sint',['../yyjson_8h.html#a4070a94fca9592eefa2798dd45237d85',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstr_169',['yyjson_mut_obj_add_str',['../yyjson_8h.html#a996f8aa51f4c1475448974cf98f28df3',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstrcpy_170',['yyjson_mut_obj_add_strcpy',['../yyjson_8h.html#abeeca08e3b6994dddd55951a83cd648f',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstrn_171',['yyjson_mut_obj_add_strn',['../yyjson_8h.html#a4530f9fc02f8604cef3de273feb4ab6a',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstrncpy_172',['yyjson_mut_obj_add_strncpy',['../yyjson_8h.html#a1d544048860a8c53510d560b4d60411a',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5ftrue_173',['yyjson_mut_obj_add_true',['../yyjson_8h.html#a80380f14a448ea046eb718e068c2df6b',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fuint_174',['yyjson_mut_obj_add_uint',['../yyjson_8h.html#a5f48e712fe4988f779a35309779dd765',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fval_175',['yyjson_mut_obj_add_val',['../yyjson_8h.html#a210aa96478b0b005b1611fe2f0ecbaa2',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fclear_176',['yyjson_mut_obj_clear',['../yyjson_8h.html#aee5bc7d2ad2169a04f54e63139eddb86',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fforeach_177',['yyjson_mut_obj_foreach',['../yyjson_8h.html#ae3f12da3b11d3227dd517a1079065a3f',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fget_178',['yyjson_mut_obj_get',['../yyjson_8h.html#a90a824479a3d07f47e9bcce9bbbfcdc0',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fgetn_179',['yyjson_mut_obj_getn',['../yyjson_8h.html#a9f40302607516131c026ca5f13a29946',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5finsert_180',['yyjson_mut_obj_insert',['../yyjson_8h.html#a98e9f97614fce2a6187473eeb35274e8',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_181',['yyjson_mut_obj_iter',['../yyjson_8h.html#structyyjson__mut__obj__iter',1,'']]], - ['yyjson_5fmut_5fobj_5fiter_5fget_182',['yyjson_mut_obj_iter_get',['../yyjson_8h.html#a9e79f1480256c6e2e8dfbf61da9cd853',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fget_5fval_183',['yyjson_mut_obj_iter_get_val',['../yyjson_8h.html#aaa4bef14b71ff145fe8cdc2fa98c7f45',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fgetn_184',['yyjson_mut_obj_iter_getn',['../yyjson_8h.html#a3d3ab359890ab167041732a871ab943d',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fhas_5fnext_185',['yyjson_mut_obj_iter_has_next',['../yyjson_8h.html#aca1345f5057068e556cc6fadda10d04c',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5finit_186',['yyjson_mut_obj_iter_init',['../yyjson_8h.html#ad32e0e0427bda63164f12fe689a6f854',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fnext_187',['yyjson_mut_obj_iter_next',['../yyjson_8h.html#a55f4228c2d65d497ad3cee8abe95c0be',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fremove_188',['yyjson_mut_obj_iter_remove',['../yyjson_8h.html#a6e891b4020dd6325d6eacb5e108da3c4',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fput_189',['yyjson_mut_obj_put',['../yyjson_8h.html#acbfde7c1173b4258f83029c6dacf47c3',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_190',['yyjson_mut_obj_remove',['../yyjson_8h.html#a660d533ce8b661e85c5b14e4e99e5085',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fkey_191',['yyjson_mut_obj_remove_key',['../yyjson_8h.html#a13d5da22b245b8242d9c5c6bd6b3582b',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fkeyn_192',['yyjson_mut_obj_remove_keyn',['../yyjson_8h.html#a36b5cade5e5cfecd47e9ae584078e2b4',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fstr_193',['yyjson_mut_obj_remove_str',['../yyjson_8h.html#a630b55e2937f7ffe8c0dcef20497ce93',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fstrn_194',['yyjson_mut_obj_remove_strn',['../yyjson_8h.html#ae6dfd237f7997125e606d678b3b59b5c',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5freplace_195',['yyjson_mut_obj_replace',['../yyjson_8h.html#a964840d68d5d27ad2e16c63b4b2475b6',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5frotate_196',['yyjson_mut_obj_rotate',['../yyjson_8h.html#a0f1a9fea8fbc13caf61861dfdb498d46',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fsize_197',['yyjson_mut_obj_size',['../yyjson_8h.html#a601ac20666dd26bfbec016ee4cbb1b92',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fwith_5fkv_198',['yyjson_mut_obj_with_kv',['../yyjson_8h.html#afc2749d9ed694b6d0a4f5c14da19c7d4',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fwith_5fstr_199',['yyjson_mut_obj_with_str',['../yyjson_8h.html#a49cfc79051b729689f4f08592b284cc9',1,'yyjson.h']]], - ['yyjson_5fmut_5fraw_200',['yyjson_mut_raw',['../yyjson_8h.html#a7541eb4eadf59e84f1ef06889789d460',1,'yyjson.h']]], - ['yyjson_5fmut_5frawcpy_201',['yyjson_mut_rawcpy',['../yyjson_8h.html#a35cfc3e94310aaddb9eaf6609c4640d9',1,'yyjson.h']]], - ['yyjson_5fmut_5frawn_202',['yyjson_mut_rawn',['../yyjson_8h.html#a3f69c2e1cdc99ae4f9914435b7a542d7',1,'yyjson.h']]], - ['yyjson_5fmut_5frawncpy_203',['yyjson_mut_rawncpy',['../yyjson_8h.html#a8a9cc40b5f3f93b66ba191449f81fbda',1,'yyjson.h']]], - ['yyjson_5fmut_5freal_204',['yyjson_mut_real',['../yyjson_8h.html#a177181eee333314c7b40e2dc573fcdec',1,'yyjson.h']]], - ['yyjson_5fmut_5fsint_205',['yyjson_mut_sint',['../yyjson_8h.html#acd434c1a97d275f97f743e47e228831a',1,'yyjson.h']]], - ['yyjson_5fmut_5fstr_206',['yyjson_mut_str',['../yyjson_8h.html#ae8d7e4c75adb1b9adb2246165491a4a3',1,'yyjson.h']]], - ['yyjson_5fmut_5fstrcpy_207',['yyjson_mut_strcpy',['../yyjson_8h.html#a95300bcf1cdb52d296e39aa1a4650741',1,'yyjson.h']]], - ['yyjson_5fmut_5fstrn_208',['yyjson_mut_strn',['../yyjson_8h.html#a13c39f37c6936907c266ba9c076dd741',1,'yyjson.h']]], - ['yyjson_5fmut_5fstrncpy_209',['yyjson_mut_strncpy',['../yyjson_8h.html#a1588bdc6f4125e5c6d1daf6b240f6ff8',1,'yyjson.h']]], - ['yyjson_5fmut_5ftrue_210',['yyjson_mut_true',['../yyjson_8h.html#a032637dbdee5a6525420384daa097dff',1,'yyjson.h']]], - ['yyjson_5fmut_5fuint_211',['yyjson_mut_uint',['../yyjson_8h.html#a893a09172b402af1bf520cf7347dfeab',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_212',['yyjson_mut_val',['../yyjson_8h.html#structyyjson__mut__val',1,'']]], - ['yyjson_5fmut_5fval_5fmut_5fcopy_213',['yyjson_mut_val_mut_copy',['../yyjson_8h.html#a66761be40cfb010086ec798ddb44018f',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_5fwrite_214',['yyjson_mut_val_write',['../yyjson_8h.html#a700da5ce5bf8bb9d3739cc73a0f51cdf',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_5fwrite_5ffile_215',['yyjson_mut_val_write_file',['../yyjson_8h.html#adf8b2d3c8b57e85d58108d58c68b0db5',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_5fwrite_5fopts_216',['yyjson_mut_val_write_opts',['../yyjson_8h.html#abdaf14b79fe803289070c0e5d5a705b8',1,'yyjson.h']]], - ['yyjson_5fmut_5fwrite_217',['yyjson_mut_write',['../yyjson_8h.html#a881e2ee3f487385810829df8bc675f1f',1,'yyjson.h']]], - ['yyjson_5fmut_5fwrite_5ffile_218',['yyjson_mut_write_file',['../yyjson_8h.html#ad2a7aa77fa66a593536e3d7c3edb1d7a',1,'yyjson.h']]], - ['yyjson_5fmut_5fwrite_5fopts_219',['yyjson_mut_write_opts',['../yyjson_8h.html#a7af42d62aa1583986c687c5cd10b010e',1,'yyjson.h']]], - ['yyjson_5fnoinline_220',['yyjson_noinline',['../yyjson_8h.html#a07affd3b28fe93360627a1c4e03b5b88',1,'yyjson.h']]], - ['yyjson_5fobj_5fforeach_221',['yyjson_obj_foreach',['../yyjson_8h.html#a32884e21b899ea5869b12aec02083002',1,'yyjson.h']]], - ['yyjson_5fobj_5fget_222',['yyjson_obj_get',['../yyjson_8h.html#a1e8a4dea2e9e9248acde14c664ab702b',1,'yyjson.h']]], - ['yyjson_5fobj_5fgetn_223',['yyjson_obj_getn',['../yyjson_8h.html#a2936ca2492ae8cdcdf0435f5259ff854',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_224',['yyjson_obj_iter',['../yyjson_8h.html#structyyjson__obj__iter',1,'']]], - ['yyjson_5fobj_5fiter_5fget_225',['yyjson_obj_iter_get',['../yyjson_8h.html#a1f3b09c4f279287f8af93b3754a41e85',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fget_5fval_226',['yyjson_obj_iter_get_val',['../yyjson_8h.html#a3403b9c25c8b8f2b3027f4e6d97d0ca8',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fgetn_227',['yyjson_obj_iter_getn',['../yyjson_8h.html#a7a45a4b5a1340bb3c2907b7faf3981be',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fhas_5fnext_228',['yyjson_obj_iter_has_next',['../yyjson_8h.html#ab83087bafd1f48910b62bf63200679e1',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5finit_229',['yyjson_obj_iter_init',['../yyjson_8h.html#a2b6a426ece4ffeb9dede1f7a9970140d',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fnext_230',['yyjson_obj_iter_next',['../yyjson_8h.html#a6033befb82b9331d2c19c09799ec5bcf',1,'yyjson.h']]], - ['yyjson_5fobj_5fsize_231',['yyjson_obj_size',['../yyjson_8h.html#aa9789f197f972dc433ea2eb622defd50',1,'yyjson.h']]], - ['yyjson_5fpadding_5fsize_232',['YYJSON_PADDING_SIZE',['../yyjson_8h.html#abbe8e69f634b1a5a78c1dae08b88e0ef',1,'yyjson.h']]], - ['yyjson_5fread_233',['yyjson_read',['../yyjson_8h.html#aeab3c2a1d86225e5b181fb1bba7587d4',1,'yyjson.h']]], - ['yyjson_5fread_5fallow_5fcomments_234',['YYJSON_READ_ALLOW_COMMENTS',['../yyjson_8h.html#aff1d62b68993630e74355e4611b77520',1,'yyjson.h']]], - ['yyjson_5fread_5fallow_5finf_5fand_5fnan_235',['YYJSON_READ_ALLOW_INF_AND_NAN',['../yyjson_8h.html#a4b5c0a7092625f0324bccec938f8862f',1,'yyjson.h']]], - ['yyjson_5fread_5fallow_5finvalid_5funicode_236',['YYJSON_READ_ALLOW_INVALID_UNICODE',['../yyjson_8h.html#abdbf139ee03d263c8a833fbef8cbf63c',1,'yyjson.h']]], - ['yyjson_5fread_5fallow_5ftrailing_5fcommas_237',['YYJSON_READ_ALLOW_TRAILING_COMMAS',['../yyjson_8h.html#a046c7832484dab943bed61ffac274e9c',1,'yyjson.h']]], - ['yyjson_5fread_5fcode_238',['yyjson_read_code',['../yyjson_8h.html#a0590c5ffcdd4f997a0ab5845ef624531',1,'yyjson.h']]], - ['yyjson_5fread_5ferr_239',['yyjson_read_err',['../yyjson_8h.html#structyyjson__read__err',1,'']]], - ['yyjson_5fread_5ferror_5fempty_5fcontent_240',['YYJSON_READ_ERROR_EMPTY_CONTENT',['../yyjson_8h.html#ad8eeaba5611ace5817c7019067cf85fd',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5ffile_5fopen_241',['YYJSON_READ_ERROR_FILE_OPEN',['../yyjson_8h.html#a76cb39cc0755460feedaf3fcf32cea01',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5ffile_5fread_242',['YYJSON_READ_ERROR_FILE_READ',['../yyjson_8h.html#a2cea1aba7baff98fee5affd7737fc969',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5finvalid_5fcomment_243',['YYJSON_READ_ERROR_INVALID_COMMENT',['../yyjson_8h.html#a70209d60e93b24573e8830911c7940a6',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5finvalid_5fnumber_244',['YYJSON_READ_ERROR_INVALID_NUMBER',['../yyjson_8h.html#a8f8b24bb3b8dafc3f135a926b06da2fa',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5finvalid_5fparameter_245',['YYJSON_READ_ERROR_INVALID_PARAMETER',['../yyjson_8h.html#a841a5fd5b187b1ff40232e9d36a5a156',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5finvalid_5fstring_246',['YYJSON_READ_ERROR_INVALID_STRING',['../yyjson_8h.html#ab4f2d4e7fa716c89d3a31f74504898a9',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5fjson_5fstructure_247',['YYJSON_READ_ERROR_JSON_STRUCTURE',['../yyjson_8h.html#ad5bf7b51ed21d3c99500a8f488b2b4b0',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5fliteral_248',['YYJSON_READ_ERROR_LITERAL',['../yyjson_8h.html#a18810c64371c556ea42c0addb9e25bdc',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5fmemory_5fallocation_249',['YYJSON_READ_ERROR_MEMORY_ALLOCATION',['../yyjson_8h.html#a0b729e2b5afc21914a723897dda10c3f',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5funexpected_5fcharacter_250',['YYJSON_READ_ERROR_UNEXPECTED_CHARACTER',['../yyjson_8h.html#aec30d870399447d1b611c400dff5a55c',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5funexpected_5fcontent_251',['YYJSON_READ_ERROR_UNEXPECTED_CONTENT',['../yyjson_8h.html#a0d42ebb09b02ed4e579938b96a833070',1,'yyjson.h']]], - ['yyjson_5fread_5ferror_5funexpected_5fend_252',['YYJSON_READ_ERROR_UNEXPECTED_END',['../yyjson_8h.html#ae82405796b54b235125a5dd14c06650b',1,'yyjson.h']]], - ['yyjson_5fread_5ffile_253',['yyjson_read_file',['../yyjson_8h.html#a605ac08b083fb65331d7fa5eb5d32225',1,'yyjson.h']]], - ['yyjson_5fread_5fflag_254',['yyjson_read_flag',['../yyjson_8h.html#a36af676813028c1360e8b343768f0e81',1,'yyjson.h']]], - ['yyjson_5fread_5finsitu_255',['YYJSON_READ_INSITU',['../yyjson_8h.html#aa476cdc60442393b93dd0474ed4f08bc',1,'yyjson.h']]], - ['yyjson_5fread_5fmax_5fmemory_5fusage_256',['yyjson_read_max_memory_usage',['../yyjson_8h.html#ae511cac592355c2f60f170402b9d8dbf',1,'yyjson.h']]], - ['yyjson_5fread_5fnoflag_257',['YYJSON_READ_NOFLAG',['../yyjson_8h.html#a8940a4ae4ba3467bb7bc6c5ee3deb2ea',1,'yyjson.h']]], - ['yyjson_5fread_5fnumber_5fas_5fraw_258',['YYJSON_READ_NUMBER_AS_RAW',['../yyjson_8h.html#a1cafb3655e6e9e60f019d2b7a9bf79c2',1,'yyjson.h']]], - ['yyjson_5fread_5fopts_259',['yyjson_read_opts',['../yyjson_8h.html#acf234d21f0cb4b7fc89381ef25e9f0a8',1,'yyjson.h']]], - ['yyjson_5fread_5fstop_5fwhen_5fdone_260',['YYJSON_READ_STOP_WHEN_DONE',['../yyjson_8h.html#ad2fb99734b237a7af74924443fe5260e',1,'yyjson.h']]], - ['yyjson_5fread_5fsuccess_261',['YYJSON_READ_SUCCESS',['../yyjson_8h.html#a5b8948d47748a81d6a4abf94949e0e88',1,'yyjson.h']]], - ['yyjson_5fstdc_5fver_262',['YYJSON_STDC_VER',['../yyjson_8h.html#a0a914f47b39417dd25fe728eef7d8f00',1,'yyjson.h']]], - ['yyjson_5fstr_5fchunk_263',['yyjson_str_chunk',['../yyjson_8h.html#structyyjson__str__chunk',1,'']]], - ['yyjson_5fstr_5fpool_264',['yyjson_str_pool',['../yyjson_8h.html#structyyjson__str__pool',1,'']]], - ['yyjson_5fsubtype_265',['yyjson_subtype',['../yyjson_8h.html#a012fa5561c6c87879cceee4e0879a6b6',1,'yyjson.h']]], - ['yyjson_5ftype_266',['yyjson_type',['../yyjson_8h.html#a4d30446a286f54e2f95847f3c6669493',1,'yyjson.h']]], - ['yyjson_5ftype_5fmask_267',['YYJSON_TYPE_MASK',['../yyjson_8h.html#a53b930a8e372ddd7c8d4d389caad391e',1,'yyjson.h']]], - ['yyjson_5funlikely_268',['yyjson_unlikely',['../yyjson_8h.html#a13065ff687cfd3b49eb38739676594f3',1,'yyjson.h']]], - ['yyjson_5fval_269',['yyjson_val',['../yyjson_8h.html#structyyjson__val',1,'']]], - ['yyjson_5fval_5fchunk_270',['yyjson_val_chunk',['../yyjson_8h.html#structyyjson__val__chunk',1,'']]], - ['yyjson_5fval_5fmut_5fcopy_271',['yyjson_val_mut_copy',['../yyjson_8h.html#a04ff184b833fe2d6932309821e2b2e5a',1,'yyjson.h']]], - ['yyjson_5fval_5fpool_272',['yyjson_val_pool',['../yyjson_8h.html#structyyjson__val__pool',1,'']]], - ['yyjson_5fval_5funi_273',['yyjson_val_uni',['../yyjson_8h.html#unionyyjson__val__uni',1,'']]], - ['yyjson_5fval_5fwrite_274',['yyjson_val_write',['../yyjson_8h.html#a00409eb59aee687f7778d00510b59d38',1,'yyjson.h']]], - ['yyjson_5fval_5fwrite_5ffile_275',['yyjson_val_write_file',['../yyjson_8h.html#a725cc27bd7bd37c1d18c41589abd34db',1,'yyjson.h']]], - ['yyjson_5fval_5fwrite_5fopts_276',['yyjson_val_write_opts',['../yyjson_8h.html#a79720744960c9b4fdabbfb28379bbeb4',1,'yyjson.h']]], - ['yyjson_5fversion_277',['yyjson_version',['../yyjson_8h.html#a874f912f9c023bc353d1a770798017a1',1,'yyjson.h']]], - ['yyjson_5fversion_5fhex_278',['YYJSON_VERSION_HEX',['../yyjson_8h.html#ac02a007abcdf7a80894f839acafa5963',1,'yyjson.h']]], - ['yyjson_5fversion_5fmajor_279',['YYJSON_VERSION_MAJOR',['../yyjson_8h.html#a78cf6dd1700f2cd7d7f256b4c2339d8b',1,'yyjson.h']]], - ['yyjson_5fversion_5fminor_280',['YYJSON_VERSION_MINOR',['../yyjson_8h.html#a4c03e94b391df0f2b019c8df6c6e70f1',1,'yyjson.h']]], - ['yyjson_5fversion_5fpatch_281',['YYJSON_VERSION_PATCH',['../yyjson_8h.html#aa6d66fc870aac34589593a0bf6561647',1,'yyjson.h']]], - ['yyjson_5fversion_5fstring_282',['YYJSON_VERSION_STRING',['../yyjson_8h.html#a7b766ff66469615aab5bed9f760aab07',1,'yyjson.h']]], - ['yyjson_5fwrite_283',['yyjson_write',['../yyjson_8h.html#ad231975496ac3788fe5d69804e295443',1,'yyjson.h']]], - ['yyjson_5fwrite_5fallow_5finf_5fand_5fnan_284',['YYJSON_WRITE_ALLOW_INF_AND_NAN',['../yyjson_8h.html#a38fa90e4cf75b0a78148de2058c1b3bd',1,'yyjson.h']]], - ['yyjson_5fwrite_5fallow_5finvalid_5funicode_285',['YYJSON_WRITE_ALLOW_INVALID_UNICODE',['../yyjson_8h.html#a57835e7f895e7533006340ad3abe0b80',1,'yyjson.h']]], - ['yyjson_5fwrite_5fcode_286',['yyjson_write_code',['../yyjson_8h.html#ae19102b96509817f1188f732be19642b',1,'yyjson.h']]], - ['yyjson_5fwrite_5ferr_287',['yyjson_write_err',['../yyjson_8h.html#structyyjson__write__err',1,'']]], - ['yyjson_5fwrite_5ferror_5ffile_5fopen_288',['YYJSON_WRITE_ERROR_FILE_OPEN',['../yyjson_8h.html#a41cb8e304e08d7455f43c753bfa19b82',1,'yyjson.h']]], - ['yyjson_5fwrite_5ferror_5ffile_5fwrite_289',['YYJSON_WRITE_ERROR_FILE_WRITE',['../yyjson_8h.html#a7910a72a728d4f245d43417a42e2e91a',1,'yyjson.h']]], - ['yyjson_5fwrite_5ferror_5finvalid_5fparameter_290',['YYJSON_WRITE_ERROR_INVALID_PARAMETER',['../yyjson_8h.html#a7f123c4c3d850fd6c4e46a2b3aad4508',1,'yyjson.h']]], - ['yyjson_5fwrite_5ferror_5finvalid_5fstring_291',['YYJSON_WRITE_ERROR_INVALID_STRING',['../yyjson_8h.html#ab8f221edd44b0c61d9ff78637bfca05e',1,'yyjson.h']]], - ['yyjson_5fwrite_5ferror_5finvalid_5fvalue_5ftype_292',['YYJSON_WRITE_ERROR_INVALID_VALUE_TYPE',['../yyjson_8h.html#a40c9783509f730cb3ef67080be9444d8',1,'yyjson.h']]], - ['yyjson_5fwrite_5ferror_5fmemory_5fallocation_293',['YYJSON_WRITE_ERROR_MEMORY_ALLOCATION',['../yyjson_8h.html#a4d515d2d192d13281ffe69c1d95cdd49',1,'yyjson.h']]], - ['yyjson_5fwrite_5ferror_5fnan_5for_5finf_294',['YYJSON_WRITE_ERROR_NAN_OR_INF',['../yyjson_8h.html#a179477749cf2aa26c0841089debe4756',1,'yyjson.h']]], - ['yyjson_5fwrite_5fescape_5fslashes_295',['YYJSON_WRITE_ESCAPE_SLASHES',['../yyjson_8h.html#a0eeb35b40e688fce9dd61ed400984042',1,'yyjson.h']]], - ['yyjson_5fwrite_5fescape_5funicode_296',['YYJSON_WRITE_ESCAPE_UNICODE',['../yyjson_8h.html#ac234e82f7a1203e656bcbb0af2ce8c01',1,'yyjson.h']]], - ['yyjson_5fwrite_5ffile_297',['yyjson_write_file',['../yyjson_8h.html#a2d82bd0dc78358326b03e28b9acc19e4',1,'yyjson.h']]], - ['yyjson_5fwrite_5fflag_298',['yyjson_write_flag',['../yyjson_8h.html#afb7989387fc481f678e13325c18e6338',1,'yyjson.h']]], - ['yyjson_5fwrite_5finf_5fand_5fnan_5fas_5fnull_299',['YYJSON_WRITE_INF_AND_NAN_AS_NULL',['../yyjson_8h.html#a4408e0c5928db936b89d49ccf255100b',1,'yyjson.h']]], - ['yyjson_5fwrite_5fnoflag_300',['YYJSON_WRITE_NOFLAG',['../yyjson_8h.html#ae152a6e8e8c6e4efd798fa6eca9d311f',1,'yyjson.h']]], - ['yyjson_5fwrite_5fopts_301',['yyjson_write_opts',['../yyjson_8h.html#a43ccc01254525cef16699e72079e3e49',1,'yyjson.h']]], - ['yyjson_5fwrite_5fpretty_302',['YYJSON_WRITE_PRETTY',['../yyjson_8h.html#aebdaa55a1673e99d2dcea01a15c633be',1,'yyjson.h']]], - ['yyjson_5fwrite_5fsuccess_303',['YYJSON_WRITE_SUCCESS',['../yyjson_8h.html#a20d8f66fbe535a20596001dc2022f0b4',1,'yyjson.h']]] + ['yyjson_5fmut_5fdoc_5fimut_5fcopy_123',['yyjson_mut_doc_imut_copy',['../yyjson_8h.html#a797642b2f815a4f05db03ef87f08cc4f',1,'yyjson.h']]], + ['yyjson_5fmut_5fdoc_5fmut_5fcopy_124',['yyjson_mut_doc_mut_copy',['../yyjson_8h.html#a6ee1dc133fa773528286cd0b25300cb2',1,'yyjson.h']]], + ['yyjson_5fmut_5fdoc_5fnew_125',['yyjson_mut_doc_new',['../yyjson_8h.html#ae27cb375110302ec19f4376d7cab3c5b',1,'yyjson.h']]], + ['yyjson_5fmut_5fdoc_5fset_5froot_126',['yyjson_mut_doc_set_root',['../yyjson_8h.html#a8a9f7ea865526acb97ee4eff8d0bb79f',1,'yyjson.h']]], + ['yyjson_5fmut_5fequals_127',['yyjson_mut_equals',['../yyjson_8h.html#ab0a5c5a568b7f2c0a6301149f0f6aa84',1,'yyjson.h']]], + ['yyjson_5fmut_5fequals_5fstr_128',['yyjson_mut_equals_str',['../yyjson_8h.html#ab2c44c43c9e8ff194799fd59ae688ee2',1,'yyjson.h']]], + ['yyjson_5fmut_5fequals_5fstrn_129',['yyjson_mut_equals_strn',['../yyjson_8h.html#a1887a4e64900348851f22d528950bf7e',1,'yyjson.h']]], + ['yyjson_5fmut_5ffalse_130',['yyjson_mut_false',['../yyjson_8h.html#a184a7d8fa5b929ce01c7181712c34747',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fbool_131',['yyjson_mut_get_bool',['../yyjson_8h.html#a5ae266ef7d5c52eaa2d5afeafab41721',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fint_132',['yyjson_mut_get_int',['../yyjson_8h.html#aad6de220fa487e31bd1bd2c2cccd9bff',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5flen_133',['yyjson_mut_get_len',['../yyjson_8h.html#aec3a6e6812f3ca8fd58c858275443fe0',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fpointer_134',['yyjson_mut_get_pointer',['../yyjson_8h.html#a45722cf492b766514ee7778ca3b3d4cd',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fpointern_135',['yyjson_mut_get_pointern',['../yyjson_8h.html#ad102bbd0cada29540232c3f2aaa53375',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fraw_136',['yyjson_mut_get_raw',['../yyjson_8h.html#a3de6970785ebf0dd000d28c916793388',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5freal_137',['yyjson_mut_get_real',['../yyjson_8h.html#addde26cc012f50aee79a623e6be4614e',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fsint_138',['yyjson_mut_get_sint',['../yyjson_8h.html#af9824de7303491b4e43dd423878ae0a0',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fstr_139',['yyjson_mut_get_str',['../yyjson_8h.html#a896424a210ec4983f0634467ebe85a68',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fsubtype_140',['yyjson_mut_get_subtype',['../yyjson_8h.html#a1a032ed912524326d22331f7dd1366f2',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5ftag_141',['yyjson_mut_get_tag',['../yyjson_8h.html#a64603b1c33c9ebc626665dea61e25abd',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5ftype_142',['yyjson_mut_get_type',['../yyjson_8h.html#a69acff4e2298d6b1a315d5f75a5eaa9d',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5ftype_5fdesc_143',['yyjson_mut_get_type_desc',['../yyjson_8h.html#a0718192e8eb1b46a83116b15ce6e67c7',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fuint_144',['yyjson_mut_get_uint',['../yyjson_8h.html#a708869e986c30d3a03026be8ce4c2b37',1,'yyjson.h']]], + ['yyjson_5fmut_5fint_145',['yyjson_mut_int',['../yyjson_8h.html#a92e202b3738250ffee612089bdec91eb',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5farr_146',['yyjson_mut_is_arr',['../yyjson_8h.html#a538974615c719cb8ea2e8ea7705569cf',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fbool_147',['yyjson_mut_is_bool',['../yyjson_8h.html#ad18730f04c429faa79be473de57efd5e',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fctn_148',['yyjson_mut_is_ctn',['../yyjson_8h.html#a25f0e04af88792dd01e0ed8461ffb51b',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5ffalse_149',['yyjson_mut_is_false',['../yyjson_8h.html#aadb5f3196fe14e75914ed34d6e700076',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fint_150',['yyjson_mut_is_int',['../yyjson_8h.html#a7bb8c32c190a8e4ce4f5e9e95623f304',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fnull_151',['yyjson_mut_is_null',['../yyjson_8h.html#a17fda97923bb434d4214c56534586606',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fnum_152',['yyjson_mut_is_num',['../yyjson_8h.html#a4c37c92b9977d86475cda1884c9ae52e',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fobj_153',['yyjson_mut_is_obj',['../yyjson_8h.html#aaafe8a57b5e53c9f7f9984c80ab3be1f',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fraw_154',['yyjson_mut_is_raw',['../yyjson_8h.html#a2bbea1da400b473e92b8429027d0f307',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5freal_155',['yyjson_mut_is_real',['../yyjson_8h.html#acfc8545d9b1af8dd8f1488e34fbac351',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fsint_156',['yyjson_mut_is_sint',['../yyjson_8h.html#a907fa46c6ab95e9d7652392507f17e3b',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fstr_157',['yyjson_mut_is_str',['../yyjson_8h.html#ad9f16424bfef46cd479066905f653591',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5ftrue_158',['yyjson_mut_is_true',['../yyjson_8h.html#a5c94af000c170272356f060c76f91559',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fuint_159',['yyjson_mut_is_uint',['../yyjson_8h.html#a740d49152b7b9974c65efeab698dfb67',1,'yyjson.h']]], + ['yyjson_5fmut_5fmerge_5fpatch_160',['yyjson_mut_merge_patch',['../yyjson_8h.html#aad64266ebfbdd2a9627050cf1f3f48d7',1,'yyjson.h']]], + ['yyjson_5fmut_5fnull_161',['yyjson_mut_null',['../yyjson_8h.html#a73e0044fd0c511263cbf5cd869976475',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_162',['yyjson_mut_obj',['../yyjson_8h.html#a721dacf0e32ee6c7f18817aca806e9b2',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_163',['yyjson_mut_obj_add',['../yyjson_8h.html#ac0e1bcd9f449e4b1e62d25fb96830a62',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fbool_164',['yyjson_mut_obj_add_bool',['../yyjson_8h.html#abe2f1b0c0b8cb9ceab3cdc35d4574c86',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5ffalse_165',['yyjson_mut_obj_add_false',['../yyjson_8h.html#a52c88fea8622d7bf4e81ecea93dc5df6',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fint_166',['yyjson_mut_obj_add_int',['../yyjson_8h.html#a56726ff7e284700736e26e56afa6cf7b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fnull_167',['yyjson_mut_obj_add_null',['../yyjson_8h.html#a6efc657d7f9aefdcba51e753fcea02c1',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5freal_168',['yyjson_mut_obj_add_real',['../yyjson_8h.html#aa4b243e9de837405d83bcc3251156cea',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fsint_169',['yyjson_mut_obj_add_sint',['../yyjson_8h.html#a4070a94fca9592eefa2798dd45237d85',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstr_170',['yyjson_mut_obj_add_str',['../yyjson_8h.html#a996f8aa51f4c1475448974cf98f28df3',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstrcpy_171',['yyjson_mut_obj_add_strcpy',['../yyjson_8h.html#abeeca08e3b6994dddd55951a83cd648f',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstrn_172',['yyjson_mut_obj_add_strn',['../yyjson_8h.html#a4530f9fc02f8604cef3de273feb4ab6a',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstrncpy_173',['yyjson_mut_obj_add_strncpy',['../yyjson_8h.html#a1d544048860a8c53510d560b4d60411a',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5ftrue_174',['yyjson_mut_obj_add_true',['../yyjson_8h.html#a80380f14a448ea046eb718e068c2df6b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fuint_175',['yyjson_mut_obj_add_uint',['../yyjson_8h.html#a5f48e712fe4988f779a35309779dd765',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fval_176',['yyjson_mut_obj_add_val',['../yyjson_8h.html#a210aa96478b0b005b1611fe2f0ecbaa2',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fclear_177',['yyjson_mut_obj_clear',['../yyjson_8h.html#aee5bc7d2ad2169a04f54e63139eddb86',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fforeach_178',['yyjson_mut_obj_foreach',['../yyjson_8h.html#ae3f12da3b11d3227dd517a1079065a3f',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fget_179',['yyjson_mut_obj_get',['../yyjson_8h.html#a90a824479a3d07f47e9bcce9bbbfcdc0',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fgetn_180',['yyjson_mut_obj_getn',['../yyjson_8h.html#a9f40302607516131c026ca5f13a29946',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5finsert_181',['yyjson_mut_obj_insert',['../yyjson_8h.html#a98e9f97614fce2a6187473eeb35274e8',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_182',['yyjson_mut_obj_iter',['../yyjson_8h.html#structyyjson__mut__obj__iter',1,'']]], + ['yyjson_5fmut_5fobj_5fiter_5fget_183',['yyjson_mut_obj_iter_get',['../yyjson_8h.html#a9e79f1480256c6e2e8dfbf61da9cd853',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fget_5fval_184',['yyjson_mut_obj_iter_get_val',['../yyjson_8h.html#aaa4bef14b71ff145fe8cdc2fa98c7f45',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fgetn_185',['yyjson_mut_obj_iter_getn',['../yyjson_8h.html#a3d3ab359890ab167041732a871ab943d',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fhas_5fnext_186',['yyjson_mut_obj_iter_has_next',['../yyjson_8h.html#aca1345f5057068e556cc6fadda10d04c',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5finit_187',['yyjson_mut_obj_iter_init',['../yyjson_8h.html#ad32e0e0427bda63164f12fe689a6f854',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fnext_188',['yyjson_mut_obj_iter_next',['../yyjson_8h.html#a55f4228c2d65d497ad3cee8abe95c0be',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fremove_189',['yyjson_mut_obj_iter_remove',['../yyjson_8h.html#a6e891b4020dd6325d6eacb5e108da3c4',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fput_190',['yyjson_mut_obj_put',['../yyjson_8h.html#acbfde7c1173b4258f83029c6dacf47c3',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_191',['yyjson_mut_obj_remove',['../yyjson_8h.html#a660d533ce8b661e85c5b14e4e99e5085',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fkey_192',['yyjson_mut_obj_remove_key',['../yyjson_8h.html#a13d5da22b245b8242d9c5c6bd6b3582b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fkeyn_193',['yyjson_mut_obj_remove_keyn',['../yyjson_8h.html#a36b5cade5e5cfecd47e9ae584078e2b4',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fstr_194',['yyjson_mut_obj_remove_str',['../yyjson_8h.html#a630b55e2937f7ffe8c0dcef20497ce93',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fstrn_195',['yyjson_mut_obj_remove_strn',['../yyjson_8h.html#ae6dfd237f7997125e606d678b3b59b5c',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5frename_5fkey_196',['yyjson_mut_obj_rename_key',['../yyjson_8h.html#aea65c64007cfa236faa17e1ac87c4e5e',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5frename_5fkeyn_197',['yyjson_mut_obj_rename_keyn',['../yyjson_8h.html#a335b9fdffa2885eb5eddd1ee2b43016b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5freplace_198',['yyjson_mut_obj_replace',['../yyjson_8h.html#a964840d68d5d27ad2e16c63b4b2475b6',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5frotate_199',['yyjson_mut_obj_rotate',['../yyjson_8h.html#a0f1a9fea8fbc13caf61861dfdb498d46',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fsize_200',['yyjson_mut_obj_size',['../yyjson_8h.html#a601ac20666dd26bfbec016ee4cbb1b92',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fwith_5fkv_201',['yyjson_mut_obj_with_kv',['../yyjson_8h.html#afc2749d9ed694b6d0a4f5c14da19c7d4',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fwith_5fstr_202',['yyjson_mut_obj_with_str',['../yyjson_8h.html#a49cfc79051b729689f4f08592b284cc9',1,'yyjson.h']]], + ['yyjson_5fmut_5fraw_203',['yyjson_mut_raw',['../yyjson_8h.html#a7541eb4eadf59e84f1ef06889789d460',1,'yyjson.h']]], + ['yyjson_5fmut_5frawcpy_204',['yyjson_mut_rawcpy',['../yyjson_8h.html#a35cfc3e94310aaddb9eaf6609c4640d9',1,'yyjson.h']]], + ['yyjson_5fmut_5frawn_205',['yyjson_mut_rawn',['../yyjson_8h.html#a3f69c2e1cdc99ae4f9914435b7a542d7',1,'yyjson.h']]], + ['yyjson_5fmut_5frawncpy_206',['yyjson_mut_rawncpy',['../yyjson_8h.html#a8a9cc40b5f3f93b66ba191449f81fbda',1,'yyjson.h']]], + ['yyjson_5fmut_5fread_5fnumber_207',['yyjson_mut_read_number',['../yyjson_8h.html#aba2b7153e213808a87ecde3ce00b23e1',1,'yyjson.h']]], + ['yyjson_5fmut_5freal_208',['yyjson_mut_real',['../yyjson_8h.html#a177181eee333314c7b40e2dc573fcdec',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5farr_209',['yyjson_mut_set_arr',['../yyjson_8h.html#af6dac7e5e95ccc12d79c31b96d33940a',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fbool_210',['yyjson_mut_set_bool',['../yyjson_8h.html#a108d97873650fd95453f3c82a0b6a2aa',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fint_211',['yyjson_mut_set_int',['../yyjson_8h.html#a64168360e4ac45070f98c6db92b89cd7',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fnull_212',['yyjson_mut_set_null',['../yyjson_8h.html#a6e0c3b9ff069db64e4aa14da1078b538',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fobj_213',['yyjson_mut_set_obj',['../yyjson_8h.html#a533791670fe27f71bab321d586e11ea2',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fraw_214',['yyjson_mut_set_raw',['../yyjson_8h.html#a510bd8af8c64911827c890bd67245282',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5freal_215',['yyjson_mut_set_real',['../yyjson_8h.html#a0cbd041b4d5a31d6dcc0bd759eae6cf7',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fsint_216',['yyjson_mut_set_sint',['../yyjson_8h.html#ad3c513a8fd61c173c4afa404572e02f6',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fstr_217',['yyjson_mut_set_str',['../yyjson_8h.html#a84e98fae940ff675b2a22076cbd5efc1',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fstrn_218',['yyjson_mut_set_strn',['../yyjson_8h.html#a298c4558e0b349e4f801f210f19ac8b1',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fuint_219',['yyjson_mut_set_uint',['../yyjson_8h.html#a84604772b235ec0f651532013f2480a8',1,'yyjson.h']]], + ['yyjson_5fmut_5fsint_220',['yyjson_mut_sint',['../yyjson_8h.html#acd434c1a97d275f97f743e47e228831a',1,'yyjson.h']]], + ['yyjson_5fmut_5fstr_221',['yyjson_mut_str',['../yyjson_8h.html#ae8d7e4c75adb1b9adb2246165491a4a3',1,'yyjson.h']]], + ['yyjson_5fmut_5fstrcpy_222',['yyjson_mut_strcpy',['../yyjson_8h.html#a95300bcf1cdb52d296e39aa1a4650741',1,'yyjson.h']]], + ['yyjson_5fmut_5fstrn_223',['yyjson_mut_strn',['../yyjson_8h.html#a13c39f37c6936907c266ba9c076dd741',1,'yyjson.h']]], + ['yyjson_5fmut_5fstrncpy_224',['yyjson_mut_strncpy',['../yyjson_8h.html#a1588bdc6f4125e5c6d1daf6b240f6ff8',1,'yyjson.h']]], + ['yyjson_5fmut_5ftrue_225',['yyjson_mut_true',['../yyjson_8h.html#a032637dbdee5a6525420384daa097dff',1,'yyjson.h']]], + ['yyjson_5fmut_5fuint_226',['yyjson_mut_uint',['../yyjson_8h.html#a893a09172b402af1bf520cf7347dfeab',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_227',['yyjson_mut_val',['../yyjson_8h.html#structyyjson__mut__val',1,'']]], + ['yyjson_5fmut_5fval_5fimut_5fcopy_228',['yyjson_mut_val_imut_copy',['../yyjson_8h.html#a7a142af553e7831989593aee44f74e26',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fmut_5fcopy_229',['yyjson_mut_val_mut_copy',['../yyjson_8h.html#a66761be40cfb010086ec798ddb44018f',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fwrite_230',['yyjson_mut_val_write',['../yyjson_8h.html#a700da5ce5bf8bb9d3739cc73a0f51cdf',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fwrite_5ffile_231',['yyjson_mut_val_write_file',['../yyjson_8h.html#adf8b2d3c8b57e85d58108d58c68b0db5',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fwrite_5fopts_232',['yyjson_mut_val_write_opts',['../yyjson_8h.html#abdaf14b79fe803289070c0e5d5a705b8',1,'yyjson.h']]], + ['yyjson_5fmut_5fwrite_233',['yyjson_mut_write',['../yyjson_8h.html#a881e2ee3f487385810829df8bc675f1f',1,'yyjson.h']]], + ['yyjson_5fmut_5fwrite_5ffile_234',['yyjson_mut_write_file',['../yyjson_8h.html#ad2a7aa77fa66a593536e3d7c3edb1d7a',1,'yyjson.h']]], + ['yyjson_5fmut_5fwrite_5fopts_235',['yyjson_mut_write_opts',['../yyjson_8h.html#a7af42d62aa1583986c687c5cd10b010e',1,'yyjson.h']]], + ['yyjson_5fnoinline_236',['yyjson_noinline',['../yyjson_8h.html#a07affd3b28fe93360627a1c4e03b5b88',1,'yyjson.h']]], + ['yyjson_5fobj_5fforeach_237',['yyjson_obj_foreach',['../yyjson_8h.html#a32884e21b899ea5869b12aec02083002',1,'yyjson.h']]], + ['yyjson_5fobj_5fget_238',['yyjson_obj_get',['../yyjson_8h.html#a1e8a4dea2e9e9248acde14c664ab702b',1,'yyjson.h']]], + ['yyjson_5fobj_5fgetn_239',['yyjson_obj_getn',['../yyjson_8h.html#a2936ca2492ae8cdcdf0435f5259ff854',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_240',['yyjson_obj_iter',['../yyjson_8h.html#structyyjson__obj__iter',1,'']]], + ['yyjson_5fobj_5fiter_5fget_241',['yyjson_obj_iter_get',['../yyjson_8h.html#a1f3b09c4f279287f8af93b3754a41e85',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fget_5fval_242',['yyjson_obj_iter_get_val',['../yyjson_8h.html#a3403b9c25c8b8f2b3027f4e6d97d0ca8',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fgetn_243',['yyjson_obj_iter_getn',['../yyjson_8h.html#a7a45a4b5a1340bb3c2907b7faf3981be',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fhas_5fnext_244',['yyjson_obj_iter_has_next',['../yyjson_8h.html#ab83087bafd1f48910b62bf63200679e1',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5finit_245',['yyjson_obj_iter_init',['../yyjson_8h.html#a2b6a426ece4ffeb9dede1f7a9970140d',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fnext_246',['yyjson_obj_iter_next',['../yyjson_8h.html#a6033befb82b9331d2c19c09799ec5bcf',1,'yyjson.h']]], + ['yyjson_5fobj_5fsize_247',['yyjson_obj_size',['../yyjson_8h.html#aa9789f197f972dc433ea2eb622defd50',1,'yyjson.h']]], + ['yyjson_5fpadding_5fsize_248',['YYJSON_PADDING_SIZE',['../yyjson_8h.html#abbe8e69f634b1a5a78c1dae08b88e0ef',1,'yyjson.h']]], + ['yyjson_5fread_249',['yyjson_read',['../yyjson_8h.html#aeab3c2a1d86225e5b181fb1bba7587d4',1,'yyjson.h']]], + ['yyjson_5fread_5fallow_5fcomments_250',['YYJSON_READ_ALLOW_COMMENTS',['../yyjson_8h.html#aff1d62b68993630e74355e4611b77520',1,'yyjson.h']]], + ['yyjson_5fread_5fallow_5finf_5fand_5fnan_251',['YYJSON_READ_ALLOW_INF_AND_NAN',['../yyjson_8h.html#a4b5c0a7092625f0324bccec938f8862f',1,'yyjson.h']]], + ['yyjson_5fread_5fallow_5finvalid_5funicode_252',['YYJSON_READ_ALLOW_INVALID_UNICODE',['../yyjson_8h.html#abdbf139ee03d263c8a833fbef8cbf63c',1,'yyjson.h']]], + ['yyjson_5fread_5fallow_5ftrailing_5fcommas_253',['YYJSON_READ_ALLOW_TRAILING_COMMAS',['../yyjson_8h.html#a046c7832484dab943bed61ffac274e9c',1,'yyjson.h']]], + ['yyjson_5fread_5fcode_254',['yyjson_read_code',['../yyjson_8h.html#a0590c5ffcdd4f997a0ab5845ef624531',1,'yyjson.h']]], + ['yyjson_5fread_5ferr_255',['yyjson_read_err',['../yyjson_8h.html#structyyjson__read__err',1,'']]], + ['yyjson_5fread_5ferror_5fempty_5fcontent_256',['YYJSON_READ_ERROR_EMPTY_CONTENT',['../yyjson_8h.html#ad8eeaba5611ace5817c7019067cf85fd',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5ffile_5fopen_257',['YYJSON_READ_ERROR_FILE_OPEN',['../yyjson_8h.html#a76cb39cc0755460feedaf3fcf32cea01',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5ffile_5fread_258',['YYJSON_READ_ERROR_FILE_READ',['../yyjson_8h.html#a2cea1aba7baff98fee5affd7737fc969',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5finvalid_5fcomment_259',['YYJSON_READ_ERROR_INVALID_COMMENT',['../yyjson_8h.html#a70209d60e93b24573e8830911c7940a6',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5finvalid_5fnumber_260',['YYJSON_READ_ERROR_INVALID_NUMBER',['../yyjson_8h.html#a8f8b24bb3b8dafc3f135a926b06da2fa',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5finvalid_5fparameter_261',['YYJSON_READ_ERROR_INVALID_PARAMETER',['../yyjson_8h.html#a841a5fd5b187b1ff40232e9d36a5a156',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5finvalid_5fstring_262',['YYJSON_READ_ERROR_INVALID_STRING',['../yyjson_8h.html#ab4f2d4e7fa716c89d3a31f74504898a9',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5fjson_5fstructure_263',['YYJSON_READ_ERROR_JSON_STRUCTURE',['../yyjson_8h.html#ad5bf7b51ed21d3c99500a8f488b2b4b0',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5fliteral_264',['YYJSON_READ_ERROR_LITERAL',['../yyjson_8h.html#a18810c64371c556ea42c0addb9e25bdc',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5fmemory_5fallocation_265',['YYJSON_READ_ERROR_MEMORY_ALLOCATION',['../yyjson_8h.html#a0b729e2b5afc21914a723897dda10c3f',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5funexpected_5fcharacter_266',['YYJSON_READ_ERROR_UNEXPECTED_CHARACTER',['../yyjson_8h.html#aec30d870399447d1b611c400dff5a55c',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5funexpected_5fcontent_267',['YYJSON_READ_ERROR_UNEXPECTED_CONTENT',['../yyjson_8h.html#a0d42ebb09b02ed4e579938b96a833070',1,'yyjson.h']]], + ['yyjson_5fread_5ferror_5funexpected_5fend_268',['YYJSON_READ_ERROR_UNEXPECTED_END',['../yyjson_8h.html#ae82405796b54b235125a5dd14c06650b',1,'yyjson.h']]], + ['yyjson_5fread_5ffile_269',['yyjson_read_file',['../yyjson_8h.html#a605ac08b083fb65331d7fa5eb5d32225',1,'yyjson.h']]], + ['yyjson_5fread_5fflag_270',['yyjson_read_flag',['../yyjson_8h.html#a36af676813028c1360e8b343768f0e81',1,'yyjson.h']]], + ['yyjson_5fread_5finsitu_271',['YYJSON_READ_INSITU',['../yyjson_8h.html#aa476cdc60442393b93dd0474ed4f08bc',1,'yyjson.h']]], + ['yyjson_5fread_5fmax_5fmemory_5fusage_272',['yyjson_read_max_memory_usage',['../yyjson_8h.html#ae511cac592355c2f60f170402b9d8dbf',1,'yyjson.h']]], + ['yyjson_5fread_5fnoflag_273',['YYJSON_READ_NOFLAG',['../yyjson_8h.html#a8940a4ae4ba3467bb7bc6c5ee3deb2ea',1,'yyjson.h']]], + ['yyjson_5fread_5fnumber_274',['yyjson_read_number',['../yyjson_8h.html#aec9ae4949a2cb626242ec174fba5aadb',1,'yyjson.h']]], + ['yyjson_5fread_5fnumber_5fas_5fraw_275',['YYJSON_READ_NUMBER_AS_RAW',['../yyjson_8h.html#a1cafb3655e6e9e60f019d2b7a9bf79c2',1,'yyjson.h']]], + ['yyjson_5fread_5fopts_276',['yyjson_read_opts',['../yyjson_8h.html#acf234d21f0cb4b7fc89381ef25e9f0a8',1,'yyjson.h']]], + ['yyjson_5fread_5fstop_5fwhen_5fdone_277',['YYJSON_READ_STOP_WHEN_DONE',['../yyjson_8h.html#ad2fb99734b237a7af74924443fe5260e',1,'yyjson.h']]], + ['yyjson_5fread_5fsuccess_278',['YYJSON_READ_SUCCESS',['../yyjson_8h.html#a5b8948d47748a81d6a4abf94949e0e88',1,'yyjson.h']]], + ['yyjson_5fset_5fbool_279',['yyjson_set_bool',['../yyjson_8h.html#ad99ceda574b466f8102699e52564c8da',1,'yyjson.h']]], + ['yyjson_5fset_5fint_280',['yyjson_set_int',['../yyjson_8h.html#af1f4dd90c0bd891cb139e72cfd588789',1,'yyjson.h']]], + ['yyjson_5fset_5fnull_281',['yyjson_set_null',['../yyjson_8h.html#a079fdf2d481492c8533104437dbf2283',1,'yyjson.h']]], + ['yyjson_5fset_5fraw_282',['yyjson_set_raw',['../yyjson_8h.html#a75ee22602fb750b67fda804fb653ef1e',1,'yyjson.h']]], + ['yyjson_5fset_5freal_283',['yyjson_set_real',['../yyjson_8h.html#ac782a838c6378f022434d7ab3a3b333d',1,'yyjson.h']]], + ['yyjson_5fset_5fsint_284',['yyjson_set_sint',['../yyjson_8h.html#ad0f58bd6ac0289fd55d09b02fa3d4743',1,'yyjson.h']]], + ['yyjson_5fset_5fstr_285',['yyjson_set_str',['../yyjson_8h.html#a9a0f4082d2244b7264a819bbc32ebbdf',1,'yyjson.h']]], + ['yyjson_5fset_5fstrn_286',['yyjson_set_strn',['../yyjson_8h.html#a9e49dc52b6209708df0ccf4ddf49b8c4',1,'yyjson.h']]], + ['yyjson_5fset_5fuint_287',['yyjson_set_uint',['../yyjson_8h.html#a90614444c9d6bbd7d8586176986adbc5',1,'yyjson.h']]], + ['yyjson_5fstdc_5fver_288',['YYJSON_STDC_VER',['../yyjson_8h.html#a0a914f47b39417dd25fe728eef7d8f00',1,'yyjson.h']]], + ['yyjson_5fstr_5fchunk_289',['yyjson_str_chunk',['../yyjson_8h.html#structyyjson__str__chunk',1,'']]], + ['yyjson_5fstr_5fpool_290',['yyjson_str_pool',['../yyjson_8h.html#structyyjson__str__pool',1,'']]], + ['yyjson_5fsubtype_291',['yyjson_subtype',['../yyjson_8h.html#a012fa5561c6c87879cceee4e0879a6b6',1,'yyjson.h']]], + ['yyjson_5ftype_292',['yyjson_type',['../yyjson_8h.html#a4d30446a286f54e2f95847f3c6669493',1,'yyjson.h']]], + ['yyjson_5ftype_5fmask_293',['YYJSON_TYPE_MASK',['../yyjson_8h.html#a53b930a8e372ddd7c8d4d389caad391e',1,'yyjson.h']]], + ['yyjson_5funlikely_294',['yyjson_unlikely',['../yyjson_8h.html#a13065ff687cfd3b49eb38739676594f3',1,'yyjson.h']]], + ['yyjson_5fval_295',['yyjson_val',['../yyjson_8h.html#structyyjson__val',1,'']]], + ['yyjson_5fval_5fchunk_296',['yyjson_val_chunk',['../yyjson_8h.html#structyyjson__val__chunk',1,'']]], + ['yyjson_5fval_5fmut_5fcopy_297',['yyjson_val_mut_copy',['../yyjson_8h.html#a04ff184b833fe2d6932309821e2b2e5a',1,'yyjson.h']]], + ['yyjson_5fval_5fpool_298',['yyjson_val_pool',['../yyjson_8h.html#structyyjson__val__pool',1,'']]], + ['yyjson_5fval_5funi_299',['yyjson_val_uni',['../yyjson_8h.html#unionyyjson__val__uni',1,'']]], + ['yyjson_5fval_5fwrite_300',['yyjson_val_write',['../yyjson_8h.html#a00409eb59aee687f7778d00510b59d38',1,'yyjson.h']]], + ['yyjson_5fval_5fwrite_5ffile_301',['yyjson_val_write_file',['../yyjson_8h.html#a725cc27bd7bd37c1d18c41589abd34db',1,'yyjson.h']]], + ['yyjson_5fval_5fwrite_5fopts_302',['yyjson_val_write_opts',['../yyjson_8h.html#a79720744960c9b4fdabbfb28379bbeb4',1,'yyjson.h']]], + ['yyjson_5fversion_303',['yyjson_version',['../yyjson_8h.html#a874f912f9c023bc353d1a770798017a1',1,'yyjson.h']]], + ['yyjson_5fversion_5fhex_304',['YYJSON_VERSION_HEX',['../yyjson_8h.html#ac02a007abcdf7a80894f839acafa5963',1,'yyjson.h']]], + ['yyjson_5fversion_5fmajor_305',['YYJSON_VERSION_MAJOR',['../yyjson_8h.html#a78cf6dd1700f2cd7d7f256b4c2339d8b',1,'yyjson.h']]], + ['yyjson_5fversion_5fminor_306',['YYJSON_VERSION_MINOR',['../yyjson_8h.html#a4c03e94b391df0f2b019c8df6c6e70f1',1,'yyjson.h']]], + ['yyjson_5fversion_5fpatch_307',['YYJSON_VERSION_PATCH',['../yyjson_8h.html#aa6d66fc870aac34589593a0bf6561647',1,'yyjson.h']]], + ['yyjson_5fversion_5fstring_308',['YYJSON_VERSION_STRING',['../yyjson_8h.html#a7b766ff66469615aab5bed9f760aab07',1,'yyjson.h']]], + ['yyjson_5fwrite_309',['yyjson_write',['../yyjson_8h.html#ad231975496ac3788fe5d69804e295443',1,'yyjson.h']]], + ['yyjson_5fwrite_5fallow_5finf_5fand_5fnan_310',['YYJSON_WRITE_ALLOW_INF_AND_NAN',['../yyjson_8h.html#a38fa90e4cf75b0a78148de2058c1b3bd',1,'yyjson.h']]], + ['yyjson_5fwrite_5fallow_5finvalid_5funicode_311',['YYJSON_WRITE_ALLOW_INVALID_UNICODE',['../yyjson_8h.html#ae2709fd5ec704ef7a569d62195e4652d',1,'yyjson.h']]], + ['yyjson_5fwrite_5fcode_312',['yyjson_write_code',['../yyjson_8h.html#ae19102b96509817f1188f732be19642b',1,'yyjson.h']]], + ['yyjson_5fwrite_5ferr_313',['yyjson_write_err',['../yyjson_8h.html#structyyjson__write__err',1,'']]], + ['yyjson_5fwrite_5ferror_5ffile_5fopen_314',['YYJSON_WRITE_ERROR_FILE_OPEN',['../yyjson_8h.html#a41cb8e304e08d7455f43c753bfa19b82',1,'yyjson.h']]], + ['yyjson_5fwrite_5ferror_5ffile_5fwrite_315',['YYJSON_WRITE_ERROR_FILE_WRITE',['../yyjson_8h.html#a7910a72a728d4f245d43417a42e2e91a',1,'yyjson.h']]], + ['yyjson_5fwrite_5ferror_5finvalid_5fparameter_316',['YYJSON_WRITE_ERROR_INVALID_PARAMETER',['../yyjson_8h.html#a7f123c4c3d850fd6c4e46a2b3aad4508',1,'yyjson.h']]], + ['yyjson_5fwrite_5ferror_5finvalid_5fstring_317',['YYJSON_WRITE_ERROR_INVALID_STRING',['../yyjson_8h.html#ab8f221edd44b0c61d9ff78637bfca05e',1,'yyjson.h']]], + ['yyjson_5fwrite_5ferror_5finvalid_5fvalue_5ftype_318',['YYJSON_WRITE_ERROR_INVALID_VALUE_TYPE',['../yyjson_8h.html#a40c9783509f730cb3ef67080be9444d8',1,'yyjson.h']]], + ['yyjson_5fwrite_5ferror_5fmemory_5fallocation_319',['YYJSON_WRITE_ERROR_MEMORY_ALLOCATION',['../yyjson_8h.html#a4d515d2d192d13281ffe69c1d95cdd49',1,'yyjson.h']]], + ['yyjson_5fwrite_5ferror_5fnan_5for_5finf_320',['YYJSON_WRITE_ERROR_NAN_OR_INF',['../yyjson_8h.html#a179477749cf2aa26c0841089debe4756',1,'yyjson.h']]], + ['yyjson_5fwrite_5fescape_5fslashes_321',['YYJSON_WRITE_ESCAPE_SLASHES',['../yyjson_8h.html#a0eeb35b40e688fce9dd61ed400984042',1,'yyjson.h']]], + ['yyjson_5fwrite_5fescape_5funicode_322',['YYJSON_WRITE_ESCAPE_UNICODE',['../yyjson_8h.html#ac234e82f7a1203e656bcbb0af2ce8c01',1,'yyjson.h']]], + ['yyjson_5fwrite_5ffile_323',['yyjson_write_file',['../yyjson_8h.html#a2d82bd0dc78358326b03e28b9acc19e4',1,'yyjson.h']]], + ['yyjson_5fwrite_5fflag_324',['yyjson_write_flag',['../yyjson_8h.html#afb7989387fc481f678e13325c18e6338',1,'yyjson.h']]], + ['yyjson_5fwrite_5finf_5fand_5fnan_5fas_5fnull_325',['YYJSON_WRITE_INF_AND_NAN_AS_NULL',['../yyjson_8h.html#a4408e0c5928db936b89d49ccf255100b',1,'yyjson.h']]], + ['yyjson_5fwrite_5fnoflag_326',['YYJSON_WRITE_NOFLAG',['../yyjson_8h.html#ae152a6e8e8c6e4efd798fa6eca9d311f',1,'yyjson.h']]], + ['yyjson_5fwrite_5fopts_327',['yyjson_write_opts',['../yyjson_8h.html#a43ccc01254525cef16699e72079e3e49',1,'yyjson.h']]], + ['yyjson_5fwrite_5fpretty_328',['YYJSON_WRITE_PRETTY',['../yyjson_8h.html#aebdaa55a1673e99d2dcea01a15c633be',1,'yyjson.h']]], + ['yyjson_5fwrite_5fsuccess_329',['YYJSON_WRITE_SUCCESS',['../yyjson_8h.html#a20d8f66fbe535a20596001dc2022f0b4',1,'yyjson.h']]] ]; diff --git a/doc/doxygen/html/search/all_2.js b/doc/doxygen/html/search/all_2.js index fa6977c..3311a50 100644 --- a/doc/doxygen/html/search/all_2.js +++ b/doc/doxygen/html/search/all_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['build_20and_20test_0',['Build and Test',['../md_doc__build_and_test.html',1,'']]] + ['building_20and_20testing_0',['Building and testing',['../md_doc__build_and_test.html',1,'']]] ]; diff --git a/doc/doxygen/html/search/functions_0.js b/doc/doxygen/html/search/functions_0.js index ad75baa..6552ab8 100644 --- a/doc/doxygen/html/search/functions_0.js +++ b/doc/doxygen/html/search/functions_0.js @@ -104,119 +104,145 @@ var searchData= ['yyjson_5fmut_5fdoc_5fget_5fpointer_101',['yyjson_mut_doc_get_pointer',['../yyjson_8h.html#a4ff4915acd7a289001592a762b4b40e5',1,'yyjson.h']]], ['yyjson_5fmut_5fdoc_5fget_5fpointern_102',['yyjson_mut_doc_get_pointern',['../yyjson_8h.html#a50bfce709c7853491172fe4198d43863',1,'yyjson.h']]], ['yyjson_5fmut_5fdoc_5fget_5froot_103',['yyjson_mut_doc_get_root',['../yyjson_8h.html#aa33ac310f363ace5f4dda3697b2c0123',1,'yyjson.h']]], - ['yyjson_5fmut_5fdoc_5fmut_5fcopy_104',['yyjson_mut_doc_mut_copy',['../yyjson_8h.html#a6ee1dc133fa773528286cd0b25300cb2',1,'yyjson.h']]], - ['yyjson_5fmut_5fdoc_5fnew_105',['yyjson_mut_doc_new',['../yyjson_8h.html#ae27cb375110302ec19f4376d7cab3c5b',1,'yyjson.h']]], - ['yyjson_5fmut_5fdoc_5fset_5froot_106',['yyjson_mut_doc_set_root',['../yyjson_8h.html#a8a9f7ea865526acb97ee4eff8d0bb79f',1,'yyjson.h']]], - ['yyjson_5fmut_5fequals_107',['yyjson_mut_equals',['../yyjson_8h.html#ab0a5c5a568b7f2c0a6301149f0f6aa84',1,'yyjson.h']]], - ['yyjson_5fmut_5fequals_5fstr_108',['yyjson_mut_equals_str',['../yyjson_8h.html#ab2c44c43c9e8ff194799fd59ae688ee2',1,'yyjson.h']]], - ['yyjson_5fmut_5fequals_5fstrn_109',['yyjson_mut_equals_strn',['../yyjson_8h.html#a1887a4e64900348851f22d528950bf7e',1,'yyjson.h']]], - ['yyjson_5fmut_5ffalse_110',['yyjson_mut_false',['../yyjson_8h.html#a184a7d8fa5b929ce01c7181712c34747',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fbool_111',['yyjson_mut_get_bool',['../yyjson_8h.html#a5ae266ef7d5c52eaa2d5afeafab41721',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fint_112',['yyjson_mut_get_int',['../yyjson_8h.html#aad6de220fa487e31bd1bd2c2cccd9bff',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5flen_113',['yyjson_mut_get_len',['../yyjson_8h.html#aec3a6e6812f3ca8fd58c858275443fe0',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fpointer_114',['yyjson_mut_get_pointer',['../yyjson_8h.html#a45722cf492b766514ee7778ca3b3d4cd',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fpointern_115',['yyjson_mut_get_pointern',['../yyjson_8h.html#ad102bbd0cada29540232c3f2aaa53375',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fraw_116',['yyjson_mut_get_raw',['../yyjson_8h.html#a3de6970785ebf0dd000d28c916793388',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5freal_117',['yyjson_mut_get_real',['../yyjson_8h.html#addde26cc012f50aee79a623e6be4614e',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fsint_118',['yyjson_mut_get_sint',['../yyjson_8h.html#af9824de7303491b4e43dd423878ae0a0',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fstr_119',['yyjson_mut_get_str',['../yyjson_8h.html#a896424a210ec4983f0634467ebe85a68',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fsubtype_120',['yyjson_mut_get_subtype',['../yyjson_8h.html#a1a032ed912524326d22331f7dd1366f2',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5ftag_121',['yyjson_mut_get_tag',['../yyjson_8h.html#a64603b1c33c9ebc626665dea61e25abd',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5ftype_122',['yyjson_mut_get_type',['../yyjson_8h.html#a69acff4e2298d6b1a315d5f75a5eaa9d',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5ftype_5fdesc_123',['yyjson_mut_get_type_desc',['../yyjson_8h.html#a0718192e8eb1b46a83116b15ce6e67c7',1,'yyjson.h']]], - ['yyjson_5fmut_5fget_5fuint_124',['yyjson_mut_get_uint',['../yyjson_8h.html#a708869e986c30d3a03026be8ce4c2b37',1,'yyjson.h']]], - ['yyjson_5fmut_5fint_125',['yyjson_mut_int',['../yyjson_8h.html#a92e202b3738250ffee612089bdec91eb',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5farr_126',['yyjson_mut_is_arr',['../yyjson_8h.html#a538974615c719cb8ea2e8ea7705569cf',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fbool_127',['yyjson_mut_is_bool',['../yyjson_8h.html#ad18730f04c429faa79be473de57efd5e',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fctn_128',['yyjson_mut_is_ctn',['../yyjson_8h.html#a25f0e04af88792dd01e0ed8461ffb51b',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5ffalse_129',['yyjson_mut_is_false',['../yyjson_8h.html#aadb5f3196fe14e75914ed34d6e700076',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fint_130',['yyjson_mut_is_int',['../yyjson_8h.html#a7bb8c32c190a8e4ce4f5e9e95623f304',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fnull_131',['yyjson_mut_is_null',['../yyjson_8h.html#a17fda97923bb434d4214c56534586606',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fnum_132',['yyjson_mut_is_num',['../yyjson_8h.html#a4c37c92b9977d86475cda1884c9ae52e',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fobj_133',['yyjson_mut_is_obj',['../yyjson_8h.html#aaafe8a57b5e53c9f7f9984c80ab3be1f',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fraw_134',['yyjson_mut_is_raw',['../yyjson_8h.html#a2bbea1da400b473e92b8429027d0f307',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5freal_135',['yyjson_mut_is_real',['../yyjson_8h.html#acfc8545d9b1af8dd8f1488e34fbac351',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fsint_136',['yyjson_mut_is_sint',['../yyjson_8h.html#a907fa46c6ab95e9d7652392507f17e3b',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fstr_137',['yyjson_mut_is_str',['../yyjson_8h.html#ad9f16424bfef46cd479066905f653591',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5ftrue_138',['yyjson_mut_is_true',['../yyjson_8h.html#a5c94af000c170272356f060c76f91559',1,'yyjson.h']]], - ['yyjson_5fmut_5fis_5fuint_139',['yyjson_mut_is_uint',['../yyjson_8h.html#a740d49152b7b9974c65efeab698dfb67',1,'yyjson.h']]], - ['yyjson_5fmut_5fmerge_5fpatch_140',['yyjson_mut_merge_patch',['../yyjson_8h.html#aad64266ebfbdd2a9627050cf1f3f48d7',1,'yyjson.h']]], - ['yyjson_5fmut_5fnull_141',['yyjson_mut_null',['../yyjson_8h.html#a73e0044fd0c511263cbf5cd869976475',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_142',['yyjson_mut_obj',['../yyjson_8h.html#a721dacf0e32ee6c7f18817aca806e9b2',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_143',['yyjson_mut_obj_add',['../yyjson_8h.html#ac0e1bcd9f449e4b1e62d25fb96830a62',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fbool_144',['yyjson_mut_obj_add_bool',['../yyjson_8h.html#abe2f1b0c0b8cb9ceab3cdc35d4574c86',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5ffalse_145',['yyjson_mut_obj_add_false',['../yyjson_8h.html#a52c88fea8622d7bf4e81ecea93dc5df6',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fint_146',['yyjson_mut_obj_add_int',['../yyjson_8h.html#a56726ff7e284700736e26e56afa6cf7b',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fnull_147',['yyjson_mut_obj_add_null',['../yyjson_8h.html#a6efc657d7f9aefdcba51e753fcea02c1',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5freal_148',['yyjson_mut_obj_add_real',['../yyjson_8h.html#aa4b243e9de837405d83bcc3251156cea',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fsint_149',['yyjson_mut_obj_add_sint',['../yyjson_8h.html#a4070a94fca9592eefa2798dd45237d85',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstr_150',['yyjson_mut_obj_add_str',['../yyjson_8h.html#a996f8aa51f4c1475448974cf98f28df3',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstrcpy_151',['yyjson_mut_obj_add_strcpy',['../yyjson_8h.html#abeeca08e3b6994dddd55951a83cd648f',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstrn_152',['yyjson_mut_obj_add_strn',['../yyjson_8h.html#a4530f9fc02f8604cef3de273feb4ab6a',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fstrncpy_153',['yyjson_mut_obj_add_strncpy',['../yyjson_8h.html#a1d544048860a8c53510d560b4d60411a',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5ftrue_154',['yyjson_mut_obj_add_true',['../yyjson_8h.html#a80380f14a448ea046eb718e068c2df6b',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fuint_155',['yyjson_mut_obj_add_uint',['../yyjson_8h.html#a5f48e712fe4988f779a35309779dd765',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fadd_5fval_156',['yyjson_mut_obj_add_val',['../yyjson_8h.html#a210aa96478b0b005b1611fe2f0ecbaa2',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fclear_157',['yyjson_mut_obj_clear',['../yyjson_8h.html#aee5bc7d2ad2169a04f54e63139eddb86',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fget_158',['yyjson_mut_obj_get',['../yyjson_8h.html#a90a824479a3d07f47e9bcce9bbbfcdc0',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fgetn_159',['yyjson_mut_obj_getn',['../yyjson_8h.html#a9f40302607516131c026ca5f13a29946',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5finsert_160',['yyjson_mut_obj_insert',['../yyjson_8h.html#a98e9f97614fce2a6187473eeb35274e8',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fget_161',['yyjson_mut_obj_iter_get',['../yyjson_8h.html#a9e79f1480256c6e2e8dfbf61da9cd853',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fget_5fval_162',['yyjson_mut_obj_iter_get_val',['../yyjson_8h.html#aaa4bef14b71ff145fe8cdc2fa98c7f45',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fgetn_163',['yyjson_mut_obj_iter_getn',['../yyjson_8h.html#a3d3ab359890ab167041732a871ab943d',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fhas_5fnext_164',['yyjson_mut_obj_iter_has_next',['../yyjson_8h.html#aca1345f5057068e556cc6fadda10d04c',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5finit_165',['yyjson_mut_obj_iter_init',['../yyjson_8h.html#ad32e0e0427bda63164f12fe689a6f854',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fnext_166',['yyjson_mut_obj_iter_next',['../yyjson_8h.html#a55f4228c2d65d497ad3cee8abe95c0be',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fiter_5fremove_167',['yyjson_mut_obj_iter_remove',['../yyjson_8h.html#a6e891b4020dd6325d6eacb5e108da3c4',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fput_168',['yyjson_mut_obj_put',['../yyjson_8h.html#acbfde7c1173b4258f83029c6dacf47c3',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_169',['yyjson_mut_obj_remove',['../yyjson_8h.html#a660d533ce8b661e85c5b14e4e99e5085',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fkey_170',['yyjson_mut_obj_remove_key',['../yyjson_8h.html#a13d5da22b245b8242d9c5c6bd6b3582b',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fkeyn_171',['yyjson_mut_obj_remove_keyn',['../yyjson_8h.html#a36b5cade5e5cfecd47e9ae584078e2b4',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fstr_172',['yyjson_mut_obj_remove_str',['../yyjson_8h.html#a630b55e2937f7ffe8c0dcef20497ce93',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fremove_5fstrn_173',['yyjson_mut_obj_remove_strn',['../yyjson_8h.html#ae6dfd237f7997125e606d678b3b59b5c',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5freplace_174',['yyjson_mut_obj_replace',['../yyjson_8h.html#a964840d68d5d27ad2e16c63b4b2475b6',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5frotate_175',['yyjson_mut_obj_rotate',['../yyjson_8h.html#a0f1a9fea8fbc13caf61861dfdb498d46',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fsize_176',['yyjson_mut_obj_size',['../yyjson_8h.html#a601ac20666dd26bfbec016ee4cbb1b92',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fwith_5fkv_177',['yyjson_mut_obj_with_kv',['../yyjson_8h.html#afc2749d9ed694b6d0a4f5c14da19c7d4',1,'yyjson.h']]], - ['yyjson_5fmut_5fobj_5fwith_5fstr_178',['yyjson_mut_obj_with_str',['../yyjson_8h.html#a49cfc79051b729689f4f08592b284cc9',1,'yyjson.h']]], - ['yyjson_5fmut_5fraw_179',['yyjson_mut_raw',['../yyjson_8h.html#a7541eb4eadf59e84f1ef06889789d460',1,'yyjson.h']]], - ['yyjson_5fmut_5frawcpy_180',['yyjson_mut_rawcpy',['../yyjson_8h.html#a35cfc3e94310aaddb9eaf6609c4640d9',1,'yyjson.h']]], - ['yyjson_5fmut_5frawn_181',['yyjson_mut_rawn',['../yyjson_8h.html#a3f69c2e1cdc99ae4f9914435b7a542d7',1,'yyjson.h']]], - ['yyjson_5fmut_5frawncpy_182',['yyjson_mut_rawncpy',['../yyjson_8h.html#a8a9cc40b5f3f93b66ba191449f81fbda',1,'yyjson.h']]], - ['yyjson_5fmut_5freal_183',['yyjson_mut_real',['../yyjson_8h.html#a177181eee333314c7b40e2dc573fcdec',1,'yyjson.h']]], - ['yyjson_5fmut_5fsint_184',['yyjson_mut_sint',['../yyjson_8h.html#acd434c1a97d275f97f743e47e228831a',1,'yyjson.h']]], - ['yyjson_5fmut_5fstr_185',['yyjson_mut_str',['../yyjson_8h.html#ae8d7e4c75adb1b9adb2246165491a4a3',1,'yyjson.h']]], - ['yyjson_5fmut_5fstrcpy_186',['yyjson_mut_strcpy',['../yyjson_8h.html#a95300bcf1cdb52d296e39aa1a4650741',1,'yyjson.h']]], - ['yyjson_5fmut_5fstrn_187',['yyjson_mut_strn',['../yyjson_8h.html#a13c39f37c6936907c266ba9c076dd741',1,'yyjson.h']]], - ['yyjson_5fmut_5fstrncpy_188',['yyjson_mut_strncpy',['../yyjson_8h.html#a1588bdc6f4125e5c6d1daf6b240f6ff8',1,'yyjson.h']]], - ['yyjson_5fmut_5ftrue_189',['yyjson_mut_true',['../yyjson_8h.html#a032637dbdee5a6525420384daa097dff',1,'yyjson.h']]], - ['yyjson_5fmut_5fuint_190',['yyjson_mut_uint',['../yyjson_8h.html#a893a09172b402af1bf520cf7347dfeab',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_5fmut_5fcopy_191',['yyjson_mut_val_mut_copy',['../yyjson_8h.html#a66761be40cfb010086ec798ddb44018f',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_5fwrite_192',['yyjson_mut_val_write',['../yyjson_8h.html#a700da5ce5bf8bb9d3739cc73a0f51cdf',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_5fwrite_5ffile_193',['yyjson_mut_val_write_file',['../yyjson_8h.html#adf8b2d3c8b57e85d58108d58c68b0db5',1,'yyjson.h']]], - ['yyjson_5fmut_5fval_5fwrite_5fopts_194',['yyjson_mut_val_write_opts',['../yyjson_8h.html#abdaf14b79fe803289070c0e5d5a705b8',1,'yyjson.h']]], - ['yyjson_5fmut_5fwrite_195',['yyjson_mut_write',['../yyjson_8h.html#a881e2ee3f487385810829df8bc675f1f',1,'yyjson.h']]], - ['yyjson_5fmut_5fwrite_5ffile_196',['yyjson_mut_write_file',['../yyjson_8h.html#ad2a7aa77fa66a593536e3d7c3edb1d7a',1,'yyjson.h']]], - ['yyjson_5fmut_5fwrite_5fopts_197',['yyjson_mut_write_opts',['../yyjson_8h.html#a7af42d62aa1583986c687c5cd10b010e',1,'yyjson.h']]], - ['yyjson_5fobj_5fget_198',['yyjson_obj_get',['../yyjson_8h.html#a1e8a4dea2e9e9248acde14c664ab702b',1,'yyjson.h']]], - ['yyjson_5fobj_5fgetn_199',['yyjson_obj_getn',['../yyjson_8h.html#a2936ca2492ae8cdcdf0435f5259ff854',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fget_200',['yyjson_obj_iter_get',['../yyjson_8h.html#a1f3b09c4f279287f8af93b3754a41e85',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fget_5fval_201',['yyjson_obj_iter_get_val',['../yyjson_8h.html#a3403b9c25c8b8f2b3027f4e6d97d0ca8',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fgetn_202',['yyjson_obj_iter_getn',['../yyjson_8h.html#a7a45a4b5a1340bb3c2907b7faf3981be',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fhas_5fnext_203',['yyjson_obj_iter_has_next',['../yyjson_8h.html#ab83087bafd1f48910b62bf63200679e1',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5finit_204',['yyjson_obj_iter_init',['../yyjson_8h.html#a2b6a426ece4ffeb9dede1f7a9970140d',1,'yyjson.h']]], - ['yyjson_5fobj_5fiter_5fnext_205',['yyjson_obj_iter_next',['../yyjson_8h.html#a6033befb82b9331d2c19c09799ec5bcf',1,'yyjson.h']]], - ['yyjson_5fobj_5fsize_206',['yyjson_obj_size',['../yyjson_8h.html#aa9789f197f972dc433ea2eb622defd50',1,'yyjson.h']]], - ['yyjson_5fread_207',['yyjson_read',['../yyjson_8h.html#aeab3c2a1d86225e5b181fb1bba7587d4',1,'yyjson.h']]], - ['yyjson_5fread_5ffile_208',['yyjson_read_file',['../yyjson_8h.html#a605ac08b083fb65331d7fa5eb5d32225',1,'yyjson.h']]], - ['yyjson_5fread_5fmax_5fmemory_5fusage_209',['yyjson_read_max_memory_usage',['../yyjson_8h.html#ae511cac592355c2f60f170402b9d8dbf',1,'yyjson.h']]], - ['yyjson_5fread_5fopts_210',['yyjson_read_opts',['../yyjson_8h.html#acf234d21f0cb4b7fc89381ef25e9f0a8',1,'yyjson.h']]], - ['yyjson_5fval_5fmut_5fcopy_211',['yyjson_val_mut_copy',['../yyjson_8h.html#a04ff184b833fe2d6932309821e2b2e5a',1,'yyjson.h']]], - ['yyjson_5fval_5fwrite_212',['yyjson_val_write',['../yyjson_8h.html#a00409eb59aee687f7778d00510b59d38',1,'yyjson.h']]], - ['yyjson_5fval_5fwrite_5ffile_213',['yyjson_val_write_file',['../yyjson_8h.html#a725cc27bd7bd37c1d18c41589abd34db',1,'yyjson.h']]], - ['yyjson_5fval_5fwrite_5fopts_214',['yyjson_val_write_opts',['../yyjson_8h.html#a79720744960c9b4fdabbfb28379bbeb4',1,'yyjson.h']]], - ['yyjson_5fversion_215',['yyjson_version',['../yyjson_8h.html#a874f912f9c023bc353d1a770798017a1',1,'yyjson.h']]], - ['yyjson_5fwrite_216',['yyjson_write',['../yyjson_8h.html#ad231975496ac3788fe5d69804e295443',1,'yyjson.h']]], - ['yyjson_5fwrite_5ffile_217',['yyjson_write_file',['../yyjson_8h.html#a2d82bd0dc78358326b03e28b9acc19e4',1,'yyjson.h']]], - ['yyjson_5fwrite_5fopts_218',['yyjson_write_opts',['../yyjson_8h.html#a43ccc01254525cef16699e72079e3e49',1,'yyjson.h']]] + ['yyjson_5fmut_5fdoc_5fimut_5fcopy_104',['yyjson_mut_doc_imut_copy',['../yyjson_8h.html#a797642b2f815a4f05db03ef87f08cc4f',1,'yyjson.h']]], + ['yyjson_5fmut_5fdoc_5fmut_5fcopy_105',['yyjson_mut_doc_mut_copy',['../yyjson_8h.html#a6ee1dc133fa773528286cd0b25300cb2',1,'yyjson.h']]], + ['yyjson_5fmut_5fdoc_5fnew_106',['yyjson_mut_doc_new',['../yyjson_8h.html#ae27cb375110302ec19f4376d7cab3c5b',1,'yyjson.h']]], + ['yyjson_5fmut_5fdoc_5fset_5froot_107',['yyjson_mut_doc_set_root',['../yyjson_8h.html#a8a9f7ea865526acb97ee4eff8d0bb79f',1,'yyjson.h']]], + ['yyjson_5fmut_5fequals_108',['yyjson_mut_equals',['../yyjson_8h.html#ab0a5c5a568b7f2c0a6301149f0f6aa84',1,'yyjson.h']]], + ['yyjson_5fmut_5fequals_5fstr_109',['yyjson_mut_equals_str',['../yyjson_8h.html#ab2c44c43c9e8ff194799fd59ae688ee2',1,'yyjson.h']]], + ['yyjson_5fmut_5fequals_5fstrn_110',['yyjson_mut_equals_strn',['../yyjson_8h.html#a1887a4e64900348851f22d528950bf7e',1,'yyjson.h']]], + ['yyjson_5fmut_5ffalse_111',['yyjson_mut_false',['../yyjson_8h.html#a184a7d8fa5b929ce01c7181712c34747',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fbool_112',['yyjson_mut_get_bool',['../yyjson_8h.html#a5ae266ef7d5c52eaa2d5afeafab41721',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fint_113',['yyjson_mut_get_int',['../yyjson_8h.html#aad6de220fa487e31bd1bd2c2cccd9bff',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5flen_114',['yyjson_mut_get_len',['../yyjson_8h.html#aec3a6e6812f3ca8fd58c858275443fe0',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fpointer_115',['yyjson_mut_get_pointer',['../yyjson_8h.html#a45722cf492b766514ee7778ca3b3d4cd',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fpointern_116',['yyjson_mut_get_pointern',['../yyjson_8h.html#ad102bbd0cada29540232c3f2aaa53375',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fraw_117',['yyjson_mut_get_raw',['../yyjson_8h.html#a3de6970785ebf0dd000d28c916793388',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5freal_118',['yyjson_mut_get_real',['../yyjson_8h.html#addde26cc012f50aee79a623e6be4614e',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fsint_119',['yyjson_mut_get_sint',['../yyjson_8h.html#af9824de7303491b4e43dd423878ae0a0',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fstr_120',['yyjson_mut_get_str',['../yyjson_8h.html#a896424a210ec4983f0634467ebe85a68',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fsubtype_121',['yyjson_mut_get_subtype',['../yyjson_8h.html#a1a032ed912524326d22331f7dd1366f2',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5ftag_122',['yyjson_mut_get_tag',['../yyjson_8h.html#a64603b1c33c9ebc626665dea61e25abd',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5ftype_123',['yyjson_mut_get_type',['../yyjson_8h.html#a69acff4e2298d6b1a315d5f75a5eaa9d',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5ftype_5fdesc_124',['yyjson_mut_get_type_desc',['../yyjson_8h.html#a0718192e8eb1b46a83116b15ce6e67c7',1,'yyjson.h']]], + ['yyjson_5fmut_5fget_5fuint_125',['yyjson_mut_get_uint',['../yyjson_8h.html#a708869e986c30d3a03026be8ce4c2b37',1,'yyjson.h']]], + ['yyjson_5fmut_5fint_126',['yyjson_mut_int',['../yyjson_8h.html#a92e202b3738250ffee612089bdec91eb',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5farr_127',['yyjson_mut_is_arr',['../yyjson_8h.html#a538974615c719cb8ea2e8ea7705569cf',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fbool_128',['yyjson_mut_is_bool',['../yyjson_8h.html#ad18730f04c429faa79be473de57efd5e',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fctn_129',['yyjson_mut_is_ctn',['../yyjson_8h.html#a25f0e04af88792dd01e0ed8461ffb51b',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5ffalse_130',['yyjson_mut_is_false',['../yyjson_8h.html#aadb5f3196fe14e75914ed34d6e700076',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fint_131',['yyjson_mut_is_int',['../yyjson_8h.html#a7bb8c32c190a8e4ce4f5e9e95623f304',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fnull_132',['yyjson_mut_is_null',['../yyjson_8h.html#a17fda97923bb434d4214c56534586606',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fnum_133',['yyjson_mut_is_num',['../yyjson_8h.html#a4c37c92b9977d86475cda1884c9ae52e',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fobj_134',['yyjson_mut_is_obj',['../yyjson_8h.html#aaafe8a57b5e53c9f7f9984c80ab3be1f',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fraw_135',['yyjson_mut_is_raw',['../yyjson_8h.html#a2bbea1da400b473e92b8429027d0f307',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5freal_136',['yyjson_mut_is_real',['../yyjson_8h.html#acfc8545d9b1af8dd8f1488e34fbac351',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fsint_137',['yyjson_mut_is_sint',['../yyjson_8h.html#a907fa46c6ab95e9d7652392507f17e3b',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fstr_138',['yyjson_mut_is_str',['../yyjson_8h.html#ad9f16424bfef46cd479066905f653591',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5ftrue_139',['yyjson_mut_is_true',['../yyjson_8h.html#a5c94af000c170272356f060c76f91559',1,'yyjson.h']]], + ['yyjson_5fmut_5fis_5fuint_140',['yyjson_mut_is_uint',['../yyjson_8h.html#a740d49152b7b9974c65efeab698dfb67',1,'yyjson.h']]], + ['yyjson_5fmut_5fmerge_5fpatch_141',['yyjson_mut_merge_patch',['../yyjson_8h.html#aad64266ebfbdd2a9627050cf1f3f48d7',1,'yyjson.h']]], + ['yyjson_5fmut_5fnull_142',['yyjson_mut_null',['../yyjson_8h.html#a73e0044fd0c511263cbf5cd869976475',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_143',['yyjson_mut_obj',['../yyjson_8h.html#a721dacf0e32ee6c7f18817aca806e9b2',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_144',['yyjson_mut_obj_add',['../yyjson_8h.html#ac0e1bcd9f449e4b1e62d25fb96830a62',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fbool_145',['yyjson_mut_obj_add_bool',['../yyjson_8h.html#abe2f1b0c0b8cb9ceab3cdc35d4574c86',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5ffalse_146',['yyjson_mut_obj_add_false',['../yyjson_8h.html#a52c88fea8622d7bf4e81ecea93dc5df6',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fint_147',['yyjson_mut_obj_add_int',['../yyjson_8h.html#a56726ff7e284700736e26e56afa6cf7b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fnull_148',['yyjson_mut_obj_add_null',['../yyjson_8h.html#a6efc657d7f9aefdcba51e753fcea02c1',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5freal_149',['yyjson_mut_obj_add_real',['../yyjson_8h.html#aa4b243e9de837405d83bcc3251156cea',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fsint_150',['yyjson_mut_obj_add_sint',['../yyjson_8h.html#a4070a94fca9592eefa2798dd45237d85',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstr_151',['yyjson_mut_obj_add_str',['../yyjson_8h.html#a996f8aa51f4c1475448974cf98f28df3',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstrcpy_152',['yyjson_mut_obj_add_strcpy',['../yyjson_8h.html#abeeca08e3b6994dddd55951a83cd648f',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstrn_153',['yyjson_mut_obj_add_strn',['../yyjson_8h.html#a4530f9fc02f8604cef3de273feb4ab6a',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fstrncpy_154',['yyjson_mut_obj_add_strncpy',['../yyjson_8h.html#a1d544048860a8c53510d560b4d60411a',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5ftrue_155',['yyjson_mut_obj_add_true',['../yyjson_8h.html#a80380f14a448ea046eb718e068c2df6b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fuint_156',['yyjson_mut_obj_add_uint',['../yyjson_8h.html#a5f48e712fe4988f779a35309779dd765',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fadd_5fval_157',['yyjson_mut_obj_add_val',['../yyjson_8h.html#a210aa96478b0b005b1611fe2f0ecbaa2',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fclear_158',['yyjson_mut_obj_clear',['../yyjson_8h.html#aee5bc7d2ad2169a04f54e63139eddb86',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fget_159',['yyjson_mut_obj_get',['../yyjson_8h.html#a90a824479a3d07f47e9bcce9bbbfcdc0',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fgetn_160',['yyjson_mut_obj_getn',['../yyjson_8h.html#a9f40302607516131c026ca5f13a29946',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5finsert_161',['yyjson_mut_obj_insert',['../yyjson_8h.html#a98e9f97614fce2a6187473eeb35274e8',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fget_162',['yyjson_mut_obj_iter_get',['../yyjson_8h.html#a9e79f1480256c6e2e8dfbf61da9cd853',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fget_5fval_163',['yyjson_mut_obj_iter_get_val',['../yyjson_8h.html#aaa4bef14b71ff145fe8cdc2fa98c7f45',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fgetn_164',['yyjson_mut_obj_iter_getn',['../yyjson_8h.html#a3d3ab359890ab167041732a871ab943d',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fhas_5fnext_165',['yyjson_mut_obj_iter_has_next',['../yyjson_8h.html#aca1345f5057068e556cc6fadda10d04c',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5finit_166',['yyjson_mut_obj_iter_init',['../yyjson_8h.html#ad32e0e0427bda63164f12fe689a6f854',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fnext_167',['yyjson_mut_obj_iter_next',['../yyjson_8h.html#a55f4228c2d65d497ad3cee8abe95c0be',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fiter_5fremove_168',['yyjson_mut_obj_iter_remove',['../yyjson_8h.html#a6e891b4020dd6325d6eacb5e108da3c4',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fput_169',['yyjson_mut_obj_put',['../yyjson_8h.html#acbfde7c1173b4258f83029c6dacf47c3',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_170',['yyjson_mut_obj_remove',['../yyjson_8h.html#a660d533ce8b661e85c5b14e4e99e5085',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fkey_171',['yyjson_mut_obj_remove_key',['../yyjson_8h.html#a13d5da22b245b8242d9c5c6bd6b3582b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fkeyn_172',['yyjson_mut_obj_remove_keyn',['../yyjson_8h.html#a36b5cade5e5cfecd47e9ae584078e2b4',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fstr_173',['yyjson_mut_obj_remove_str',['../yyjson_8h.html#a630b55e2937f7ffe8c0dcef20497ce93',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fremove_5fstrn_174',['yyjson_mut_obj_remove_strn',['../yyjson_8h.html#ae6dfd237f7997125e606d678b3b59b5c',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5frename_5fkey_175',['yyjson_mut_obj_rename_key',['../yyjson_8h.html#aea65c64007cfa236faa17e1ac87c4e5e',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5frename_5fkeyn_176',['yyjson_mut_obj_rename_keyn',['../yyjson_8h.html#a335b9fdffa2885eb5eddd1ee2b43016b',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5freplace_177',['yyjson_mut_obj_replace',['../yyjson_8h.html#a964840d68d5d27ad2e16c63b4b2475b6',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5frotate_178',['yyjson_mut_obj_rotate',['../yyjson_8h.html#a0f1a9fea8fbc13caf61861dfdb498d46',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fsize_179',['yyjson_mut_obj_size',['../yyjson_8h.html#a601ac20666dd26bfbec016ee4cbb1b92',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fwith_5fkv_180',['yyjson_mut_obj_with_kv',['../yyjson_8h.html#afc2749d9ed694b6d0a4f5c14da19c7d4',1,'yyjson.h']]], + ['yyjson_5fmut_5fobj_5fwith_5fstr_181',['yyjson_mut_obj_with_str',['../yyjson_8h.html#a49cfc79051b729689f4f08592b284cc9',1,'yyjson.h']]], + ['yyjson_5fmut_5fraw_182',['yyjson_mut_raw',['../yyjson_8h.html#a7541eb4eadf59e84f1ef06889789d460',1,'yyjson.h']]], + ['yyjson_5fmut_5frawcpy_183',['yyjson_mut_rawcpy',['../yyjson_8h.html#a35cfc3e94310aaddb9eaf6609c4640d9',1,'yyjson.h']]], + ['yyjson_5fmut_5frawn_184',['yyjson_mut_rawn',['../yyjson_8h.html#a3f69c2e1cdc99ae4f9914435b7a542d7',1,'yyjson.h']]], + ['yyjson_5fmut_5frawncpy_185',['yyjson_mut_rawncpy',['../yyjson_8h.html#a8a9cc40b5f3f93b66ba191449f81fbda',1,'yyjson.h']]], + ['yyjson_5fmut_5fread_5fnumber_186',['yyjson_mut_read_number',['../yyjson_8h.html#aba2b7153e213808a87ecde3ce00b23e1',1,'yyjson.h']]], + ['yyjson_5fmut_5freal_187',['yyjson_mut_real',['../yyjson_8h.html#a177181eee333314c7b40e2dc573fcdec',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5farr_188',['yyjson_mut_set_arr',['../yyjson_8h.html#af6dac7e5e95ccc12d79c31b96d33940a',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fbool_189',['yyjson_mut_set_bool',['../yyjson_8h.html#a108d97873650fd95453f3c82a0b6a2aa',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fint_190',['yyjson_mut_set_int',['../yyjson_8h.html#a64168360e4ac45070f98c6db92b89cd7',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fnull_191',['yyjson_mut_set_null',['../yyjson_8h.html#a6e0c3b9ff069db64e4aa14da1078b538',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fobj_192',['yyjson_mut_set_obj',['../yyjson_8h.html#a533791670fe27f71bab321d586e11ea2',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fraw_193',['yyjson_mut_set_raw',['../yyjson_8h.html#a510bd8af8c64911827c890bd67245282',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5freal_194',['yyjson_mut_set_real',['../yyjson_8h.html#a0cbd041b4d5a31d6dcc0bd759eae6cf7',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fsint_195',['yyjson_mut_set_sint',['../yyjson_8h.html#ad3c513a8fd61c173c4afa404572e02f6',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fstr_196',['yyjson_mut_set_str',['../yyjson_8h.html#a84e98fae940ff675b2a22076cbd5efc1',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fstrn_197',['yyjson_mut_set_strn',['../yyjson_8h.html#a298c4558e0b349e4f801f210f19ac8b1',1,'yyjson.h']]], + ['yyjson_5fmut_5fset_5fuint_198',['yyjson_mut_set_uint',['../yyjson_8h.html#a84604772b235ec0f651532013f2480a8',1,'yyjson.h']]], + ['yyjson_5fmut_5fsint_199',['yyjson_mut_sint',['../yyjson_8h.html#acd434c1a97d275f97f743e47e228831a',1,'yyjson.h']]], + ['yyjson_5fmut_5fstr_200',['yyjson_mut_str',['../yyjson_8h.html#ae8d7e4c75adb1b9adb2246165491a4a3',1,'yyjson.h']]], + ['yyjson_5fmut_5fstrcpy_201',['yyjson_mut_strcpy',['../yyjson_8h.html#a95300bcf1cdb52d296e39aa1a4650741',1,'yyjson.h']]], + ['yyjson_5fmut_5fstrn_202',['yyjson_mut_strn',['../yyjson_8h.html#a13c39f37c6936907c266ba9c076dd741',1,'yyjson.h']]], + ['yyjson_5fmut_5fstrncpy_203',['yyjson_mut_strncpy',['../yyjson_8h.html#a1588bdc6f4125e5c6d1daf6b240f6ff8',1,'yyjson.h']]], + ['yyjson_5fmut_5ftrue_204',['yyjson_mut_true',['../yyjson_8h.html#a032637dbdee5a6525420384daa097dff',1,'yyjson.h']]], + ['yyjson_5fmut_5fuint_205',['yyjson_mut_uint',['../yyjson_8h.html#a893a09172b402af1bf520cf7347dfeab',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fimut_5fcopy_206',['yyjson_mut_val_imut_copy',['../yyjson_8h.html#a7a142af553e7831989593aee44f74e26',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fmut_5fcopy_207',['yyjson_mut_val_mut_copy',['../yyjson_8h.html#a66761be40cfb010086ec798ddb44018f',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fwrite_208',['yyjson_mut_val_write',['../yyjson_8h.html#a700da5ce5bf8bb9d3739cc73a0f51cdf',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fwrite_5ffile_209',['yyjson_mut_val_write_file',['../yyjson_8h.html#adf8b2d3c8b57e85d58108d58c68b0db5',1,'yyjson.h']]], + ['yyjson_5fmut_5fval_5fwrite_5fopts_210',['yyjson_mut_val_write_opts',['../yyjson_8h.html#abdaf14b79fe803289070c0e5d5a705b8',1,'yyjson.h']]], + ['yyjson_5fmut_5fwrite_211',['yyjson_mut_write',['../yyjson_8h.html#a881e2ee3f487385810829df8bc675f1f',1,'yyjson.h']]], + ['yyjson_5fmut_5fwrite_5ffile_212',['yyjson_mut_write_file',['../yyjson_8h.html#ad2a7aa77fa66a593536e3d7c3edb1d7a',1,'yyjson.h']]], + ['yyjson_5fmut_5fwrite_5fopts_213',['yyjson_mut_write_opts',['../yyjson_8h.html#a7af42d62aa1583986c687c5cd10b010e',1,'yyjson.h']]], + ['yyjson_5fobj_5fget_214',['yyjson_obj_get',['../yyjson_8h.html#a1e8a4dea2e9e9248acde14c664ab702b',1,'yyjson.h']]], + ['yyjson_5fobj_5fgetn_215',['yyjson_obj_getn',['../yyjson_8h.html#a2936ca2492ae8cdcdf0435f5259ff854',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fget_216',['yyjson_obj_iter_get',['../yyjson_8h.html#a1f3b09c4f279287f8af93b3754a41e85',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fget_5fval_217',['yyjson_obj_iter_get_val',['../yyjson_8h.html#a3403b9c25c8b8f2b3027f4e6d97d0ca8',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fgetn_218',['yyjson_obj_iter_getn',['../yyjson_8h.html#a7a45a4b5a1340bb3c2907b7faf3981be',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fhas_5fnext_219',['yyjson_obj_iter_has_next',['../yyjson_8h.html#ab83087bafd1f48910b62bf63200679e1',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5finit_220',['yyjson_obj_iter_init',['../yyjson_8h.html#a2b6a426ece4ffeb9dede1f7a9970140d',1,'yyjson.h']]], + ['yyjson_5fobj_5fiter_5fnext_221',['yyjson_obj_iter_next',['../yyjson_8h.html#a6033befb82b9331d2c19c09799ec5bcf',1,'yyjson.h']]], + ['yyjson_5fobj_5fsize_222',['yyjson_obj_size',['../yyjson_8h.html#aa9789f197f972dc433ea2eb622defd50',1,'yyjson.h']]], + ['yyjson_5fread_223',['yyjson_read',['../yyjson_8h.html#aeab3c2a1d86225e5b181fb1bba7587d4',1,'yyjson.h']]], + ['yyjson_5fread_5ffile_224',['yyjson_read_file',['../yyjson_8h.html#a605ac08b083fb65331d7fa5eb5d32225',1,'yyjson.h']]], + ['yyjson_5fread_5fmax_5fmemory_5fusage_225',['yyjson_read_max_memory_usage',['../yyjson_8h.html#ae511cac592355c2f60f170402b9d8dbf',1,'yyjson.h']]], + ['yyjson_5fread_5fnumber_226',['yyjson_read_number',['../yyjson_8h.html#aec9ae4949a2cb626242ec174fba5aadb',1,'yyjson.h']]], + ['yyjson_5fread_5fopts_227',['yyjson_read_opts',['../yyjson_8h.html#acf234d21f0cb4b7fc89381ef25e9f0a8',1,'yyjson.h']]], + ['yyjson_5fset_5fbool_228',['yyjson_set_bool',['../yyjson_8h.html#ad99ceda574b466f8102699e52564c8da',1,'yyjson.h']]], + ['yyjson_5fset_5fint_229',['yyjson_set_int',['../yyjson_8h.html#af1f4dd90c0bd891cb139e72cfd588789',1,'yyjson.h']]], + ['yyjson_5fset_5fnull_230',['yyjson_set_null',['../yyjson_8h.html#a079fdf2d481492c8533104437dbf2283',1,'yyjson.h']]], + ['yyjson_5fset_5fraw_231',['yyjson_set_raw',['../yyjson_8h.html#a75ee22602fb750b67fda804fb653ef1e',1,'yyjson.h']]], + ['yyjson_5fset_5freal_232',['yyjson_set_real',['../yyjson_8h.html#ac782a838c6378f022434d7ab3a3b333d',1,'yyjson.h']]], + ['yyjson_5fset_5fsint_233',['yyjson_set_sint',['../yyjson_8h.html#ad0f58bd6ac0289fd55d09b02fa3d4743',1,'yyjson.h']]], + ['yyjson_5fset_5fstr_234',['yyjson_set_str',['../yyjson_8h.html#a9a0f4082d2244b7264a819bbc32ebbdf',1,'yyjson.h']]], + ['yyjson_5fset_5fstrn_235',['yyjson_set_strn',['../yyjson_8h.html#a9e49dc52b6209708df0ccf4ddf49b8c4',1,'yyjson.h']]], + ['yyjson_5fset_5fuint_236',['yyjson_set_uint',['../yyjson_8h.html#a90614444c9d6bbd7d8586176986adbc5',1,'yyjson.h']]], + ['yyjson_5fval_5fmut_5fcopy_237',['yyjson_val_mut_copy',['../yyjson_8h.html#a04ff184b833fe2d6932309821e2b2e5a',1,'yyjson.h']]], + ['yyjson_5fval_5fwrite_238',['yyjson_val_write',['../yyjson_8h.html#a00409eb59aee687f7778d00510b59d38',1,'yyjson.h']]], + ['yyjson_5fval_5fwrite_5ffile_239',['yyjson_val_write_file',['../yyjson_8h.html#a725cc27bd7bd37c1d18c41589abd34db',1,'yyjson.h']]], + ['yyjson_5fval_5fwrite_5fopts_240',['yyjson_val_write_opts',['../yyjson_8h.html#a79720744960c9b4fdabbfb28379bbeb4',1,'yyjson.h']]], + ['yyjson_5fversion_241',['yyjson_version',['../yyjson_8h.html#a874f912f9c023bc353d1a770798017a1',1,'yyjson.h']]], + ['yyjson_5fwrite_242',['yyjson_write',['../yyjson_8h.html#ad231975496ac3788fe5d69804e295443',1,'yyjson.h']]], + ['yyjson_5fwrite_5ffile_243',['yyjson_write_file',['../yyjson_8h.html#a2d82bd0dc78358326b03e28b9acc19e4',1,'yyjson.h']]], + ['yyjson_5fwrite_5fopts_244',['yyjson_write_opts',['../yyjson_8h.html#a43ccc01254525cef16699e72079e3e49',1,'yyjson.h']]] ]; diff --git a/doc/doxygen/html/search/pages_1.js b/doc/doxygen/html/search/pages_1.js index fa6977c..3311a50 100644 --- a/doc/doxygen/html/search/pages_1.js +++ b/doc/doxygen/html/search/pages_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['build_20and_20test_0',['Build and Test',['../md_doc__build_and_test.html',1,'']]] + ['building_20and_20testing_0',['Building and testing',['../md_doc__build_and_test.html',1,'']]] ]; diff --git a/doc/doxygen/html/search/variables_e.js b/doc/doxygen/html/search/variables_e.js index c7387c6..7097885 100644 --- a/doc/doxygen/html/search/variables_e.js +++ b/doc/doxygen/html/search/variables_e.js @@ -23,7 +23,7 @@ var searchData= ['yyjson_5fread_5fstop_5fwhen_5fdone_20',['YYJSON_READ_STOP_WHEN_DONE',['../yyjson_8h.html#ad2fb99734b237a7af74924443fe5260e',1,'yyjson.h']]], ['yyjson_5fread_5fsuccess_21',['YYJSON_READ_SUCCESS',['../yyjson_8h.html#a5b8948d47748a81d6a4abf94949e0e88',1,'yyjson.h']]], ['yyjson_5fwrite_5fallow_5finf_5fand_5fnan_22',['YYJSON_WRITE_ALLOW_INF_AND_NAN',['../yyjson_8h.html#a38fa90e4cf75b0a78148de2058c1b3bd',1,'yyjson.h']]], - ['yyjson_5fwrite_5fallow_5finvalid_5funicode_23',['YYJSON_WRITE_ALLOW_INVALID_UNICODE',['../yyjson_8h.html#a57835e7f895e7533006340ad3abe0b80',1,'yyjson.h']]], + ['yyjson_5fwrite_5fallow_5finvalid_5funicode_23',['YYJSON_WRITE_ALLOW_INVALID_UNICODE',['../yyjson_8h.html#ae2709fd5ec704ef7a569d62195e4652d',1,'yyjson.h']]], ['yyjson_5fwrite_5ferror_5ffile_5fopen_24',['YYJSON_WRITE_ERROR_FILE_OPEN',['../yyjson_8h.html#a41cb8e304e08d7455f43c753bfa19b82',1,'yyjson.h']]], ['yyjson_5fwrite_5ferror_5ffile_5fwrite_25',['YYJSON_WRITE_ERROR_FILE_WRITE',['../yyjson_8h.html#a7910a72a728d4f245d43417a42e2e91a',1,'yyjson.h']]], ['yyjson_5fwrite_5ferror_5finvalid_5fparameter_26',['YYJSON_WRITE_ERROR_INVALID_PARAMETER',['../yyjson_8h.html#a7f123c4c3d850fd6c4e46a2b3aad4508',1,'yyjson.h']]], diff --git a/doc/doxygen/html/structyyjson__alc.html b/doc/doxygen/html/structyyjson__alc.html index 72ca0e2..3ee171c 100644 --- a/doc/doxygen/html/structyyjson__alc.html +++ b/doc/doxygen/html/structyyjson__alc.html @@ -35,7 +35,7 @@ diff --git a/doc/doxygen/html/yyjson_8h.html b/doc/doxygen/html/yyjson_8h.html index 155de54..596dea3 100644 --- a/doc/doxygen/html/yyjson_8h.html +++ b/doc/doxygen/html/yyjson_8h.html @@ -35,7 +35,7 @@ @@ -177,13 +177,13 @@ - + - + - + - + @@ -227,6 +227,10 @@ + + + + @@ -317,6 +321,24 @@ + + + + + + + + + + + + + + + + + + @@ -365,6 +387,10 @@ + + + + @@ -423,6 +449,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -633,6 +681,10 @@ + + + + @@ -712,8 +764,8 @@ - - + + @@ -862,7 +914,7 @@

 Build and Test
 Building and testing
 API
 Data Structures
 Changelog
-
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
-
yyjson 0.5.1 +
yyjson 0.6.0
A high performance C JSON library.
 
#define YYJSON_VERSION_MAJOR   0
 
#define YYJSON_VERSION_MINOR   5
#define YYJSON_VERSION_MINOR   6
 
#define YYJSON_VERSION_PATCH   1
#define YYJSON_VERSION_PATCH   0
 
#define YYJSON_VERSION_HEX   0x000501
#define YYJSON_VERSION_HEX   0x000600
 
#define YYJSON_VERSION_STRING   "0.5.1"
#define YYJSON_VERSION_STRING   "0.6.0"
 
#define YYJSON_TYPE_MASK   ((uint8_t)0x07) /* _____111 */
 
 
yyjson_api_inline size_t yyjson_read_max_memory_usage (size_t len, yyjson_read_flag flg)
 
yyjson_api const char * yyjson_read_number (const char *dat, yyjson_val *val, yyjson_read_flag flg, yyjson_read_err *err)
 
yyjson_api_inline const char * yyjson_mut_read_number (const char *dat, yyjson_mut_val *val, yyjson_read_flag flg, yyjson_read_err *err)
 
yyjson_api char * yyjson_write_opts (const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, size_t *len, yyjson_write_err *err)
 
yyjson_api bool yyjson_write_file (const char *path, const yyjson_doc *doc, yyjson_write_flag flg, const yyjson_alc *alc, yyjson_write_err *err)
 
yyjson_api_inline bool yyjson_equals (yyjson_val *lhs, yyjson_val *rhs)
 
yyjson_api_inline bool yyjson_set_raw (yyjson_val *val, const char *raw, size_t len)
 
yyjson_api_inline bool yyjson_set_null (yyjson_val *val)
 
yyjson_api_inline bool yyjson_set_bool (yyjson_val *val, bool num)
 
yyjson_api_inline bool yyjson_set_uint (yyjson_val *val, uint64_t num)
 
yyjson_api_inline bool yyjson_set_sint (yyjson_val *val, int64_t num)
 
yyjson_api_inline bool yyjson_set_int (yyjson_val *val, int num)
 
yyjson_api_inline bool yyjson_set_real (yyjson_val *val, double num)
 
yyjson_api_inline bool yyjson_set_str (yyjson_val *val, const char *str)
 
yyjson_api_inline bool yyjson_set_strn (yyjson_val *val, const char *str, size_t len)
 
yyjson_api_inline size_t yyjson_arr_size (yyjson_val *arr)
 
yyjson_api_inline yyjson_valyyjson_arr_get (yyjson_val *arr, size_t idx)
 
yyjson_api yyjson_mut_valyyjson_mut_val_mut_copy (yyjson_mut_doc *doc, yyjson_mut_val *val)
 
yyjson_api yyjson_docyyjson_mut_doc_imut_copy (yyjson_mut_doc *doc, const yyjson_alc *alc)
 
yyjson_api yyjson_docyyjson_mut_val_imut_copy (yyjson_mut_val *val, const yyjson_alc *alc)
 
yyjson_api_inline bool yyjson_mut_is_raw (yyjson_mut_val *val)
 
yyjson_api_inline bool yyjson_mut_is_null (yyjson_mut_val *val)
 
yyjson_api_inline bool yyjson_mut_equals (yyjson_mut_val *lhs, yyjson_mut_val *rhs)
 
yyjson_api_inline bool yyjson_mut_set_raw (yyjson_mut_val *val, const char *raw, size_t len)
 
yyjson_api_inline bool yyjson_mut_set_null (yyjson_mut_val *val)
 
yyjson_api_inline bool yyjson_mut_set_bool (yyjson_mut_val *val, bool num)
 
yyjson_api_inline bool yyjson_mut_set_uint (yyjson_mut_val *val, uint64_t num)
 
yyjson_api_inline bool yyjson_mut_set_sint (yyjson_mut_val *val, int64_t num)
 
yyjson_api_inline bool yyjson_mut_set_int (yyjson_mut_val *val, int num)
 
yyjson_api_inline bool yyjson_mut_set_real (yyjson_mut_val *val, double num)
 
yyjson_api_inline bool yyjson_mut_set_str (yyjson_mut_val *val, const char *str)
 
yyjson_api_inline bool yyjson_mut_set_strn (yyjson_mut_val *val, const char *str, size_t len)
 
yyjson_api_inline bool yyjson_mut_set_arr (yyjson_mut_val *val)
 
yyjson_api_inline bool yyjson_mut_set_obj (yyjson_mut_val *val)
 
yyjson_api_inline yyjson_mut_valyyjson_mut_raw (yyjson_mut_doc *doc, const char *str)
 
yyjson_api_inline yyjson_mut_valyyjson_mut_rawn (yyjson_mut_doc *doc, const char *str, size_t len)
 
yyjson_api_inline yyjson_mut_valyyjson_mut_obj_remove_strn (yyjson_mut_val *obj, const char *key, size_t len)
 
yyjson_api_inline bool yyjson_mut_obj_rename_key (yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, const char *new_key)
 
yyjson_api_inline bool yyjson_mut_obj_rename_keyn (yyjson_mut_doc *doc, yyjson_mut_val *obj, const char *key, size_t len, const char *new_key, size_t new_len)
 
yyjson_api_inline yyjson_valyyjson_get_pointer (yyjson_val *val, const char *ptr)
 
yyjson_api_inline yyjson_valyyjson_get_pointern (yyjson_val *val, const char *ptr, size_t len)
 
static const yyjson_write_flag YYJSON_WRITE_INF_AND_NAN_AS_NULL = 1 << 4
 
static const yyjson_read_flag YYJSON_WRITE_ALLOW_INVALID_UNICODE = 1 << 5
 
static const yyjson_write_flag YYJSON_WRITE_ALLOW_INVALID_UNICODE = 1 << 5
 
static const yyjson_write_code YYJSON_WRITE_SUCCESS = 0
 
static const yyjson_write_code YYJSON_WRITE_ERROR_INVALID_PARAMETER = 1
-

An immutable document for reading JSON. This document holds memory for all its JSON values and strings. When it is no longer used, the user should call yyjson_doc_free() to free its memory.

+

An immutable document for reading JSON. This document holds memory for all its JSON values and strings. When it is no longer used, the user should call yyjson_doc_free() to free its memory.

Data Fields
@@ -922,10 +974,10 @@

your_func(val);
}
-
yyjson_api_inline bool yyjson_arr_iter_init(yyjson_val *arr, yyjson_arr_iter *iter)
Definition: yyjson.h:3679
-
yyjson_api_inline yyjson_val * yyjson_arr_iter_next(yyjson_arr_iter *iter)
Definition: yyjson.h:3695
-
Definition: yyjson.h:3673
-
Definition: yyjson.h:3269
+
yyjson_api_inline bool yyjson_arr_iter_init(yyjson_val *arr, yyjson_arr_iter *iter)
Definition: yyjson.h:4012
+
yyjson_api_inline yyjson_val * yyjson_arr_iter_next(yyjson_arr_iter *iter)
Definition: yyjson.h:4028
+
Definition: yyjson.h:4006
+
Definition: yyjson.h:3473
@@ -973,11 +1025,11 @@

your_func(key, val);
}
-
yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, yyjson_obj_iter *iter)
Definition: yyjson.h:3752
-
yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val(yyjson_val *key)
Definition: yyjson.h:3779
-
yyjson_api_inline yyjson_val * yyjson_obj_iter_next(yyjson_obj_iter *iter)
Definition: yyjson.h:3769
-
yyjson_val * obj
Definition: yyjson.h:3749
-
Definition: yyjson.h:3745
+
yyjson_api_inline bool yyjson_obj_iter_init(yyjson_val *obj, yyjson_obj_iter *iter)
Definition: yyjson.h:4085
+
yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val(yyjson_val *key)
Definition: yyjson.h:4112
+
yyjson_api_inline yyjson_val * yyjson_obj_iter_next(yyjson_obj_iter *iter)
Definition: yyjson.h:4102
+
yyjson_val * obj
Definition: yyjson.h:4082
+
Definition: yyjson.h:4078

If the ordering of the keys is known at compile-time, you can use this method to speed up value lookups:

// {"k1":1, "k2": 3, "k3": 3}
yyjson_val *key, *val;
@@ -985,7 +1037,7 @@

yyjson_val *v1 = yyjson_obj_iter_get(&iter, "k1");
yyjson_val *v3 = yyjson_obj_iter_get(&iter, "k3");
-
yyjson_api_inline yyjson_val * yyjson_obj_iter_get(yyjson_obj_iter *iter, const char *key)
Definition: yyjson.h:3783
+
yyjson_api_inline yyjson_val * yyjson_obj_iter_get(yyjson_obj_iter *iter, const char *key)
Definition: yyjson.h:4116

See also
yyjson_obj_iter_get() and yyjson_obj_iter_getn()

Data Fields
@@ -1132,7 +1184,7 @@

&

Data Fields
-

A mutable document for building JSON. This document holds memory for all its JSON values and strings. When it is no longer used, the user should call yyjson_mut_doc_free() to free its memory.

+

A mutable document for building JSON. This document holds memory for all its JSON values and strings. When it is no longer used, the user should call yyjson_mut_doc_free() to free its memory.

Data Fields
@@ -1179,7 +1231,7 @@

A mutable JSON array iterator.

-
Warning
You should not modify the array while iterating over it, but you can use yyjson_mut_arr_iter_remove() to remove current value.
+
Warning
You should not modify the array while iterating over it, but you can use yyjson_mut_arr_iter_remove() to remove current value.
Example
}
}
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_remove(yyjson_mut_arr_iter *iter)
Definition: yyjson.h:4331
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_next(yyjson_mut_arr_iter *iter)
Definition: yyjson.h:4319
-
yyjson_mut_val * arr
Definition: yyjson.h:4298
-
yyjson_api_inline bool yyjson_mut_arr_iter_init(yyjson_mut_val *arr, yyjson_mut_arr_iter *iter)
Definition: yyjson.h:4301
-
Definition: yyjson.h:4293
-
Definition: yyjson.h:3829
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_remove(yyjson_mut_arr_iter *iter)
Definition: yyjson.h:4735
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_iter_next(yyjson_mut_arr_iter *iter)
Definition: yyjson.h:4723
+
yyjson_mut_val * arr
Definition: yyjson.h:4702
+
yyjson_api_inline bool yyjson_mut_arr_iter_init(yyjson_mut_val *arr, yyjson_mut_arr_iter *iter)
Definition: yyjson.h:4705
+
Definition: yyjson.h:4697
+
Definition: yyjson.h:4162
@@ -1249,7 +1301,7 @@

A mutable JSON object iterator.

-
Warning
You should not modify the object while iterating over it, but you can use yyjson_mut_obj_iter_remove() to remove current value.
+
Warning
You should not modify the object while iterating over it, but you can use yyjson_mut_obj_iter_remove() to remove current value.
Example
yyjson_mut_val *key, *val;
@@ -1260,12 +1312,12 @@

yyjson_mut_obj_iter_remove(&iter);

}
}
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_next(yyjson_mut_obj_iter *iter)
Definition: yyjson.h:4959
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_remove(yyjson_mut_obj_iter *iter)
Definition: yyjson.h:4976
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get_val(yyjson_mut_val *key)
Definition: yyjson.h:4971
-
yyjson_mut_val * obj
Definition: yyjson.h:4938
-
yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, yyjson_mut_obj_iter *iter)
Definition: yyjson.h:4941
-
Definition: yyjson.h:4933
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_next(yyjson_mut_obj_iter *iter)
Definition: yyjson.h:5363
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_remove(yyjson_mut_obj_iter *iter)
Definition: yyjson.h:5380
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get_val(yyjson_mut_val *key)
Definition: yyjson.h:5375
+
yyjson_mut_val * obj
Definition: yyjson.h:5342
+
yyjson_api_inline bool yyjson_mut_obj_iter_init(yyjson_mut_val *obj, yyjson_mut_obj_iter *iter)
Definition: yyjson.h:5345
+
Definition: yyjson.h:5337

If the ordering of the keys is known at compile-time, you can use this method to speed up value lookups:

// {"k1":1, "k2": 3, "k3": 3}
yyjson_mut_val *key, *val;
@@ -1273,8 +1325,8 @@

yyjson_mut_obj_iter_init(obj, &iter);

-
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get(yyjson_mut_obj_iter *iter, const char *key)
Definition: yyjson.h:4993
-
See also
yyjson_mut_obj_iter_get() and yyjson_mut_obj_iter_getn()
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_iter_get(yyjson_mut_obj_iter *iter, const char *key)
Definition: yyjson.h:5397
+
See also
yyjson_mut_obj_iter_get() and yyjson_mut_obj_iter_getn()

Data Fields
diff --git a/doc/doxygen/html/yyjson_8h.js b/doc/doxygen/html/yyjson_8h.js index 4b74afa..1b0fd56 100644 --- a/doc/doxygen/html/yyjson_8h.js +++ b/doc/doxygen/html/yyjson_8h.js @@ -198,6 +198,7 @@ var yyjson_8h = [ "yyjson_mut_doc_get_pointer", "yyjson_8h.html#a4ff4915acd7a289001592a762b4b40e5", null ], [ "yyjson_mut_doc_get_pointern", "yyjson_8h.html#a50bfce709c7853491172fe4198d43863", null ], [ "yyjson_mut_doc_get_root", "yyjson_8h.html#aa33ac310f363ace5f4dda3697b2c0123", null ], + [ "yyjson_mut_doc_imut_copy", "yyjson_8h.html#a797642b2f815a4f05db03ef87f08cc4f", null ], [ "yyjson_mut_doc_mut_copy", "yyjson_8h.html#a6ee1dc133fa773528286cd0b25300cb2", null ], [ "yyjson_mut_doc_new", "yyjson_8h.html#ae27cb375110302ec19f4376d7cab3c5b", null ], [ "yyjson_mut_doc_set_root", "yyjson_8h.html#a8a9f7ea865526acb97ee4eff8d0bb79f", null ], @@ -268,6 +269,8 @@ var yyjson_8h = [ "yyjson_mut_obj_remove_keyn", "yyjson_8h.html#a36b5cade5e5cfecd47e9ae584078e2b4", null ], [ "yyjson_mut_obj_remove_str", "yyjson_8h.html#a630b55e2937f7ffe8c0dcef20497ce93", null ], [ "yyjson_mut_obj_remove_strn", "yyjson_8h.html#ae6dfd237f7997125e606d678b3b59b5c", null ], + [ "yyjson_mut_obj_rename_key", "yyjson_8h.html#aea65c64007cfa236faa17e1ac87c4e5e", null ], + [ "yyjson_mut_obj_rename_keyn", "yyjson_8h.html#a335b9fdffa2885eb5eddd1ee2b43016b", null ], [ "yyjson_mut_obj_replace", "yyjson_8h.html#a964840d68d5d27ad2e16c63b4b2475b6", null ], [ "yyjson_mut_obj_rotate", "yyjson_8h.html#a0f1a9fea8fbc13caf61861dfdb498d46", null ], [ "yyjson_mut_obj_size", "yyjson_8h.html#a601ac20666dd26bfbec016ee4cbb1b92", null ], @@ -277,7 +280,19 @@ var yyjson_8h = [ "yyjson_mut_rawcpy", "yyjson_8h.html#a35cfc3e94310aaddb9eaf6609c4640d9", null ], [ "yyjson_mut_rawn", "yyjson_8h.html#a3f69c2e1cdc99ae4f9914435b7a542d7", null ], [ "yyjson_mut_rawncpy", "yyjson_8h.html#a8a9cc40b5f3f93b66ba191449f81fbda", null ], + [ "yyjson_mut_read_number", "yyjson_8h.html#aba2b7153e213808a87ecde3ce00b23e1", null ], [ "yyjson_mut_real", "yyjson_8h.html#a177181eee333314c7b40e2dc573fcdec", null ], + [ "yyjson_mut_set_arr", "yyjson_8h.html#af6dac7e5e95ccc12d79c31b96d33940a", null ], + [ "yyjson_mut_set_bool", "yyjson_8h.html#a108d97873650fd95453f3c82a0b6a2aa", null ], + [ "yyjson_mut_set_int", "yyjson_8h.html#a64168360e4ac45070f98c6db92b89cd7", null ], + [ "yyjson_mut_set_null", "yyjson_8h.html#a6e0c3b9ff069db64e4aa14da1078b538", null ], + [ "yyjson_mut_set_obj", "yyjson_8h.html#a533791670fe27f71bab321d586e11ea2", null ], + [ "yyjson_mut_set_raw", "yyjson_8h.html#a510bd8af8c64911827c890bd67245282", null ], + [ "yyjson_mut_set_real", "yyjson_8h.html#a0cbd041b4d5a31d6dcc0bd759eae6cf7", null ], + [ "yyjson_mut_set_sint", "yyjson_8h.html#ad3c513a8fd61c173c4afa404572e02f6", null ], + [ "yyjson_mut_set_str", "yyjson_8h.html#a84e98fae940ff675b2a22076cbd5efc1", null ], + [ "yyjson_mut_set_strn", "yyjson_8h.html#a298c4558e0b349e4f801f210f19ac8b1", null ], + [ "yyjson_mut_set_uint", "yyjson_8h.html#a84604772b235ec0f651532013f2480a8", null ], [ "yyjson_mut_sint", "yyjson_8h.html#acd434c1a97d275f97f743e47e228831a", null ], [ "yyjson_mut_str", "yyjson_8h.html#ae8d7e4c75adb1b9adb2246165491a4a3", null ], [ "yyjson_mut_strcpy", "yyjson_8h.html#a95300bcf1cdb52d296e39aa1a4650741", null ], @@ -285,6 +300,7 @@ var yyjson_8h = [ "yyjson_mut_strncpy", "yyjson_8h.html#a1588bdc6f4125e5c6d1daf6b240f6ff8", null ], [ "yyjson_mut_true", "yyjson_8h.html#a032637dbdee5a6525420384daa097dff", null ], [ "yyjson_mut_uint", "yyjson_8h.html#a893a09172b402af1bf520cf7347dfeab", null ], + [ "yyjson_mut_val_imut_copy", "yyjson_8h.html#a7a142af553e7831989593aee44f74e26", null ], [ "yyjson_mut_val_mut_copy", "yyjson_8h.html#a66761be40cfb010086ec798ddb44018f", null ], [ "yyjson_mut_val_write", "yyjson_8h.html#a700da5ce5bf8bb9d3739cc73a0f51cdf", null ], [ "yyjson_mut_val_write_file", "yyjson_8h.html#adf8b2d3c8b57e85d58108d58c68b0db5", null ], @@ -304,7 +320,17 @@ var yyjson_8h = [ "yyjson_read", "yyjson_8h.html#aeab3c2a1d86225e5b181fb1bba7587d4", null ], [ "yyjson_read_file", "yyjson_8h.html#a605ac08b083fb65331d7fa5eb5d32225", null ], [ "yyjson_read_max_memory_usage", "yyjson_8h.html#ae511cac592355c2f60f170402b9d8dbf", null ], + [ "yyjson_read_number", "yyjson_8h.html#aec9ae4949a2cb626242ec174fba5aadb", null ], [ "yyjson_read_opts", "yyjson_8h.html#acf234d21f0cb4b7fc89381ef25e9f0a8", null ], + [ "yyjson_set_bool", "yyjson_8h.html#ad99ceda574b466f8102699e52564c8da", null ], + [ "yyjson_set_int", "yyjson_8h.html#af1f4dd90c0bd891cb139e72cfd588789", null ], + [ "yyjson_set_null", "yyjson_8h.html#a079fdf2d481492c8533104437dbf2283", null ], + [ "yyjson_set_raw", "yyjson_8h.html#a75ee22602fb750b67fda804fb653ef1e", null ], + [ "yyjson_set_real", "yyjson_8h.html#ac782a838c6378f022434d7ab3a3b333d", null ], + [ "yyjson_set_sint", "yyjson_8h.html#ad0f58bd6ac0289fd55d09b02fa3d4743", null ], + [ "yyjson_set_str", "yyjson_8h.html#a9a0f4082d2244b7264a819bbc32ebbdf", null ], + [ "yyjson_set_strn", "yyjson_8h.html#a9e49dc52b6209708df0ccf4ddf49b8c4", null ], + [ "yyjson_set_uint", "yyjson_8h.html#a90614444c9d6bbd7d8586176986adbc5", null ], [ "yyjson_val_mut_copy", "yyjson_8h.html#a04ff184b833fe2d6932309821e2b2e5a", null ], [ "yyjson_val_write", "yyjson_8h.html#a00409eb59aee687f7778d00510b59d38", null ], [ "yyjson_val_write_file", "yyjson_8h.html#a725cc27bd7bd37c1d18c41589abd34db", null ], @@ -336,7 +362,7 @@ var yyjson_8h = [ "YYJSON_READ_STOP_WHEN_DONE", "yyjson_8h.html#ad2fb99734b237a7af74924443fe5260e", null ], [ "YYJSON_READ_SUCCESS", "yyjson_8h.html#a5b8948d47748a81d6a4abf94949e0e88", null ], [ "YYJSON_WRITE_ALLOW_INF_AND_NAN", "yyjson_8h.html#a38fa90e4cf75b0a78148de2058c1b3bd", null ], - [ "YYJSON_WRITE_ALLOW_INVALID_UNICODE", "yyjson_8h.html#a57835e7f895e7533006340ad3abe0b80", null ], + [ "YYJSON_WRITE_ALLOW_INVALID_UNICODE", "yyjson_8h.html#ae2709fd5ec704ef7a569d62195e4652d", null ], [ "YYJSON_WRITE_ERROR_FILE_OPEN", "yyjson_8h.html#a41cb8e304e08d7455f43c753bfa19b82", null ], [ "YYJSON_WRITE_ERROR_FILE_WRITE", "yyjson_8h.html#a7910a72a728d4f245d43417a42e2e91a", null ], [ "YYJSON_WRITE_ERROR_INVALID_PARAMETER", "yyjson_8h.html#a7f123c4c3d850fd6c4e46a2b3aad4508", null ], diff --git a/src/yyjson.h b/src/yyjson.h index 641b51d..f2122b9 100644 --- a/src/yyjson.h +++ b/src/yyjson.h @@ -409,16 +409,16 @@ extern "C" { #define YYJSON_VERSION_MAJOR 0 /** The minor version of yyjson. */ -#define YYJSON_VERSION_MINOR 5 +#define YYJSON_VERSION_MINOR 6 /** The patch version of yyjson. */ -#define YYJSON_VERSION_PATCH 1 +#define YYJSON_VERSION_PATCH 0 /** The version of yyjson in hex: `(major << 16) | (minor << 8) | (patch)`. */ -#define YYJSON_VERSION_HEX 0x000501 +#define YYJSON_VERSION_HEX 0x000600 /** The version string of yyjson. */ -#define YYJSON_VERSION_STRING "0.5.1" +#define YYJSON_VERSION_STRING "0.6.0" /** The version of yyjson in hex, same as `YYJSON_VERSION_HEX`. */ yyjson_api uint32_t yyjson_version(void);
Data Fields
@@ -1424,15 +1476,15 @@

(idx) < (max); \
(idx)++, \
(val) = unsafe_yyjson_get_next(val))
-
yyjson_api_inline size_t yyjson_arr_size(yyjson_val *arr)
Definition: yyjson.h:3623
-
yyjson_api_inline yyjson_val * yyjson_arr_get_first(yyjson_val *arr)
Definition: yyjson.h:3642
+
yyjson_api_inline size_t yyjson_arr_size(yyjson_val *arr)
Definition: yyjson.h:3956
+
yyjson_api_inline yyjson_val * yyjson_arr_get_first(yyjson_val *arr)
Definition: yyjson.h:3975

Macro for iterating over an array. It works like iterator, but with a more intuitive API.

Example
size_t idx, max;
yyjson_arr_foreach(arr, idx, max, val) {
your_func(idx, val);
}
-
#define yyjson_arr_foreach(arr, idx, max, val)
Definition: yyjson.h:1440
+
#define yyjson_arr_foreach(arr, idx, max, val)
Definition: yyjson.h:1537
@@ -1616,8 +1668,8 @@

(idx) < (max); \
(idx)++, \
(val) = (val)->next)
-
yyjson_api_inline size_t yyjson_mut_arr_size(yyjson_mut_val *arr)
Definition: yyjson.h:4257
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_get_first(yyjson_mut_val *arr)
Definition: yyjson.h:4271
+
yyjson_api_inline size_t yyjson_mut_arr_size(yyjson_mut_val *arr)
Definition: yyjson.h:4661
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_get_first(yyjson_mut_val *arr)
Definition: yyjson.h:4675

Macro for iterating over an array. It works like iterator, but with a more intuitive API.

Warning
You should not modify the array while iterating over it.
Example
size_t idx, max;
@@ -1625,7 +1677,7 @@

yyjson_mut_arr_foreach(arr, idx, max, val) {

your_func(idx, val);
}
-
#define yyjson_mut_arr_foreach(arr, idx, max, val)
Definition: yyjson.h:1989
+
#define yyjson_mut_arr_foreach(arr, idx, max, val)
Definition: yyjson.h:2164
@@ -1681,7 +1733,7 @@

(idx)++, \
(key) = (val)->next, \
(val) = (key)->next)
-
yyjson_api_inline size_t yyjson_mut_obj_size(yyjson_mut_val *obj)
Definition: yyjson.h:4900
+
yyjson_api_inline size_t yyjson_mut_obj_size(yyjson_mut_val *obj)
Definition: yyjson.h:5304

Macro for iterating over an object. It works like iterator, but with a more intuitive API.

Warning
You should not modify the object while iterating over it.
Example
size_t idx, max;
@@ -1689,7 +1741,7 @@

yyjson_obj_foreach(obj, idx, max, key, val) {

your_func(key, val);
}
-
#define yyjson_obj_foreach(obj, idx, max, key, val)
Definition: yyjson.h:1597
+
#define yyjson_obj_foreach(obj, idx, max, key, val)
Definition: yyjson.h:1694
@@ -1760,7 +1812,7 @@

(idx)++, \
(key) = unsafe_yyjson_get_next(val), \
(val) = (key) + 1)
-
yyjson_api_inline size_t yyjson_obj_size(yyjson_val *obj)
Definition: yyjson.h:3712
+
yyjson_api_inline size_t yyjson_obj_size(yyjson_val *obj)
Definition: yyjson.h:4045

Macro for iterating over an object. It works like iterator, but with a more intuitive API.

Example
size_t idx, max;
yyjson_val *key, *val;
@@ -1812,7 +1864,7 @@

-

Mask and bits of JSON value.

+

Mask and bits of JSON value tag.

@@ -1842,11 +1894,11 @@

- +
#define YYJSON_VERSION_HEX   0x000501#define YYJSON_VERSION_HEX   0x000600
-

The version of yyjson in hex: (major << 16) | (minor << 8) | (patch).

+

The version of yyjson in hex: (major << 16) | (minor << 8) | (patch).

@@ -1872,7 +1924,7 @@

- +
#define YYJSON_VERSION_MINOR   5#define YYJSON_VERSION_MINOR   6
@@ -2034,11 +2086,11 @@

A pool allocator uses fixed length pre-allocated memory.

-

This allocator may used to avoid malloc()/memmove() calls. The pre-allocated memory should be held by the caller. The upper limit of memory required to read JSON can be calculated using the yyjson_read_max_memory_usage() function, but the memory required to write JSON cannot be calculated directly.

+

This allocator may used to avoid malloc/realloc calls. The pre-allocated memory should be held by the caller. The maximum amount of memory required to read a JSON can be calculated using the yyjson_read_max_memory_usage() function, but the amount of memory required to write a JSON cannot be directly calculated.

This is not a general-purpose allocator, and should only be used to read or write single JSON document.

Parameters
- +
alcThe allocator to be initialized. If this parameter is NULL, the function will fail and return false. If buf or size is invalid, this parameter is left unmodified.
alcThe allocator to be initialized. If this parameter is NULL, the function will fail and return false. If buf or size is invalid, this will be set to an empty allocator.
bufThe buffer memory for this allocator. If this parameter is NULL, the function will fail and return false.
sizeThe size of buf, in bytes. If this parameter is less than 8 words (32/64 bytes on 32/64-bit OS), the function will fail and return false.
@@ -2053,10 +2105,10 @@

const char *json = "{\"name\":\"Helvetica\",\"size\":16}"

yyjson_doc *doc = yyjson_read_opts(json, strlen(json), 0, &alc, NULL);
// the memory of `doc` is on the stack
-
Definition: yyjson.h:474
+
Definition: yyjson.h:477
yyjson_api bool yyjson_alc_pool_init(yyjson_alc *alc, void *buf, size_t size)
yyjson_api yyjson_doc * yyjson_read_opts(char *dat, size_t len, yyjson_read_flag flg, const yyjson_alc *alc, yyjson_read_err *err)
-
Definition: yyjson.h:3274
+
Definition: yyjson.h:3478

@@ -2086,7 +2138,7 @@

-

Returns the element at the specified position in this array. Returns NULL if array is NULL/empty or the index is out of bounds.

Warning
This function takes a linear search time if array is not flat. For example: [1,{},3] is flat, [1,[2],3] is not flat.
+

Returns the element at the specified position in this array. Returns NULL if array is NULL/empty or the index is out of bounds.

Warning
This function takes a linear search time if array is not flat. For example: [1,{},3] is flat, [1,[2],3] is not flat.
@@ -2124,7 +2176,7 @@

-

Returns the last element of this array. Returns NULL if arr is NULL/empty or type is not array.

Warning
This function takes a linear search time if array is not flat. For example: [1,{},3] is flat, [1,[2],3] is not flat.
+

Returns the last element of this array. Returns NULL if arr is NULL/empty or type is not array.

Warning
This function takes a linear search time if array is not flat. For example: [1,{},3] is flat, [1,[2],3] is not flat.
@@ -2323,7 +2375,7 @@

-

Returns read size of input JSON data. Returns 0 if doc is NULL. For example: the read size of "[1,2,3]" is 7 bytes.
+

Returns read size of input JSON data. Returns 0 if doc is NULL. For example: the read size of [1,2,3] is 7 bytes.

@@ -2362,7 +2414,7 @@

-

Returns total value count in this JSON document. Returns 0 if doc is NULL. For example: the value count of "[1,2,3]" is 4.

+

Returns total value count in this JSON document. Returns 0 if doc is NULL. For example: the value count of [1,2,3] is 4.

@@ -2391,7 +2443,7 @@

-

Copies and returns a new mutable document from input, returns NULL on error. This makes a deep-copy on the immutable document. If allocator is NULL, the default allocator will be used.

+

Copies and returns a new mutable document from input, returns NULL on error. This makes a deep-copy on the immutable document. If allocator is NULL, the default allocator will be used.

Note
imut_doc -> mut_doc.
@@ -4231,7 +4283,7 @@

-

Rotates values in this array for the given number of times. For example: [1,2,3,4,5] rotate 2 is [3,4,5,1,2].

Parameters
+

Rotates values in this array for the given number of times. For example: [1,2,3,4,5] rotate 2 is [3,4,5,1,2].

Parameters
@@ -4304,7 +4356,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const bool vals[3] = { true, false, true };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_bool(yyjson_mut_doc *doc, const bool *vals, size_t count)
Definition: yyjson.h:4386
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_bool(yyjson_mut_doc *doc, const bool *vals, size_t count)
Definition: yyjson.h:4790
@@ -4352,7 +4404,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const double vals[3] = { -1.0, 0.0, 1.0 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_double(yyjson_mut_doc *doc, const double *vals, size_t count)
Definition: yyjson.h:4480
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_double(yyjson_mut_doc *doc, const double *vals, size_t count)
Definition: yyjson.h:4884
@@ -4400,7 +4452,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const float vals[3] = { -1.0f, 0.0f, 1.0f };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_float(yyjson_mut_doc *doc, const float *vals, size_t count)
Definition: yyjson.h:4472
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_float(yyjson_mut_doc *doc, const float *vals, size_t count)
Definition: yyjson.h:4876
@@ -4448,7 +4500,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const double vals[3] = { 0.1, 0.2, 0.3 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_real(yyjson_mut_doc *doc, const double *vals, size_t count)
Definition: yyjson.h:4403
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_real(yyjson_mut_doc *doc, const double *vals, size_t count)
Definition: yyjson.h:4807
@@ -4496,7 +4548,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const int64_t vals[3] = { -1, 0, 1 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint64(yyjson_mut_doc *doc, const int64_t *vals, size_t count)
Definition: yyjson.h:4432
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint64(yyjson_mut_doc *doc, const int64_t *vals, size_t count)
Definition: yyjson.h:4836
@@ -4544,7 +4596,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const int16_t vals[3] = { -1, 0, 1 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint16(yyjson_mut_doc *doc, const int16_t *vals, size_t count)
Definition: yyjson.h:4416
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint16(yyjson_mut_doc *doc, const int16_t *vals, size_t count)
Definition: yyjson.h:4820
@@ -4592,7 +4644,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const int32_t vals[3] = { -1, 0, 1 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint32(yyjson_mut_doc *doc, const int32_t *vals, size_t count)
Definition: yyjson.h:4424
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint32(yyjson_mut_doc *doc, const int32_t *vals, size_t count)
Definition: yyjson.h:4828
@@ -4687,7 +4739,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const int8_t vals[3] = { -1, 0, 1 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint8(yyjson_mut_doc *doc, const int8_t *vals, size_t count)
Definition: yyjson.h:4408
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_sint8(yyjson_mut_doc *doc, const int8_t *vals, size_t count)
Definition: yyjson.h:4812
@@ -4733,10 +4785,10 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
-
Warning
The input strings are not copied, you should keep these strings unmodified for the lifetime of this JSON document. If these strings will be modified, you should use yyjson_mut_arr_with_strcpy() instead.
+
Warning
The input strings are not copied, you should keep these strings unmodified for the lifetime of this JSON document. If these strings will be modified, you should use yyjson_mut_arr_with_strcpy() instead.
Example
const char *vals[3] = { "a", "b", "c" };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_str(yyjson_mut_doc *doc, const char **vals, size_t count)
Definition: yyjson.h:4488
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_str(yyjson_mut_doc *doc, const char **vals, size_t count)
Definition: yyjson.h:4892
@@ -4784,7 +4836,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const char *vals[3] = { "a", "b", "c" };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strcpy(yyjson_mut_doc *doc, const char **vals, size_t count)
Definition: yyjson.h:4508
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strcpy(yyjson_mut_doc *doc, const char **vals, size_t count)
Definition: yyjson.h:4912
@@ -4837,11 +4889,11 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
-
Warning
The input strings are not copied, you should keep these strings unmodified for the lifetime of this JSON document. If these strings will be modified, you should use yyjson_mut_arr_with_strncpy() instead.
+
Warning
The input strings are not copied, you should keep these strings unmodified for the lifetime of this JSON document. If these strings will be modified, you should use yyjson_mut_arr_with_strncpy() instead.
Example
const char *vals[3] = { "a", "bb", "c" };
const size_t lens[3] = { 1, 2, 1 };
yyjson_mut_val *arr = yyjson_mut_arr_with_strn(doc, vals, lens, 3);
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strn(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count)
Definition: yyjson.h:4498
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_strn(yyjson_mut_doc *doc, const char **vals, const size_t *lens, size_t count)
Definition: yyjson.h:4902
@@ -4944,7 +4996,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const uint64_t vals[3] = { 0, 1, 0 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
Definition: yyjson.h:4398
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
Definition: yyjson.h:4802
@@ -4992,7 +5044,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const uint16_t vals[3] = { 0, 1, 0 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint16(yyjson_mut_doc *doc, const uint16_t *vals, size_t count)
Definition: yyjson.h:4448
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint16(yyjson_mut_doc *doc, const uint16_t *vals, size_t count)
Definition: yyjson.h:4852
@@ -5040,7 +5092,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const uint32_t vals[3] = { 0, 1, 0 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint32(yyjson_mut_doc *doc, const uint32_t *vals, size_t count)
Definition: yyjson.h:4456
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint32(yyjson_mut_doc *doc, const uint32_t *vals, size_t count)
Definition: yyjson.h:4860
@@ -5088,7 +5140,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const uint64_t vals[3] = { 0, 1, 0 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint64(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
Definition: yyjson.h:4464
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint64(yyjson_mut_doc *doc, const uint64_t *vals, size_t count)
Definition: yyjson.h:4868
@@ -5136,7 +5188,7 @@

Returns
The new array. NULL if input is invalid or memory allocation failed.
Example
const uint8_t vals[3] = { 0, 1, 0 };
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint8(yyjson_mut_doc *doc, const uint8_t *vals, size_t count)
Definition: yyjson.h:4440
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_arr_with_uint8(yyjson_mut_doc *doc, const uint8_t *vals, size_t count)
Definition: yyjson.h:4844
@@ -5273,6 +5325,36 @@

Returns the root value of this JSON document. Returns NULL if doc is NULL.

+ + +
+

◆ yyjson_mut_doc_imut_copy()

+ +
+
+

arrThe array to be rotated.
idxIndex (or times) to rotate.
+ + + + + + + + + + + + + + + + + +
yyjson_api yyjson_doc * yyjson_mut_doc_imut_copy (yyjson_mut_docdoc,
const yyjson_alcalc 
)
+
+

Copies and returns a new immutable document from input, returns NULL on error. This makes a deep-copy on the mutable document. The returned document should be freed with yyjson_doc_free().

Note
mut_doc -> imut_doc.
+
Warning
This function is recursive and may cause a stack overflow if the object level is too deep.
+
@@ -5300,7 +5382,7 @@

-

Copies and returns a new mutable document from input, returns NULL on error. This makes a deep-copy on the mutable document. If allocator is NULL, the default allocator will be used.

+

Copies and returns a new mutable document from input, returns NULL on error. This makes a deep-copy on the mutable document. If allocator is NULL, the default allocator will be used.

Note
mut_doc -> mut_doc.
@@ -5679,7 +5761,7 @@

-

Returns the JSON value's subtype. Returns YYJSON_SUBTYPE_NONE if val is NULL.

+

Returns the JSON value's subtype. Returns YYJSON_SUBTYPE_NONE if val is NULL.

@@ -5717,7 +5799,7 @@

-

Returns the JSON value's type. Returns YYJSON_TYPE_NONE if val is NULL.

+

Returns the JSON value's type. Returns YYJSON_TYPE_NONE if val is NULL.

@@ -6162,7 +6244,7 @@

Parameters
- +
objThe object to which the new key-value pair is to be added.
keyThe key, should be a string which is created by yyjson_mut_str(), yyjson_mut_strn(), yyjson_mut_strcpy() or yyjson_mut_strncpy().
keyThe key, should be a string which is created by yyjson_mut_str(), yyjson_mut_strn(), yyjson_mut_strcpy() or yyjson_mut_strncpy().
valThe value to add to the object.
@@ -6844,7 +6926,7 @@

Parameters
- +
objThe object to which the new key-value pair is to be added.
keyThe key, should be a string which is created by yyjson_mut_str(), yyjson_mut_strn(), yyjson_mut_strcpy() or yyjson_mut_strncpy().
keyThe key, should be a string which is created by yyjson_mut_str(), yyjson_mut_strn(), yyjson_mut_strcpy() or yyjson_mut_strncpy().
valThe value to add to the object.
idxThe index to which to insert the new pair.
@@ -6880,7 +6962,7 @@

Iterates to a specified key and returns the value.

-

This function does the same thing as yyjson_mut_obj_get(), but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

+

This function does the same thing as yyjson_mut_obj_get(), but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

Parameters
@@ -6944,7 +7026,7 @@

Iterates to a specified key and returns the value.

-

This function does the same thing as yyjson_mut_obj_getn(), but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

+

This function does the same thing as yyjson_mut_obj_getn() but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

Parameters

iterThe object iterator, should not be NULL.
@@ -7087,8 +7169,8 @@

Parameters

iterThe object iterator, should not be NULL.
- - + +
objThe object to which the new key-value pair is to be added.
keyThe key, should be a string which is created by yyjson_mut_str(), yyjson_mut_strn(), yyjson_mut_strcpy() or yyjson_mut_strncpy().
valThe value to add to the object. If this value is null, the behavior is same as yyjson_mut_obj_remove().
keyThe key, should be a string which is created by yyjson_mut_str(), yyjson_mut_strn(), yyjson_mut_strcpy() or yyjson_mut_strncpy().
valThe value to add to the object. If this value is null, the behavior is same as yyjson_mut_obj_remove().
@@ -7278,6 +7360,102 @@

Warning
This function takes a linear search time.

+ + + +

◆ yyjson_mut_obj_rename_key()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api_inline bool yyjson_mut_obj_rename_key (yyjson_mut_docdoc,
yyjson_mut_valobj,
const char * key,
const char * new_key 
)
+
+

Replaces all matching keys with the new key. Returns true if at least one key was renamed. The key and new_key should be a null-terminated UTF-8 string. The new_key is copied and held by doc.

+
Warning
This function takes a linear search time. If new_key already exists, it will cause duplicate keys.
+ +
+
+ +

◆ yyjson_mut_obj_rename_keyn()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api_inline bool yyjson_mut_obj_rename_keyn (yyjson_mut_docdoc,
yyjson_mut_valobj,
const char * key,
size_t len,
const char * new_key,
size_t new_len 
)
+
+

Replaces all matching keys with the new key. Returns true if at least one key was renamed. The key and new_key should be a UTF-8 string, null-terminator is not required. The new_key is copied and held by doc.

+
Warning
This function takes a linear search time. If new_key already exists, it will cause duplicate keys.
+
@@ -7349,7 +7527,7 @@

-

Rotates key-value pairs in the object for the given number of times. For example: {"a":1,"b":2,"c":3,"d":4} rotate 1 is {"b":2,"c":3,"d":4,"a":1}.

Parameters
+

Rotates key-value pairs in the object for the given number of times. For example: {"a":1,"b":2,"c":3,"d":4} rotate 1 is {"b":2,"c":3,"d":4,"a":1}.

Parameters
@@ -7415,7 +7593,7 @@

Warning
The input string is not copied, you should keep this string unmodified for the lifetime of this JSON document.
Example
const char *kv_pairs[4] = { "id", "01", "name", "Harry" };
yyjson_mut_val *obj = yyjson_mut_obj_with_kv(doc, kv_pairs, 2);
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_kv(yyjson_mut_doc *doc, const char **kv_pairs, size_t pair_count)
Definition: yyjson.h:5068
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_kv(yyjson_mut_doc *doc, const char **kv_pairs, size_t pair_count)
Definition: yyjson.h:5472
@@ -7462,7 +7640,7 @@

Example
const char *keys[2] = { "id", "name" };
const char *vals[2] = { "01", "Harry" };
yyjson_mut_val *obj = yyjson_mut_obj_with_str(doc, keys, vals, 2);
-
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_str(yyjson_mut_doc *doc, const char **keys, const char **vals, size_t count)
Definition: yyjson.h:5037
+
yyjson_api_inline yyjson_mut_val * yyjson_mut_obj_with_str(yyjson_mut_doc *doc, const char **keys, const char **vals, size_t count)
Definition: yyjson.h:5441
@@ -7597,23 +7775,35 @@

-

◆ yyjson_mut_real()

+ +

◆ yyjson_mut_read_number()

objThe object to be rotated.
idxIndex (or times) to rotate.
- + - - + + - - + + + + + + + + + + + + + + @@ -7622,18 +7812,29 @@

-

Creates and returns an real number value, returns NULL on error.

+

Read a JSON number.

+

This function is thread-safe when data is not modified by other threads.

+
Parameters
+

yyjson_api_inline yyjson_mut_val * yyjson_mut_real yyjson_api_inline const char * yyjson_mut_read_number (yyjson_mut_docdoc, const char * dat,
double num yyjson_mut_valval,
yyjson_read_flag flg,
yyjson_read_errerr 
+ + + + +
datThe JSON data (UTF-8 without BOM), null-terminator is required. If this parameter is NULL, the function will fail and return NULL.
valThe output value where result is stored. If this parameter is NULL, the function will fail and return NULL. The value will hold either UINT or SINT or REAL number;
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options. Suppors YYJSON_READ_NUMBER_AS_RAW and YYJSON_READ_ALLOW_INF_AND_NAN.
errA pointer to receive error information. Pass NULL if you don't need error information.
+
+
+
Returns
If successful, a pointer to the character after the last character used in the conversion, NULL if an error occurs.
-
-

◆ yyjson_mut_sint()

+ +

◆ yyjson_mut_real()

- + @@ -7641,7 +7842,7 @@

- + @@ -7651,56 +7852,46 @@

-

Creates and returns a signed integer value, returns NULL on error.

+

Creates and returns an real number value, returns NULL on error.

-
-

◆ yyjson_mut_str()

+ +

◆ yyjson_mut_set_arr()

yyjson_api_inline yyjson_mut_val * yyjson_mut_sint yyjson_api_inline yyjson_mut_val * yyjson_mut_real ( yyjson_mut_doc doc, int64_t double  num 
- + - - - - - - - - - - + + - -
yyjson_api_inline yyjson_mut_val * yyjson_mut_str yyjson_api_inline bool yyjson_mut_set_arr (yyjson_mut_docdoc,
const char * str 
yyjson_mut_valval) )
-

Creates and returns a string value, returns NULL on error. The str should be a null-terminated UTF-8 string.

Warning
The input string is not copied, you should keep this string unmodified for the lifetime of this JSON document.
+

Set the value to array. Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
- -

◆ yyjson_mut_strcpy()

+ +

◆ yyjson_mut_set_bool()

-

Creates and returns a string value, returns NULL on error. The str should be a UTF-8 string, null-terminator is not required. The input string is copied and held by the document.

+

Set the value to null. Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
- -

◆ yyjson_mut_true()

+ +

◆ yyjson_mut_set_obj()

- + - - + +
yyjson_api_inline yyjson_mut_val * yyjson_mut_true yyjson_api_inline bool yyjson_mut_set_obj (yyjson_mut_docdoc)yyjson_mut_valval)
-

Creates and returns a true value, returns NULL on error.

+

Set the value to array. Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
- -

◆ yyjson_mut_uint()

+ +

◆ yyjson_mut_set_raw()

- + - - + + - - + + + + + + + + @@ -7827,27 +8002,27 @@

-

Creates and returns an unsigned integer value, returns NULL on error.

+

Set the value to raw. Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
-
-

◆ yyjson_mut_val_mut_copy()

+ +

◆ yyjson_mut_set_real()

yyjson_api_inline yyjson_mut_val * yyjson_mut_uint yyjson_api_inline bool yyjson_mut_set_raw (yyjson_mut_docdoc, yyjson_mut_valval,
uint64_t num const char * raw,
size_t len 
- + - - + + - - + + @@ -7856,34 +8031,27 @@

-

Copies and return a new mutable value from input, returns NULL on error, This makes a deep-copy on the mutable value. The memory was managed by mutable document.

-
Warning
This function is recursive and may cause a stack overflow if the object level is too deep.
+

Set the value to real. Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
-
-

◆ yyjson_mut_val_write()

+ +

◆ yyjson_mut_set_sint()

yyjson_api yyjson_mut_val * yyjson_mut_val_mut_copy yyjson_api_inline bool yyjson_mut_set_real (yyjson_mut_docdoc, yyjson_mut_valval,
yyjson_mut_valval double num 
- + - + - - - - - - - - + + @@ -7892,55 +8060,62 @@

-

Write a value to JSON string.

-

This function is thread-safe when: The val is not is not modified by other threads.

-
Parameters
-

yyjson_api_inline char * yyjson_mut_val_write yyjson_api_inline bool yyjson_mut_set_sint (const yyjson_mut_valyyjson_mut_val val,
yyjson_write_flag flg,
size_t * len int64_t num 
- - - -
valThe JSON root value. If this parameter is NULL, the function will fail and return NULL.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
-
-
-
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free().
+

Set the value to sint. Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
-
-

◆ yyjson_mut_val_write_file()

+ +

◆ yyjson_mut_set_str()

- + - - + + - - + + - - - + + + +
yyjson_api bool yyjson_mut_val_write_file yyjson_api_inline bool yyjson_mut_set_str (const char * path, yyjson_mut_valval,
const yyjson_mut_valval, const char * str 
yyjson_write_flag flg, )
+
+

Set the value to string (null-terminated). Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
+ +
+
+ +

◆ yyjson_mut_set_strn()

+ +
+
+ + + + + + - - + + - - + + @@ -7949,62 +8124,56 @@

-

Write a value to JSON file with options.

-

This function is thread-safe when:

    -
  1. The file is not accessed by other threads.
  2. -
  3. The val is not modified by other threads.
  4. -
  5. The alc is thread-safe or NULL.
  6. -
-
Parameters
-

yyjson_api_inline bool yyjson_mut_set_strn (yyjson_mut_valval,
const yyjson_alcalc, const char * str,
yyjson_write_errerr size_t len 
- - - - - -
pathThe JSON file's path. If this path is NULL or invalid, the function will fail and return false. If this file is not empty, the content will be discarded.
valThe mutable JSON root value. If this parameter is NULL, the function will fail and return NULL.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
-

-
-
Returns
true if successful, false if an error occurs.
-
Warning
On 32-bit operating system, files larger than 2GB may fail to write.
+

Set the value to string (with length). Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
-
-

◆ yyjson_mut_val_write_opts()

+ +

◆ yyjson_mut_set_uint()

- + - + - - + + - - - + + +
yyjson_api char * yyjson_mut_val_write_opts yyjson_api_inline bool yyjson_mut_set_uint (const yyjson_mut_valyyjson_mut_val val,
yyjson_write_flag flg, uint64_t num 
const yyjson_alcalc, )
+
+

Set the value to uint. Returns false if input is NULL.

Warning
This function should not be used on an existing object or array.
+ +
+
+ +

◆ yyjson_mut_sint()

+ +
+
+ - - - - + + + + - - + + @@ -8013,48 +8182,27 @@

-

Write a value to JSON string with options.

-

This function is thread-safe when:

    -
  1. The val is not modified by other threads.
  2. -
  3. The alc is thread-safe or NULL.
  4. -
-
Parameters
-

size_t * len, yyjson_api_inline yyjson_mut_val * yyjson_mut_sint (yyjson_mut_docdoc,
yyjson_write_errerr int64_t num 
- - - - - -
valThe mutable JSON root value. If this parameter is NULL, the function will fail and return NULL.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
errA pointer to receive error information. Pass NULL if you don't need error information.
- - -
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free() or alc->free().
+

Creates and returns a signed integer value, returns NULL on error.

- -

◆ yyjson_mut_write()

+ +

◆ yyjson_mut_str()

- + - + - - - - - - - - + + @@ -8063,55 +8211,62 @@

-

Write a document to JSON string.

-

This function is thread-safe when: The doc is not is not modified by other threads.

-
Parameters
-

yyjson_api_inline char * yyjson_mut_write yyjson_api_inline yyjson_mut_val * yyjson_mut_str (const yyjson_mut_docyyjson_mut_doc doc,
yyjson_write_flag flg,
size_t * len const char * str 
- - - -
docThe JSON document. If this doc is NULL or has no root, the function will fail and return false.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
- - -
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free().
+

Creates and returns a string value, returns NULL on error. The str should be a null-terminated UTF-8 string.

Warning
The input string is not copied, you should keep this string unmodified for the lifetime of this JSON document.
- -

◆ yyjson_mut_write_file()

+ +

◆ yyjson_mut_strcpy()

- + - - + + - - + + - - - + + + +
yyjson_api bool yyjson_mut_write_file yyjson_api_inline yyjson_mut_val * yyjson_mut_strcpy (const char * path, yyjson_mut_docdoc,
const yyjson_mut_docdoc, const char * str 
yyjson_write_flag flg, )
+
+

Creates and returns a string value, returns NULL on error. The str should be a null-terminated UTF-8 string. The input string is copied and held by the document.

+ +
+
+ +

◆ yyjson_mut_strn()

+ +
+
+ + + + + + - - + + - - + + @@ -8120,61 +8275,467 @@

-

Write a document to JSON file with options.

-

This function is thread-safe when:

    -
  1. The file is not accessed by other threads.
  2. -
  3. The doc is not modified by other threads.
  4. -
  5. The alc is thread-safe or NULL.
  6. -
-
Parameters
-

yyjson_api_inline yyjson_mut_val * yyjson_mut_strn (yyjson_mut_docdoc,
const yyjson_alcalc, const char * str,
yyjson_write_errerr size_t len 
- - - - - -
pathThe JSON file's path. If this path is NULL or invalid, the function will fail and return false. If this file is not empty, the content will be discarded.
docThe mutable JSON document. If this doc is NULL or has no root, the function will fail and return false.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
- - -
Returns
true if successful, false if an error occurs.
-
Warning
On 32-bit operating system, files larger than 2GB may fail to write.
+

Creates and returns a string value, returns NULL on error. The str should be a UTF-8 string, null-terminator is not required.

Warning
The input string is not copied, you should keep this string unmodified for the lifetime of this JSON document.
- -

◆ yyjson_mut_write_opts()

+ +

◆ yyjson_mut_strncpy()

- + - + - - + + - - + + - - - + + - - - - +
yyjson_api char * yyjson_mut_write_opts yyjson_api_inline yyjson_mut_val * yyjson_mut_strncpy (const yyjson_mut_docyyjson_mut_doc doc,
yyjson_write_flag flg, const char * str,
const yyjson_alcalc, size_t len 
size_t * len, )
yyjson_write_err
+
+

Creates and returns a string value, returns NULL on error. The str should be a UTF-8 string, null-terminator is not required. The input string is copied and held by the document.

+ +
+
+ +

◆ yyjson_mut_true()

+ +
+
+ + + + + + + + +
yyjson_api_inline yyjson_mut_val * yyjson_mut_true (yyjson_mut_docdoc)
+
+

Creates and returns a true value, returns NULL on error.

+ +
+
+ +

◆ yyjson_mut_uint()

+ +
+
+ + + + + + + + + + + + + + + + + + +
yyjson_api_inline yyjson_mut_val * yyjson_mut_uint (yyjson_mut_docdoc,
uint64_t num 
)
+
+

Creates and returns an unsigned integer value, returns NULL on error.

+ +
+
+ +

◆ yyjson_mut_val_imut_copy()

+ +
+
+ + + + + + + + + + + + + + + + + + +
yyjson_api yyjson_doc * yyjson_mut_val_imut_copy (yyjson_mut_valval,
const yyjson_alcalc 
)
+
+

Copies and returns a new immutable document from input, returns NULL on error. This makes a deep-copy on the mutable value. The returned document should be freed with yyjson_doc_free().

Note
mut_val -> imut_doc.
+
Warning
This function is recursive and may cause a stack overflow if the object level is too deep.
+ +
+
+ +

◆ yyjson_mut_val_mut_copy()

+ +
+
+ + + + + + + + + + + + + + + + + + +
yyjson_api yyjson_mut_val * yyjson_mut_val_mut_copy (yyjson_mut_docdoc,
yyjson_mut_valval 
)
+
+

Copies and returns a new mutable value from input, returns NULL on error. This makes a deep-copy on the mutable value. The memory was managed by mutable document.

Note
mut_val -> mut_val.
+
Warning
This function is recursive and may cause a stack overflow if the object level is too deep.
+ +
+
+ +

◆ yyjson_mut_val_write()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api_inline char * yyjson_mut_val_write (const yyjson_mut_valval,
yyjson_write_flag flg,
size_t * len 
)
+
+

Write a value to JSON string.

+

This function is thread-safe when: The val is not modified by other threads.

+
Parameters
+ + + + +
valThe JSON root value. If this parameter is NULL, the function will fail and return NULL.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
+
+
+
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free().
+ +
+
+ +

◆ yyjson_mut_val_write_file()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api bool yyjson_mut_val_write_file (const char * path,
const yyjson_mut_valval,
yyjson_write_flag flg,
const yyjson_alcalc,
yyjson_write_errerr 
)
+
+

Write a value to JSON file with options.

+

This function is thread-safe when:

    +
  1. The file is not accessed by other threads.
  2. +
  3. The val is not modified by other threads.
  4. +
  5. The alc is thread-safe or NULL.
  6. +
+
Parameters
+ + + + + + +
pathThe JSON file's path. If this path is NULL or invalid, the function will fail and return false. If this file is not empty, the content will be discarded.
valThe mutable JSON root value. If this parameter is NULL, the function will fail and return NULL.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
+
+
+
Returns
true if successful, false if an error occurs.
+
Warning
On 32-bit operating system, files larger than 2GB may fail to write.
+ +
+
+ +

◆ yyjson_mut_val_write_opts()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api char * yyjson_mut_val_write_opts (const yyjson_mut_valval,
yyjson_write_flag flg,
const yyjson_alcalc,
size_t * len,
yyjson_write_errerr 
)
+
+

Write a value to JSON string with options.

+

This function is thread-safe when:

    +
  1. The val is not modified by other threads.
  2. +
  3. The alc is thread-safe or NULL.
  4. +
+
Parameters
+ + + + + + +
valThe mutable JSON root value. If this parameter is NULL, the function will fail and return NULL.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
errA pointer to receive error information. Pass NULL if you don't need error information.
+
+
+
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free() or alc->free().
+ +
+
+ +

◆ yyjson_mut_write()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api_inline char * yyjson_mut_write (const yyjson_mut_docdoc,
yyjson_write_flag flg,
size_t * len 
)
+
+

Write a document to JSON string.

+

This function is thread-safe when: The doc is not modified by other threads.

+
Parameters
+ + + + +
docThe JSON document. If this doc is NULL or has no root, the function will fail and return false.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
+
+
+
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free().
+ +
+
+ +

◆ yyjson_mut_write_file()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api bool yyjson_mut_write_file (const char * path,
const yyjson_mut_docdoc,
yyjson_write_flag flg,
const yyjson_alcalc,
yyjson_write_errerr 
)
+
+

Write a document to JSON file with options.

+

This function is thread-safe when:

    +
  1. The file is not accessed by other threads.
  2. +
  3. The doc is not modified by other threads.
  4. +
  5. The alc is thread-safe or NULL.
  6. +
+
Parameters
+ + + + + + +
pathThe JSON file's path. If this path is NULL or invalid, the function will fail and return false. If this file is not empty, the content will be discarded.
docThe mutable JSON document. If this doc is NULL or has no root, the function will fail and return false.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
+
+
+
Returns
true if successful, false if an error occurs.
+
Warning
On 32-bit operating system, files larger than 2GB may fail to write.
+ +
+
+ +

◆ yyjson_mut_write_opts()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8184,42 +8745,315 @@

-

Write a document to JSON string with options.

-

This function is thread-safe when:

    -
  1. The doc is not modified by other threads.
  2. -
  3. The alc is thread-safe or NULL.
  4. -
+

Write a document to JSON string with options.

+

This function is thread-safe when:

    +
  1. The doc is not modified by other threads.
  2. +
  3. The alc is thread-safe or NULL.
  4. +
+
Parameters
+

yyjson_api char * yyjson_mut_write_opts (const yyjson_mut_docdoc,
yyjson_write_flag flg,
const yyjson_alcalc,
size_t * len,
yyjson_write_err err 
+ + + + + +
docThe mutable JSON document. If this doc is NULL or has no root, the function will fail and return false.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
errA pointer to receive error information. Pass NULL if you don't need error information.
+ + +
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free() or alc->free().
+ +
+
+ +

◆ yyjson_obj_get()

+ +
+
+ + + + + + + + + + + + + + + + + + +
yyjson_api_inline yyjson_val * yyjson_obj_get (yyjson_valobj,
const char * key 
)
+
+

Returns the value to which the specified key is mapped. Returns NULL if this object contains no mapping for the key. Returns NULL if obj/key is NULL, or type is not object.

+

The key should be a null-terminated UTF-8 string.

+
Warning
This function takes a linear search time.
+ +
+
+ +

◆ yyjson_obj_getn()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api_inline yyjson_val * yyjson_obj_getn (yyjson_valobj,
const char * key,
size_t key_len 
)
+
+

Returns the value to which the specified key is mapped. Returns NULL if this object contains no mapping for the key. Returns NULL if obj/key is NULL, or type is not object.

+

The key should be a UTF-8 string, null-terminator is not required. The key_len should be the length of the key, in bytes.

+
Warning
This function takes a linear search time.
+ +
+
+ +

◆ yyjson_obj_iter_get()

+ +
+
+ + + + + + + + + + + + + + + + + + +
yyjson_api_inline yyjson_val * yyjson_obj_iter_get (yyjson_obj_iteriter,
const char * key 
)
+
+

Iterates to a specified key and returns the value.

+

This function does the same thing as yyjson_obj_get(), but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

+
Parameters
+ + + +
iterThe object iterator, should not be NULL.
keyThe key, should be a UTF-8 string with null-terminator.
+
+
+
Returns
The value to which the specified key is mapped. NULL if this object contains no mapping for the key or input is invalid.
+
Warning
This function takes a linear search time if the key is not nearby.
+ +
+
+ +

◆ yyjson_obj_iter_get_val()

+ +
+
+ + + + + + + + +
yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val (yyjson_valkey)
+
+

Returns the value for key inside the iteration. If iter is NULL, this function will return NULL.

+ +
+
+ +

◆ yyjson_obj_iter_getn()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
yyjson_api_inline yyjson_val * yyjson_obj_iter_getn (yyjson_obj_iteriter,
const char * key,
size_t key_len 
)
+
+

Iterates to a specified key and returns the value.

+

This function does the same thing as yyjson_obj_getn(), but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

+
Parameters
+ + + + +
iterThe object iterator, should not be NULL.
keyThe key, should be a UTF-8 string, null-terminator is not required.
key_lenThe the length of key, in bytes.
+
+
+
Returns
The value to which the specified key is mapped. NULL if this object contains no mapping for the key or input is invalid.
+
Warning
This function takes a linear search time if the key is not nearby.
+ +
+
+ +

◆ yyjson_obj_iter_has_next()

+ +
+
+ + + + + + + + +
yyjson_api_inline bool yyjson_obj_iter_has_next (yyjson_obj_iteriter)
+
+

Returns whether the iteration has more elements. If iter is NULL, this function will return false.

+ +
+
+ +

◆ yyjson_obj_iter_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
yyjson_api_inline bool yyjson_obj_iter_init (yyjson_valobj,
yyjson_obj_iteriter 
)
+
+

Initialize an iterator for this object.

Parameters
- - - - - + +
docThe mutable JSON document. If this doc is NULL or has no root, the function will fail and return false.
flgThe JSON write options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON writer. Pass NULL to use the libc's default allocator.
lenA pointer to receive output length in bytes. Pass NULL if you don't need length information.
errA pointer to receive error information. Pass NULL if you don't need error information.
objThe object to be iterated over. If this parameter is NULL or not an object, iter will be set to empty.
iterThe iterator to be initialized. If this parameter is NULL, the function will fail and return false.
-
Returns
A new JSON string, or NULL if an error occurs. This string is encoded as UTF-8 with a null-terminator. When it's no longer needed, it should be freed with free() or alc->free().
+
Returns
true if the iter has been successfully initialized.
+
Note
The iterator does not need to be destroyed.
- -

◆ yyjson_obj_get()

+ +

◆ yyjson_obj_iter_next()

- + + + + + + +
yyjson_api_inline yyjson_val * yyjson_obj_get yyjson_api_inline yyjson_val * yyjson_obj_iter_next (yyjson_obj_iteriter)
+
+

Returns the next key in the iteration, or NULL on end. If iter is NULL, this function will return NULL.

+ +
+
+ +

◆ yyjson_obj_size()

+ +
+
+ + + - + + + +
yyjson_api_inline size_t yyjson_obj_size ( yyjson_valobj, obj)
+
+

Returns the number of key-value pairs in this object. Returns 0 if obj is NULL or type is not object.

+ +
+
+ +

◆ yyjson_read()

+ +
+
+ + + + + + - - + + + + + + + + @@ -8228,35 +9062,49 @@

-

Returns the value to which the specified key is mapped. Returns NULL if this object contains no mapping for the key. Returns NULL if obj/key is NULL, or type is not object.

-

The key should be a null-terminated UTF-8 string.

-
Warning
This function takes a linear search time.
+

Read a JSON string.

+

This function is thread-safe.

+
Parameters
+

yyjson_api_inline yyjson_doc * yyjson_read (const char * dat,
const char * key size_t len,
yyjson_read_flag flg 
+ + + +
datThe JSON data (UTF-8 without BOM), null-terminator is not required. If this parameter is NULL, the function will fail and return NULL.
lenThe length of JSON data in bytes. If this parameter is 0, the function will fail and return NULL.
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options.
+ + +
Returns
A new JSON document, or NULL if an error occurs. When it's no longer needed, it should be freed with yyjson_doc_free().
- -

◆ yyjson_obj_getn()

+ +

◆ yyjson_read_file()

- + - - + + - - + + - - + + + + + + + + @@ -8265,29 +9113,42 @@

-

Returns the value to which the specified key is mapped. Returns NULL if this object contains no mapping for the key. Returns NULL if obj/key is NULL, or type is not object.

-

The key should be a UTF-8 string, null-terminator is not required. The key_len should be the length of the key, in bytes.

-
Warning
This function takes a linear search time.
+

Read a JSON file.

+

This function is thread-safe when:

    +
  1. The file is not modified by other threads.
  2. +
  3. The alc is thread-safe or NULL.
  4. +
+
Parameters
+

yyjson_api_inline yyjson_val * yyjson_obj_getn yyjson_api yyjson_doc * yyjson_read_file (yyjson_valobj, const char * path,
const char * key, yyjson_read_flag flg,
size_t key_len const yyjson_alcalc,
yyjson_read_errerr 
+ + + + +
pathThe JSON file's path. If this path is NULL or invalid, the function will fail and return NULL.
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON reader. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
+ + +
Returns
A new JSON document, or NULL if an error occurs. When it's no longer needed, it should be freed with yyjson_doc_free().
+
Warning
On 32-bit operating system, files larger than 2GB may fail to read.
- -

◆ yyjson_obj_iter_get()

+ +

◆ yyjson_read_max_memory_usage()

- + - - + + - - + + @@ -8296,62 +9157,132 @@

-

Iterates to a specified key and returns the value.

-

This function does the same thing as yyjson_obj_get(), but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

+

Returns the size of maximum memory usage to read a JSON data.

+

You may use this value to avoid malloc() or calloc() call inside the reader to get better performance, or read multiple JSON with one piece of memory.

Parameters

yyjson_api_inline yyjson_val * yyjson_obj_iter_get yyjson_api_inline size_t yyjson_read_max_memory_usage (yyjson_obj_iteriter, size_t len,
const char * key yyjson_read_flag flg 
- - + +
iterThe object iterator, should not be NULL.
keyThe key, should be a UTF-8 string with null-terminator.
lenThe length of JSON data in bytes.
flgThe JSON read options.
-
Returns
The value to which the specified key is mapped. NULL if this object contains no mapping for the key or input is invalid.
-
Warning
This function takes a linear search time if the key is not nearby.
+
Returns
The maximum memory size to read this JSON, or 0 if overflow.
+
Example
// read multiple JSON with same pre-allocated memory
+
+
char *dat1, *dat2, *dat3; // JSON data
+
size_t len1, len2, len3; // JSON length
+
size_t max_len = MAX(len1, MAX(len2, len3));
+ +
+
// use one allocator for multiple JSON
+
size_t size = yyjson_read_max_memory_usage(max_len, 0);
+
void *buf = malloc(size);
+ +
yyjson_alc_pool_init(&alc, buf, size);
+
+
// no more alloc() or realloc() call during reading
+
doc = yyjson_read_opts(dat1, len1, 0, &alc, NULL);
+ +
doc = yyjson_read_opts(dat2, len2, 0, &alc, NULL);
+ +
doc = yyjson_read_opts(dat3, len3, 0, &alc, NULL);
+ +
+
free(buf);
+
yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc)
Definition: yyjson.h:3734
+
yyjson_api_inline size_t yyjson_read_max_memory_usage(size_t len, yyjson_read_flag flg)
Definition: yyjson.h:785
+
+
See also
yyjson_alc_pool_init()
- -

◆ yyjson_obj_iter_get_val()

+ +

◆ yyjson_read_number()

- + + + + + + + - + + + + + + + + + + + + + + + + +
yyjson_api_inline yyjson_val * yyjson_obj_iter_get_val yyjson_api const char * yyjson_read_number (const char * dat,
yyjson_valkey)val,
yyjson_read_flag flg,
yyjson_read_errerr 
)
-

Returns the value for key inside the iteration. If iter is NULL, this function will return NULL.

+

Read a JSON number.

+

This function is thread-safe when data is not modified by other threads.

+
Parameters
+ + + + + +
datThe JSON data (UTF-8 without BOM), null-terminator is required. If this parameter is NULL, the function will fail and return NULL.
valThe output value where result is stored. If this parameter is NULL, the function will fail and return NULL. The value will hold either UINT or SINT or REAL number;
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options. Suppors YYJSON_READ_NUMBER_AS_RAW and YYJSON_READ_ALLOW_INF_AND_NAN.
errA pointer to receive error information. Pass NULL if you don't need error information.
+
+
+
Returns
If successful, a pointer to the character after the last character used in the conversion, NULL if an error occurs.
- -

◆ yyjson_obj_iter_getn()

+ +

◆ yyjson_read_opts()

- + - - + + + + + + + + + + + + + + - - + + - - + + @@ -8360,57 +9291,71 @@

-

Iterates to a specified key and returns the value.

-

This function does the same thing as yyjson_obj_getn(), but is much faster if the ordering of the keys is known at compile-time and you are using the same order to look up the values. If the key exists in this object, then the iterator will stop at the next key, otherwise the iterator will not change and NULL is returned.

+

Read JSON with options.

+

This function is thread-safe when:

    +
  1. The dat is not modified by other threads.
  2. +
  3. The alc is thread-safe or NULL.
  4. +
Parameters

yyjson_api_inline yyjson_val * yyjson_obj_iter_getn yyjson_api yyjson_doc * yyjson_read_opts (yyjson_obj_iteriter, char * dat,
size_t len,
yyjson_read_flag flg,
const char * key, const yyjson_alcalc,
size_t key_len yyjson_read_errerr 
- - - + + + + +
iterThe object iterator, should not be NULL.
keyThe key, should be a UTF-8 string, null-terminator is not required.
key_lenThe the length of key, in bytes.
datThe JSON data (UTF-8 without BOM), null-terminator is not required. If this parameter is NULL, the function will fail and return NULL. The dat will not be modified without the flag YYJSON_READ_INSITU, so you can pass a const char * string and case it to char * if you don't use the YYJSON_READ_INSITU flag.
lenThe length of JSON data in bytes. If this parameter is 0, the function will fail and return NULL.
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON reader. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
-
Returns
The value to which the specified key is mapped. NULL if this object contains no mapping for the key or input is invalid.
-
Warning
This function takes a linear search time if the key is not nearby.
+
Returns
A new JSON document, or NULL if an error occurs. When it's no longer needed, it should be freed with yyjson_doc_free().
- -

◆ yyjson_obj_iter_has_next()

+ +

◆ yyjson_set_bool()

- + - - + + + + + + + + + + + +
yyjson_api_inline bool yyjson_obj_iter_has_next yyjson_api_inline bool yyjson_set_bool (yyjson_obj_iteriter)yyjson_valval,
bool num 
)
-

Returns whether the iteration has more elements. If iter is NULL, this function will return false.

+

Set the value to bool. Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
- -

◆ yyjson_obj_iter_init()

+ +

◆ yyjson_set_int()

- + - + - - + + @@ -8419,80 +9364,81 @@

-

Initialize an iterator for this object.

-
Parameters
-

yyjson_api_inline bool yyjson_obj_iter_init yyjson_api_inline bool yyjson_set_int ( yyjson_valobj, val,
yyjson_obj_iteriter int num 
- - -
objThe object to be iterated over. If this parameter is NULL or not an object, iter will be set to empty.
iterThe iterator to be initialized. If this parameter is NULL, the function will fail and return false.
- - -
Returns
true if the iter has been successfully initialized.
-
Note
The iterator does not need to be destroyed.
+

Set the value to int. Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
- -

◆ yyjson_obj_iter_next()

+ +

◆ yyjson_set_null()

- + - - + +
yyjson_api_inline yyjson_val * yyjson_obj_iter_next yyjson_api_inline bool yyjson_set_null (yyjson_obj_iteriter)yyjson_valval)
-

Returns the next key in the iteration, or NULL on end. If iter is NULL, this function will return NULL.

+

Set the value to null. Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
- -

◆ yyjson_obj_size()

+ +

◆ yyjson_set_raw()

- + - + + + + + + + + + + + + + + + + +
yyjson_api_inline size_t yyjson_obj_size yyjson_api_inline bool yyjson_set_raw ( yyjson_valobj)val,
const char * raw,
size_t len 
)
-

Returns the number of key-value pairs in this object. Returns 0 if obj is NULL or type is not object.

+

Set the value to raw. Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
- -

◆ yyjson_read()

+ +

◆ yyjson_set_real()

- + - - - - - - - - + + - - + + @@ -8501,49 +9447,27 @@

-

Read a JSON string.

-

This function is thread-safe.

-
Parameters
-

yyjson_api_inline yyjson_doc * yyjson_read yyjson_api_inline bool yyjson_set_real (const char * dat,
size_t len, yyjson_valval,
yyjson_read_flag flg double num 
- - - -
datThe JSON data (UTF-8 without BOM), null-terminator is not required. If this parameter is NULL, the function will fail and return NULL.
lenThe length of JSON data in bytes. If this parameter is 0, the function will fail and return NULL.
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options.
- - -
Returns
A new JSON document, or NULL if an error occurs. When it's no longer needed, it should be freed with yyjson_doc_free().
+

Set the value to real. Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
- -

◆ yyjson_read_file()

+ +

◆ yyjson_set_sint()

- + - - - - - - - - - - - - - - + + - - + + @@ -8552,42 +9476,27 @@

-

Read a JSON file.

-

This function is thread-safe when:

    -
  1. The file is not modified by other threads.
  2. -
  3. The alc is thread-safe or NULL.
  4. -
-
Parameters
-

yyjson_api yyjson_doc * yyjson_read_file yyjson_api_inline bool yyjson_set_sint (const char * path,
yyjson_read_flag flg,
const yyjson_alcalc, yyjson_valval,
yyjson_read_errerr int64_t num 
- - - - -
pathThe JSON file's path. If this path is NULL or invalid, the function will fail and return NULL.
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON reader. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
- - -
Returns
A new JSON document, or NULL if an error occurs. When it's no longer needed, it should be freed with yyjson_doc_free().
-
Warning
On 32-bit operating system, files larger than 2GB may fail to read.
+

Set the value to sint. Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
- -

◆ yyjson_read_max_memory_usage()

+ +

◆ yyjson_set_str()

- + - - + + - - + + @@ -8596,80 +9505,62 @@

-

Returns the size of maximum memory usage to read a JSON data.

-

You may use this value to avoid malloc() or calloc() call inside the reader to get better performance, or read multiple JSON with one piece of memory.

-
Parameters
-

yyjson_api_inline size_t yyjson_read_max_memory_usage yyjson_api_inline bool yyjson_set_str (size_t len, yyjson_valval,
yyjson_read_flag flg const char * str 
- - -
lenThe length of JSON data in bytes.
flgThe JSON read options.
- - -
Returns
The maximum memory size to read this JSON, or 0 if overflow.
-
Example
// read multiple JSON with same pre-allocated memory
-
-
char *dat1, *dat2, *dat3; // JSON data
-
size_t len1, len2, len3; // JSON length
-
size_t max_len = MAX(len1, MAX(len2, len3));
-
-
-
// use one allocator for multiple JSON
-
size_t size = yyjson_read_max_memory_usage(max_len, 0);
-
void *buf = malloc(size);
- -
yyjson_alc_pool_init(&alc, buf, size);
-
-
// no more alloc() or realloc() call during reading
-
doc = yyjson_read_opts(dat1, len1, 0, &alc, NULL);
- -
doc = yyjson_read_opts(dat2, len2, 0, &alc, NULL);
- -
doc = yyjson_read_opts(dat3, len3, 0, &alc, NULL);
- -
-
free(buf);
-
yyjson_api_inline void yyjson_doc_free(yyjson_doc *doc)
Definition: yyjson.h:3457
-
yyjson_api_inline size_t yyjson_read_max_memory_usage(size_t len, yyjson_read_flag flg)
Definition: yyjson.h:782
-
-
See also
yyjson_alc_pool_init()
+

Set the value to string (null-terminated). Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
- -

◆ yyjson_read_opts()

+ +

◆ yyjson_set_strn()

- + - - + + - - + + - - + + - - - + + + +
yyjson_api yyjson_doc * yyjson_read_opts yyjson_api_inline bool yyjson_set_strn (char * dat, yyjson_valval,
size_t len, const char * str,
yyjson_read_flag flg, size_t len 
const yyjson_alcalc, )
+
+

Set the value to string (with length). Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
+ +
+
+ +

◆ yyjson_set_uint()

+ +
+
+ + + + + + - - + + @@ -8678,22 +9569,7 @@

-

Read JSON with options.

-

This function is thread-safe when:

    -
  1. The dat is not modified by other threads.
  2. -
  3. The alc is thread-safe or NULL.
  4. -
-
Parameters
-

yyjson_api_inline bool yyjson_set_uint (yyjson_valval,
yyjson_read_errerr uint64_t num 
- - - - - -
datThe JSON data (UTF-8 without BOM), null-terminator is not required. If this parameter is NULL, the function will fail and return NULL. The dat will not be modified without the flag YYJSON_READ_INSITU, so you can pass a const char * string and case it to char * if you don't use the YYJSON_READ_INSITU flag.
lenThe length of JSON data in bytes. If this parameter is 0, the function will fail and return NULL.
flgThe JSON read options. Multiple options can be combined with | operator. 0 means no options.
alcThe memory allocator used by JSON reader. Pass NULL to use the libc's default allocator.
errA pointer to receive error information. Pass NULL if you don't need error information.
- - -
Returns
A new JSON document, or NULL if an error occurs. When it's no longer needed, it should be freed with yyjson_doc_free().
+

Set the value to uint. Returns false if input is NULL or val is object or array.

Warning
This will modify the immutable value, use with caution.
@@ -8722,7 +9598,7 @@

-

Copies and returns a new mutable value from input, returns NULL on error. This makes a deep-copy on the immutable value. The memory was managed by mutable document.

+

Copies and returns a new mutable value from input, returns NULL on error. This makes a deep-copy on the immutable value. The memory was managed by mutable document.

Note
imut_val -> mut_val.
@@ -9169,7 +10045,7 @@

-

Allow single trailing comma at the end of an object or array, such as [1,2,3,] {"a":1,"b":2,} (non-standard).

+

Allow single trailing comma at the end of an object or array, such as [1,2,3,], {"a":1,"b":2,} (non-standard).

@@ -9284,7 +10160,7 @@

-

Invalid number, such as "123.e12", "000".

+

Invalid number, such as 123.e12, 000.

@@ -9353,7 +10229,7 @@

-

Invalid JSON structure, such as "[1,]".

+

Invalid JSON structure, such as [1,].

@@ -9376,7 +10252,7 @@

-

Invalid JSON literal, such as "truu".

+

Invalid JSON literal, such as truu.

@@ -9422,7 +10298,7 @@

-

Unexpected character inside the document, such as "[#]".

+

Unexpected character inside the document, such as [abc].

@@ -9445,7 +10321,7 @@

-

Unexpected content after document, such as "[1]#".

+

Unexpected content after document, such as [1]abc.

@@ -9468,7 +10344,7 @@

-

Unexpected ending, such as "[123".

+

Unexpected ending, such as [123.

@@ -9491,7 +10367,7 @@

-

Read the input data in-situ. This option allows the reader to modify and use input data to store string values, which can increase reading speed slightly. The caller should hold the input data before free the document. The input data must be padded by at least YYJSON_PADDING_SIZE bytes. For example: "[1,2]" should be "[1,2]\0\0\0\0", length should be 5.

+

Read the input data in-situ. This option allows the reader to modify and use input data to store string values, which can increase reading speed slightly. The caller should hold the input data before free the document. The input data must be padded by at least YYJSON_PADDING_SIZE bytes. For example: [1,2] should be [1,2]\0\0\0\0, input length should be 5.

@@ -9545,7 +10421,7 @@

-

Read number as raw string (value with YYJSON_TYPE_RAW type), inf/nan literal is also read as raw with ALLOW_INF_AND_NAN flag.

+

Read number as raw string (value with YYJSON_TYPE_RAW type), inf/nan literal is also read as raw with ALLOW_INF_AND_NAN flag.

@@ -9618,8 +10494,8 @@

-

◆ YYJSON_WRITE_ALLOW_INVALID_UNICODE

+ +

◆ YYJSON_WRITE_ALLOW_INVALID_UNICODE