547 ) { |
549 ) { |
548 return cxJsonFilln(json, str, strlen(str)); |
550 return cxJsonFilln(json, str, strlen(str)); |
549 } |
551 } |
550 #endif |
552 #endif |
551 |
553 |
|
554 cx_attr_nodiscard |
|
555 CxJsonValue* cxJsonCreateObj(const CxAllocator* allocator); |
|
556 |
|
557 cx_attr_nodiscard |
|
558 CxJsonValue* cxJsonCreateArr(const CxAllocator* allocator); |
|
559 |
|
560 cx_attr_nodiscard |
|
561 CxJsonValue* cxJsonCreateNumber(const CxAllocator* allocator, double num); |
|
562 |
|
563 cx_attr_nodiscard |
|
564 CxJsonValue* cxJsonCreateInteger(const CxAllocator* allocator, int64_t num); |
|
565 |
|
566 cx_attr_nodiscard |
|
567 cx_attr_nonnull_arg(2) |
|
568 cx_attr_cstr_arg(2) |
|
569 CxJsonValue* cxJsonCreateString(const CxAllocator* allocator, const char *str); |
|
570 |
|
571 cx_attr_nodiscard |
|
572 CxJsonValue* cxJsonCreateCxString(const CxAllocator* allocator, cxstring str); |
|
573 |
|
574 cx_attr_nodiscard |
|
575 CxJsonValue* cxJsonCreateLiteral(const CxAllocator* allocator, CxJsonLiteral lit); |
|
576 |
|
577 cx_attr_nonnull |
|
578 cx_attr_access_r(2, 3) |
|
579 int cxJsonArrAddNumbers(CxJsonValue* arr, const double* num, size_t count); |
|
580 |
|
581 cx_attr_nonnull |
|
582 cx_attr_access_r(2, 3) |
|
583 int cxJsonArrAddIntegers(CxJsonValue* arr, const int64_t* num, size_t count); |
|
584 |
|
585 cx_attr_nonnull |
|
586 cx_attr_access_r(2, 3) |
|
587 int cxJsonArrAddStrings(CxJsonValue* arr, const char* const* str, size_t count); |
|
588 |
|
589 cx_attr_nonnull |
|
590 cx_attr_access_r(2, 3) |
|
591 int cxJsonArrAddCxStrings(CxJsonValue* arr, const cxstring* str, size_t count); |
|
592 |
|
593 cx_attr_nonnull |
|
594 cx_attr_access_r(2, 3) |
|
595 int cxJsonArrAddLiterals(CxJsonValue* arr, const CxJsonLiteral* lit, size_t count); |
|
596 |
|
597 cx_attr_nonnull |
|
598 cx_attr_access_r(2, 3) |
|
599 int cxJsonArrAddValues(CxJsonValue* arr, CxJsonValue* const* val, size_t count); |
|
600 |
|
601 cx_attr_nonnull |
|
602 int cxJsonObjPut(CxJsonValue* obj, cxstring name, CxJsonValue* child); |
|
603 |
|
604 cx_attr_nonnull |
|
605 CxJsonValue* cxJsonObjPutObj(CxJsonValue* obj, cxstring name); |
|
606 |
|
607 cx_attr_nonnull |
|
608 CxJsonValue* cxJsonObjPutArr(CxJsonValue* obj, cxstring name); |
|
609 |
|
610 cx_attr_nonnull |
|
611 CxJsonValue* cxJsonObjPutNumber(CxJsonValue* obj, cxstring name, double num); |
|
612 |
|
613 cx_attr_nonnull |
|
614 CxJsonValue* cxJsonObjPutInteger(CxJsonValue* obj, cxstring name, int64_t num); |
|
615 |
|
616 cx_attr_nonnull |
|
617 cx_attr_cstr_arg(3) |
|
618 CxJsonValue* cxJsonObjPutString(CxJsonValue* obj, cxstring name, const char* str); |
|
619 |
|
620 cx_attr_nonnull |
|
621 CxJsonValue* cxJsonObjPutCxString(CxJsonValue* obj, cxstring name, cxstring str); |
|
622 |
|
623 cx_attr_nonnull |
|
624 CxJsonValue* cxJsonObjPutLiteral(CxJsonValue* obj, cxstring name, CxJsonLiteral lit); |
|
625 |
552 /** |
626 /** |
553 * Recursively deallocates the memory of a JSON value. |
627 * Recursively deallocates the memory of a JSON value. |
554 * |
628 * |
555 * \remark The type of each deallocated value will be changed |
629 * \remark The type of each deallocated value will be changed |
556 * to #CX_JSON_NOTHING and values of such type will be skipped |
630 * to #CX_JSON_NOTHING and values of such type will be skipped |