├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── data ├── cache │ ├── audio │ │ ├── mp3 │ │ │ ├── a1xj1.mp3 │ │ │ ├── about_theme.mp3 │ │ │ ├── panflutemelody.mp3 │ │ │ ├── ricknotes.mp3 │ │ │ ├── rickroll.mp3 │ │ │ ├── titled.mp3 │ │ │ └── wellerman.mp3 │ │ └── ogg │ │ │ ├── a1xj1.ogg │ │ │ ├── about_theme.ogg │ │ │ ├── panflutemelody.ogg │ │ │ ├── ricknotes.ogg │ │ │ ├── rickroll.ogg │ │ │ ├── titled.ogg │ │ │ └── wellerman.ogg │ ├── game │ │ ├── beef_tiles1.rttex │ │ ├── beef_wearables1.rttex │ │ └── beef_wearables1_icon.rttex │ └── interface │ │ └── large │ │ ├── beef_banner.rttex │ │ └── news_banner.rttex ├── items.dat ├── items_back.dat ├── players │ └── .gitkeep ├── srv_data.bin ├── userids │ └── .gitkeep └── worlds │ └── .gitkeep ├── src ├── CMakeLists.txt ├── algorithm │ ├── lock.cc │ └── lock.hh ├── commands │ ├── ban │ │ ├── ban.cc │ │ └── ban.hh │ ├── clear │ │ ├── clear.cc │ │ └── clear.hh │ ├── get │ │ ├── get.cc │ │ └── get.hh │ ├── help │ │ ├── help.cc │ │ └── help.hh │ ├── nick │ │ ├── nick.cc │ │ └── nick.hh │ └── role │ │ ├── role.cc │ │ └── role.hh ├── constants │ ├── config.hh │ ├── dialogs.hh │ └── roles.hh ├── database │ ├── database.cc │ └── database.hh ├── events │ ├── event_context.hh │ ├── event_manager.cc │ ├── event_manager.hh │ └── registered │ │ ├── action │ │ ├── action.cc │ │ ├── action.hh │ │ ├── dialog_return │ │ │ ├── dialog_return.cc │ │ │ └── dialog_return.hh │ │ ├── drop │ │ │ ├── drop.cc │ │ │ └── drop.hh │ │ ├── enter_game │ │ │ ├── enter_game.cc │ │ │ └── enter_game.hh │ │ ├── input │ │ │ ├── input.cc │ │ │ └── input.hh │ │ ├── join_request │ │ │ ├── join_request.cc │ │ │ └── join_request.hh │ │ ├── quit │ │ │ ├── quit.cc │ │ │ └── quit.hh │ │ ├── quit_to_exit │ │ │ ├── quit_to_exit.cc │ │ │ └── quit_to_exit.hh │ │ ├── refresh_item_data │ │ │ ├── refresh_item_data.cc │ │ │ └── refresh_item_data.hh │ │ ├── respawn │ │ │ ├── respawn.cc │ │ │ └── respawn.hh │ │ └── respawn_spike │ │ │ ├── respawn_spike.cc │ │ │ └── respawn_spike.hh │ │ ├── tank │ │ ├── icon_state │ │ │ ├── icon_state.cc │ │ │ └── icon_state.hh │ │ ├── item │ │ │ ├── activate │ │ │ │ ├── activate.cc │ │ │ │ └── activate.hh │ │ │ └── activate_object │ │ │ │ ├── activate_object.cc │ │ │ │ └── activate_object.hh │ │ ├── state │ │ │ ├── state.cc │ │ │ └── state.hh │ │ └── tile │ │ │ ├── activate │ │ │ ├── activate.cc │ │ │ └── activate.hh │ │ │ └── change │ │ │ ├── change.cc │ │ │ └── change.hh │ │ └── text │ │ ├── growid │ │ ├── growid.cc │ │ └── growid.hh │ │ └── guest │ │ ├── guest.cc │ │ └── guest.hh ├── http │ ├── http.cc │ └── http.hh ├── itemdb │ ├── item.hh │ ├── item_collision.hh │ ├── item_component.hh │ ├── item_flags.hh │ ├── item_material.hh │ ├── item_types.hh │ ├── item_visuals.hh │ ├── itemdb.cc │ └── itemdb.hh ├── main.cc ├── math │ ├── vec2.hh │ ├── vec2i.hh │ └── vec3.hh ├── packet │ ├── gameupdatepacket.hh │ └── variant.hh ├── player │ ├── clothing.hh │ ├── inventory.hh │ ├── player.cc │ └── player.hh ├── server │ ├── server.cc │ └── server.hh ├── text │ ├── scanner.cc │ └── scanner.hh ├── utils │ ├── io.cc │ ├── io.hh │ ├── rng.hh │ ├── text.cc │ ├── text.hh │ ├── time.cc │ └── time.hh └── world │ ├── tile.cc │ ├── tile.hh │ ├── world.cc │ ├── world.hh │ ├── world_manager.cc │ ├── world_manager.hh │ └── world_object.hh └── vendor ├── CMakeLists.txt ├── enet ├── CMakeLists.txt ├── ChangeLog ├── Doxyfile ├── DoxygenLayout.xml ├── LICENSE ├── Makefile.am ├── README ├── callbacks.c ├── compress.c ├── configure.ac ├── docs │ ├── FAQ.dox │ ├── design.dox │ ├── install.dox │ ├── license.dox │ ├── mainpage.dox │ └── tutorial.dox ├── enet.dsp ├── enet_dll.cbp ├── host.c ├── include │ └── enet │ │ ├── callbacks.h │ │ ├── enet.h │ │ ├── list.h │ │ ├── protocol.h │ │ ├── time.h │ │ ├── types.h │ │ ├── unix.h │ │ ├── utility.h │ │ └── win32.h ├── libenet.pc.in ├── list.c ├── m4 │ └── .keep ├── packet.c ├── peer.c ├── premake4.lua ├── protocol.c ├── unix.c └── win32.c ├── fmt ├── .clang-format ├── .github │ ├── pull_request_template.md │ └── workflows │ │ ├── doc.yml │ │ ├── linux.yml │ │ ├── macos.yml │ │ └── windows.yml ├── .gitignore ├── CMakeLists.txt ├── CONTRIBUTING.md ├── ChangeLog.rst ├── LICENSE.rst ├── README.rst ├── doc │ ├── CMakeLists.txt │ ├── _static │ │ ├── bootstrap.min.js │ │ ├── breathe.css │ │ └── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ ├── _templates │ │ ├── layout.html │ │ └── search.html │ ├── api.rst │ ├── basic-bootstrap │ │ ├── README │ │ ├── layout.html │ │ └── theme.conf │ ├── bootstrap │ │ ├── alerts.less │ │ ├── badges.less │ │ ├── bootstrap.less │ │ ├── breadcrumbs.less │ │ ├── button-groups.less │ │ ├── buttons.less │ │ ├── carousel.less │ │ ├── close.less │ │ ├── code.less │ │ ├── component-animations.less │ │ ├── dropdowns.less │ │ ├── forms.less │ │ ├── glyphicons.less │ │ ├── grid.less │ │ ├── input-groups.less │ │ ├── jumbotron.less │ │ ├── labels.less │ │ ├── list-group.less │ │ ├── media.less │ │ ├── mixins.less │ │ ├── mixins │ │ │ ├── alerts.less │ │ │ ├── background-variant.less │ │ │ ├── border-radius.less │ │ │ ├── buttons.less │ │ │ ├── center-block.less │ │ │ ├── clearfix.less │ │ │ ├── forms.less │ │ │ ├── gradients.less │ │ │ ├── grid-framework.less │ │ │ ├── grid.less │ │ │ ├── hide-text.less │ │ │ ├── image.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── nav-divider.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── opacity.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── progress-bar.less │ │ │ ├── reset-filter.less │ │ │ ├── resize.less │ │ │ ├── responsive-visibility.less │ │ │ ├── size.less │ │ │ ├── tab-focus.less │ │ │ ├── table-row.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ └── vendor-prefixes.less │ │ ├── modals.less │ │ ├── navbar.less │ │ ├── navs.less │ │ ├── normalize.less │ │ ├── pager.less │ │ ├── pagination.less │ │ ├── panels.less │ │ ├── popovers.less │ │ ├── print.less │ │ ├── progress-bars.less │ │ ├── responsive-embed.less │ │ ├── responsive-utilities.less │ │ ├── scaffolding.less │ │ ├── tables.less │ │ ├── theme.less │ │ ├── thumbnails.less │ │ ├── tooltip.less │ │ ├── type.less │ │ ├── utilities.less │ │ ├── variables.less │ │ └── wells.less │ ├── build.py │ ├── conf.py │ ├── contents.rst │ ├── fmt.less │ ├── index.rst │ ├── python-license.txt │ ├── syntax.rst │ └── usage.rst ├── include │ └── fmt │ │ ├── args.h │ │ ├── chrono.h │ │ ├── color.h │ │ ├── compile.h │ │ ├── core.h │ │ ├── format-inl.h │ │ ├── format.h │ │ ├── locale.h │ │ ├── os.h │ │ ├── ostream.h │ │ ├── printf.h │ │ ├── ranges.h │ │ └── xchar.h ├── src │ ├── fmt.cc │ ├── format.cc │ └── os.cc ├── support │ ├── Android.mk │ ├── AndroidManifest.xml │ ├── C++.sublime-syntax │ ├── README │ ├── Vagrantfile │ ├── appveyor-build.py │ ├── appveyor.yml │ ├── build-docs.py │ ├── build.gradle │ ├── cmake │ │ ├── FindSetEnv.cmake │ │ ├── JoinPaths.cmake │ │ ├── cxx14.cmake │ │ ├── fmt-config.cmake.in │ │ └── fmt.pc.in │ ├── compute-powers.py │ ├── docopt.py │ ├── manage.py │ ├── rst2md.py │ └── rtd │ │ ├── conf.py │ │ ├── index.rst │ │ └── theme │ │ ├── layout.html │ │ └── theme.conf └── test │ ├── CMakeLists.txt │ ├── add-subdirectory-test │ ├── CMakeLists.txt │ └── main.cc │ ├── args-test.cc │ ├── assert-test.cc │ ├── chrono-test.cc │ ├── color-test.cc │ ├── compile-error-test │ └── CMakeLists.txt │ ├── compile-test.cc │ ├── core-test.cc │ ├── cuda-test │ ├── CMakeLists.txt │ ├── cpp14.cc │ └── cuda-cpp14.cu │ ├── enforce-checks-test.cc │ ├── find-package-test │ ├── CMakeLists.txt │ └── main.cc │ ├── format │ ├── format-impl-test.cc │ ├── format-test.cc │ ├── fuzzing │ ├── .gitignore │ ├── CMakeLists.txt │ ├── README.md │ ├── build.sh │ ├── chrono-duration.cc │ ├── float.cc │ ├── fuzzer-common.h │ ├── main.cc │ ├── named-arg.cc │ ├── one-arg.cc │ └── two-args.cc │ ├── gtest-extra-test.cc │ ├── gtest-extra.cc │ ├── gtest-extra.h │ ├── gtest │ ├── .clang-format │ ├── CMakeLists.txt │ ├── gmock-gtest-all.cc │ ├── gmock │ │ └── gmock.h │ └── gtest │ │ ├── gtest-spi.h │ │ └── gtest.h │ ├── header-only-test.cc │ ├── mock-allocator.h │ ├── module-test.cc │ ├── os-test.cc │ ├── ostream-test.cc │ ├── posix-mock-test.cc │ ├── posix-mock.h │ ├── printf-test.cc │ ├── ranges-test.cc │ ├── scan-test.cc │ ├── scan.h │ ├── static-export-test │ ├── CMakeLists.txt │ ├── library.cc │ └── main.cc │ ├── std-format-test.cc │ ├── test-assert.h │ ├── test-main.cc │ ├── unicode-test.cc │ ├── util.cc │ ├── util.h │ └── xchar-test.cc ├── json ├── .clang-format ├── .clang-tidy ├── .drone.yml ├── .github │ ├── CODEOWNERS │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE │ │ ├── Bug_report.md │ │ └── config.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── SECURITY.md │ ├── config.yml │ ├── stale.yml │ └── workflows │ │ ├── codeql-analysis.yml │ │ ├── macos.yml │ │ ├── ubuntu.yml │ │ └── windows.yml ├── .gitignore ├── .travis.yml ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── ChangeLog.md ├── LICENSE.MIT ├── Makefile ├── README.md ├── appveyor.yml ├── benchmarks │ ├── CMakeLists.txt │ └── src │ │ └── benchmarks.cpp ├── cmake │ ├── ci.cmake │ ├── config.cmake.in │ ├── download_test_data.cmake │ ├── nlohmann_jsonConfigVersion.cmake.in │ └── pkg-config.pc.in ├── doc │ ├── Doxyfile │ ├── Makefile │ ├── avatars.png │ ├── css │ │ ├── mylayout.css │ │ └── mylayout_docset.css │ ├── docset │ │ ├── Info.plist │ │ ├── Makefile │ │ ├── README.md │ │ └── docSet.sql │ ├── examples │ │ ├── README.cpp │ │ ├── README.link │ │ ├── README.output │ │ ├── accept__string.cpp │ │ ├── accept__string.link │ │ ├── accept__string.output │ │ ├── array.cpp │ │ ├── array.link │ │ ├── array.output │ │ ├── at__object_t_key_type.cpp │ │ ├── at__object_t_key_type.link │ │ ├── at__object_t_key_type.output │ │ ├── at__object_t_key_type_const.cpp │ │ ├── at__object_t_key_type_const.link │ │ ├── at__object_t_key_type_const.output │ │ ├── at__size_type.cpp │ │ ├── at__size_type.link │ │ ├── at__size_type.output │ │ ├── at__size_type_const.cpp │ │ ├── at__size_type_const.link │ │ ├── at__size_type_const.output │ │ ├── at_json_pointer.cpp │ │ ├── at_json_pointer.link │ │ ├── at_json_pointer.output │ │ ├── at_json_pointer_const.cpp │ │ ├── at_json_pointer_const.link │ │ ├── at_json_pointer_const.output │ │ ├── back.cpp │ │ ├── back.link │ │ ├── back.output │ │ ├── basic_json__CompatibleType.cpp │ │ ├── basic_json__CompatibleType.link │ │ ├── basic_json__CompatibleType.output │ │ ├── basic_json__InputIt_InputIt.cpp │ │ ├── basic_json__InputIt_InputIt.link │ │ ├── basic_json__InputIt_InputIt.output │ │ ├── basic_json__basic_json.cpp │ │ ├── basic_json__basic_json.link │ │ ├── basic_json__basic_json.output │ │ ├── basic_json__copyassignment.cpp │ │ ├── basic_json__copyassignment.link │ │ ├── basic_json__copyassignment.output │ │ ├── basic_json__list_init_t.cpp │ │ ├── basic_json__list_init_t.link │ │ ├── basic_json__list_init_t.output │ │ ├── basic_json__moveconstructor.cpp │ │ ├── basic_json__moveconstructor.link │ │ ├── basic_json__moveconstructor.output │ │ ├── basic_json__nullptr_t.cpp │ │ ├── basic_json__nullptr_t.link │ │ ├── basic_json__nullptr_t.output │ │ ├── basic_json__size_type_basic_json.cpp │ │ ├── basic_json__size_type_basic_json.link │ │ ├── basic_json__size_type_basic_json.output │ │ ├── basic_json__value.cpp │ │ ├── basic_json__value.link │ │ ├── basic_json__value.output │ │ ├── basic_json__value_ptr.cpp │ │ ├── basic_json__value_ptr.link │ │ ├── basic_json__value_ptr.output │ │ ├── basic_json__value_t.cpp │ │ ├── basic_json__value_t.link │ │ ├── basic_json__value_t.output │ │ ├── begin.cpp │ │ ├── begin.link │ │ ├── begin.output │ │ ├── cbegin.cpp │ │ ├── cbegin.link │ │ ├── cbegin.output │ │ ├── cend.cpp │ │ ├── cend.link │ │ ├── cend.output │ │ ├── clear.cpp │ │ ├── clear.link │ │ ├── clear.output │ │ ├── contains.cpp │ │ ├── contains.link │ │ ├── contains.output │ │ ├── contains_json_pointer.cpp │ │ ├── contains_json_pointer.link │ │ ├── contains_json_pointer.output │ │ ├── count.cpp │ │ ├── count.link │ │ ├── count.output │ │ ├── crbegin.cpp │ │ ├── crbegin.link │ │ ├── crbegin.output │ │ ├── crend.cpp │ │ ├── crend.link │ │ ├── crend.output │ │ ├── diagnostics_extended.cpp │ │ ├── diagnostics_extended.link │ │ ├── diagnostics_extended.output │ │ ├── diagnostics_standard.cpp │ │ ├── diagnostics_standard.link │ │ ├── diagnostics_standard.output │ │ ├── diff.cpp │ │ ├── diff.link │ │ ├── diff.output │ │ ├── dump.cpp │ │ ├── dump.link │ │ ├── dump.output │ │ ├── emplace.cpp │ │ ├── emplace.link │ │ ├── emplace.output │ │ ├── emplace_back.cpp │ │ ├── emplace_back.link │ │ ├── emplace_back.output │ │ ├── empty.cpp │ │ ├── empty.link │ │ ├── empty.output │ │ ├── end.cpp │ │ ├── end.link │ │ ├── end.output │ │ ├── erase__IteratorType.cpp │ │ ├── erase__IteratorType.link │ │ ├── erase__IteratorType.output │ │ ├── erase__IteratorType_IteratorType.cpp │ │ ├── erase__IteratorType_IteratorType.link │ │ ├── erase__IteratorType_IteratorType.output │ │ ├── erase__key_type.cpp │ │ ├── erase__key_type.link │ │ ├── erase__key_type.output │ │ ├── erase__size_type.cpp │ │ ├── erase__size_type.link │ │ ├── erase__size_type.output │ │ ├── exception.cpp │ │ ├── exception.link │ │ ├── exception.output │ │ ├── find__key_type.cpp │ │ ├── find__key_type.link │ │ ├── find__key_type.output │ │ ├── flatten.cpp │ │ ├── flatten.link │ │ ├── flatten.output │ │ ├── from_bson.cpp │ │ ├── from_bson.link │ │ ├── from_bson.output │ │ ├── from_cbor.cpp │ │ ├── from_cbor.link │ │ ├── from_cbor.output │ │ ├── from_msgpack.cpp │ │ ├── from_msgpack.link │ │ ├── from_msgpack.output │ │ ├── from_ubjson.cpp │ │ ├── from_ubjson.link │ │ ├── from_ubjson.output │ │ ├── front.cpp │ │ ├── front.link │ │ ├── front.output │ │ ├── get__PointerType.cpp │ │ ├── get__PointerType.link │ │ ├── get__PointerType.output │ │ ├── get__ValueType_const.cpp │ │ ├── get__ValueType_const.link │ │ ├── get__ValueType_const.output │ │ ├── get_ptr.cpp │ │ ├── get_ptr.link │ │ ├── get_ptr.output │ │ ├── get_ref.cpp │ │ ├── get_ref.link │ │ ├── get_ref.output │ │ ├── get_to.cpp │ │ ├── get_to.link │ │ ├── get_to.output │ │ ├── insert.cpp │ │ ├── insert.link │ │ ├── insert.output │ │ ├── insert__count.cpp │ │ ├── insert__count.link │ │ ├── insert__count.output │ │ ├── insert__ilist.cpp │ │ ├── insert__ilist.link │ │ ├── insert__ilist.output │ │ ├── insert__range.cpp │ │ ├── insert__range.link │ │ ├── insert__range.output │ │ ├── insert__range_object.cpp │ │ ├── insert__range_object.link │ │ ├── insert__range_object.output │ │ ├── invalid_iterator.cpp │ │ ├── invalid_iterator.link │ │ ├── invalid_iterator.output │ │ ├── is_array.cpp │ │ ├── is_array.link │ │ ├── is_array.output │ │ ├── is_binary.cpp │ │ ├── is_binary.link │ │ ├── is_binary.output │ │ ├── is_boolean.cpp │ │ ├── is_boolean.link │ │ ├── is_boolean.output │ │ ├── is_discarded.cpp │ │ ├── is_discarded.link │ │ ├── is_discarded.output │ │ ├── is_null.cpp │ │ ├── is_null.link │ │ ├── is_null.output │ │ ├── is_number.cpp │ │ ├── is_number.link │ │ ├── is_number.output │ │ ├── is_number_float.cpp │ │ ├── is_number_float.link │ │ ├── is_number_float.output │ │ ├── is_number_integer.cpp │ │ ├── is_number_integer.link │ │ ├── is_number_integer.output │ │ ├── is_number_unsigned.cpp │ │ ├── is_number_unsigned.link │ │ ├── is_number_unsigned.output │ │ ├── is_object.cpp │ │ ├── is_object.link │ │ ├── is_object.output │ │ ├── is_primitive.cpp │ │ ├── is_primitive.link │ │ ├── is_primitive.output │ │ ├── is_string.cpp │ │ ├── is_string.link │ │ ├── is_string.output │ │ ├── is_structured.cpp │ │ ├── is_structured.link │ │ ├── is_structured.output │ │ ├── items.cpp │ │ ├── items.link │ │ ├── items.output │ │ ├── iterator_wrapper.cpp │ │ ├── iterator_wrapper.link │ │ ├── iterator_wrapper.output │ │ ├── json_pointer.cpp │ │ ├── json_pointer.link │ │ ├── json_pointer.output │ │ ├── json_pointer__back.cpp │ │ ├── json_pointer__back.link │ │ ├── json_pointer__back.output │ │ ├── json_pointer__empty.cpp │ │ ├── json_pointer__empty.link │ │ ├── json_pointer__empty.output │ │ ├── json_pointer__operator_add.cpp │ │ ├── json_pointer__operator_add.link │ │ ├── json_pointer__operator_add.output │ │ ├── json_pointer__operator_add_binary.cpp │ │ ├── json_pointer__operator_add_binary.link │ │ ├── json_pointer__operator_add_binary.output │ │ ├── json_pointer__parent_pointer.cpp │ │ ├── json_pointer__parent_pointer.link │ │ ├── json_pointer__parent_pointer.output │ │ ├── json_pointer__pop_back.cpp │ │ ├── json_pointer__pop_back.link │ │ ├── json_pointer__pop_back.output │ │ ├── json_pointer__push_back.cpp │ │ ├── json_pointer__push_back.link │ │ ├── json_pointer__push_back.output │ │ ├── json_pointer__to_string.cpp │ │ ├── json_pointer__to_string.link │ │ ├── json_pointer__to_string.output │ │ ├── max_size.cpp │ │ ├── max_size.link │ │ ├── max_size.output │ │ ├── merge_patch.cpp │ │ ├── merge_patch.link │ │ ├── merge_patch.output │ │ ├── meta.cpp │ │ ├── meta.link │ │ ├── meta.output │ │ ├── object.cpp │ │ ├── object.link │ │ ├── object.output │ │ ├── operator__ValueType.cpp │ │ ├── operator__ValueType.link │ │ ├── operator__ValueType.output │ │ ├── operator__equal.cpp │ │ ├── operator__equal.link │ │ ├── operator__equal.output │ │ ├── operator__equal__nullptr_t.cpp │ │ ├── operator__equal__nullptr_t.link │ │ ├── operator__equal__nullptr_t.output │ │ ├── operator__greater.cpp │ │ ├── operator__greater.link │ │ ├── operator__greater.output │ │ ├── operator__greaterequal.cpp │ │ ├── operator__greaterequal.link │ │ ├── operator__greaterequal.output │ │ ├── operator__less.cpp │ │ ├── operator__less.link │ │ ├── operator__less.output │ │ ├── operator__lessequal.cpp │ │ ├── operator__lessequal.link │ │ ├── operator__lessequal.output │ │ ├── operator__notequal.cpp │ │ ├── operator__notequal.link │ │ ├── operator__notequal.output │ │ ├── operator__notequal__nullptr_t.cpp │ │ ├── operator__notequal__nullptr_t.link │ │ ├── operator__notequal__nullptr_t.output │ │ ├── operator__value_t.cpp │ │ ├── operator__value_t.link │ │ ├── operator__value_t.output │ │ ├── operator_deserialize.cpp │ │ ├── operator_deserialize.link │ │ ├── operator_deserialize.output │ │ ├── operator_serialize.cpp │ │ ├── operator_serialize.link │ │ ├── operator_serialize.output │ │ ├── operatorarray__key_type.cpp │ │ ├── operatorarray__key_type.link │ │ ├── operatorarray__key_type.output │ │ ├── operatorarray__key_type_const.cpp │ │ ├── operatorarray__key_type_const.link │ │ ├── operatorarray__key_type_const.output │ │ ├── operatorarray__size_type.cpp │ │ ├── operatorarray__size_type.link │ │ ├── operatorarray__size_type.output │ │ ├── operatorarray__size_type_const.cpp │ │ ├── operatorarray__size_type_const.link │ │ ├── operatorarray__size_type_const.output │ │ ├── operatorjson_pointer.cpp │ │ ├── operatorjson_pointer.link │ │ ├── operatorjson_pointer.output │ │ ├── operatorjson_pointer_const.cpp │ │ ├── operatorjson_pointer_const.link │ │ ├── operatorjson_pointer_const.output │ │ ├── other_error.cpp │ │ ├── other_error.link │ │ ├── other_error.output │ │ ├── out_of_range.cpp │ │ ├── out_of_range.link │ │ ├── out_of_range.output │ │ ├── parse__allow_exceptions.cpp │ │ ├── parse__allow_exceptions.link │ │ ├── parse__allow_exceptions.output │ │ ├── parse__array__parser_callback_t.cpp │ │ ├── parse__array__parser_callback_t.link │ │ ├── parse__array__parser_callback_t.output │ │ ├── parse__contiguouscontainer__parser_callback_t.cpp │ │ ├── parse__contiguouscontainer__parser_callback_t.link │ │ ├── parse__contiguouscontainer__parser_callback_t.output │ │ ├── parse__istream__parser_callback_t.cpp │ │ ├── parse__istream__parser_callback_t.link │ │ ├── parse__istream__parser_callback_t.output │ │ ├── parse__iteratortype__parser_callback_t.cpp │ │ ├── parse__iteratortype__parser_callback_t.link │ │ ├── parse__iteratortype__parser_callback_t.output │ │ ├── parse__string__parser_callback_t.cpp │ │ ├── parse__string__parser_callback_t.link │ │ ├── parse__string__parser_callback_t.output │ │ ├── parse_error.cpp │ │ ├── parse_error.link │ │ ├── parse_error.output │ │ ├── patch.cpp │ │ ├── patch.link │ │ ├── patch.output │ │ ├── push_back.cpp │ │ ├── push_back.link │ │ ├── push_back.output │ │ ├── push_back__initializer_list.cpp │ │ ├── push_back__initializer_list.link │ │ ├── push_back__initializer_list.output │ │ ├── push_back__object_t__value.cpp │ │ ├── push_back__object_t__value.link │ │ ├── push_back__object_t__value.output │ │ ├── rbegin.cpp │ │ ├── rbegin.link │ │ ├── rbegin.output │ │ ├── rend.cpp │ │ ├── rend.link │ │ ├── rend.output │ │ ├── sax_parse.cpp │ │ ├── sax_parse.link │ │ ├── sax_parse.output │ │ ├── size.cpp │ │ ├── size.link │ │ ├── size.output │ │ ├── swap__array_t.cpp │ │ ├── swap__array_t.link │ │ ├── swap__array_t.output │ │ ├── swap__binary_t.cpp │ │ ├── swap__binary_t.link │ │ ├── swap__binary_t.output │ │ ├── swap__object_t.cpp │ │ ├── swap__object_t.link │ │ ├── swap__object_t.output │ │ ├── swap__reference.cpp │ │ ├── swap__reference.link │ │ ├── swap__reference.output │ │ ├── swap__string_t.cpp │ │ ├── swap__string_t.link │ │ ├── swap__string_t.output │ │ ├── to_bson.cpp │ │ ├── to_bson.link │ │ ├── to_bson.output │ │ ├── to_cbor.cpp │ │ ├── to_cbor.link │ │ ├── to_cbor.output │ │ ├── to_msgpack.cpp │ │ ├── to_msgpack.link │ │ ├── to_msgpack.output │ │ ├── to_ubjson.cpp │ │ ├── to_ubjson.link │ │ ├── to_ubjson.output │ │ ├── type.cpp │ │ ├── type.link │ │ ├── type.output │ │ ├── type_error.cpp │ │ ├── type_error.link │ │ ├── type_error.output │ │ ├── type_name.cpp │ │ ├── type_name.link │ │ ├── type_name.output │ │ ├── unflatten.cpp │ │ ├── unflatten.link │ │ ├── unflatten.output │ │ ├── update.cpp │ │ ├── update.link │ │ ├── update.output │ │ ├── update__range.cpp │ │ ├── update__range.link │ │ └── update__range.output │ ├── images │ │ ├── callback_events.png │ │ ├── json_syntax_number.png │ │ ├── range-begin-end.svg │ │ └── range-rbegin-rend.svg │ ├── index.md │ ├── json.gif │ ├── mkdocs │ │ ├── Makefile │ │ ├── docs │ │ │ ├── api │ │ │ │ ├── adl_serializer.md │ │ │ │ ├── basic_json │ │ │ │ │ ├── accept.md │ │ │ │ │ ├── array.md │ │ │ │ │ ├── array_t.md │ │ │ │ │ ├── at.md │ │ │ │ │ ├── back.md │ │ │ │ │ ├── basic_json.md │ │ │ │ │ ├── begin.md │ │ │ │ │ ├── binary.md │ │ │ │ │ ├── binary_t.md │ │ │ │ │ ├── boolean_t.md │ │ │ │ │ ├── cbegin.md │ │ │ │ │ ├── cbor_tag_handler_t.md │ │ │ │ │ ├── cend.md │ │ │ │ │ ├── clear.md │ │ │ │ │ ├── contains.md │ │ │ │ │ ├── count.md │ │ │ │ │ ├── crbegin.md │ │ │ │ │ ├── crend.md │ │ │ │ │ ├── diff.md │ │ │ │ │ ├── dump.md │ │ │ │ │ ├── emplace.md │ │ │ │ │ ├── emplace_back.md │ │ │ │ │ ├── empty.md │ │ │ │ │ ├── end.md │ │ │ │ │ ├── erase.md │ │ │ │ │ ├── error_handler_t.md │ │ │ │ │ ├── exception.md │ │ │ │ │ ├── find.md │ │ │ │ │ ├── flatten.md │ │ │ │ │ ├── from_bson.md │ │ │ │ │ ├── from_cbor.md │ │ │ │ │ ├── from_msgpack.md │ │ │ │ │ ├── from_ubjson.md │ │ │ │ │ ├── front.md │ │ │ │ │ ├── get.md │ │ │ │ │ ├── get_allocator.md │ │ │ │ │ ├── get_binary.md │ │ │ │ │ ├── get_ptr.md │ │ │ │ │ ├── get_ref.md │ │ │ │ │ ├── get_to.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── input_format_t.md │ │ │ │ │ ├── insert.md │ │ │ │ │ ├── invalid_iterator.md │ │ │ │ │ ├── is_array.md │ │ │ │ │ ├── is_binary.md │ │ │ │ │ ├── is_boolean.md │ │ │ │ │ ├── is_discarded.md │ │ │ │ │ ├── is_null.md │ │ │ │ │ ├── is_number.md │ │ │ │ │ ├── is_number_float.md │ │ │ │ │ ├── is_number_integer.md │ │ │ │ │ ├── is_number_unsigned.md │ │ │ │ │ ├── is_object.md │ │ │ │ │ ├── is_primitive.md │ │ │ │ │ ├── is_string.md │ │ │ │ │ ├── is_structured.md │ │ │ │ │ ├── items.md │ │ │ │ │ ├── json_serializer.md │ │ │ │ │ ├── max_size.md │ │ │ │ │ ├── merge_patch.md │ │ │ │ │ ├── meta.md │ │ │ │ │ ├── number_float_t.md │ │ │ │ │ ├── number_integer_t.md │ │ │ │ │ ├── number_unsigned_t.md │ │ │ │ │ ├── object.md │ │ │ │ │ ├── object_comparator_t.md │ │ │ │ │ ├── object_t.md │ │ │ │ │ ├── operator+=.md │ │ │ │ │ ├── operator=.md │ │ │ │ │ ├── operator[].md │ │ │ │ │ ├── operator_ValueType.md │ │ │ │ │ ├── operator_eq.md │ │ │ │ │ ├── operator_ge.md │ │ │ │ │ ├── operator_gt.md │ │ │ │ │ ├── operator_le.md │ │ │ │ │ ├── operator_literal_json.md │ │ │ │ │ ├── operator_literal_json_pointer.md │ │ │ │ │ ├── operator_lt.md │ │ │ │ │ ├── operator_ne.md │ │ │ │ │ ├── operator_value_t.md │ │ │ │ │ ├── other_error.md │ │ │ │ │ ├── out_of_range.md │ │ │ │ │ ├── parse.md │ │ │ │ │ ├── parse_error.md │ │ │ │ │ ├── parse_event_t.md │ │ │ │ │ ├── parser_callback_t.md │ │ │ │ │ ├── patch.md │ │ │ │ │ ├── push_back.md │ │ │ │ │ ├── rbegin.md │ │ │ │ │ ├── rend.md │ │ │ │ │ ├── sax_parse.md │ │ │ │ │ ├── size.md │ │ │ │ │ ├── string_t.md │ │ │ │ │ ├── to_bson.md │ │ │ │ │ ├── to_cbor.md │ │ │ │ │ ├── to_msgpack.md │ │ │ │ │ ├── to_ubjson.md │ │ │ │ │ ├── type.md │ │ │ │ │ ├── type_error.md │ │ │ │ │ ├── type_name.md │ │ │ │ │ ├── unflatten.md │ │ │ │ │ ├── update.md │ │ │ │ │ ├── value.md │ │ │ │ │ ├── value_t.md │ │ │ │ │ └── ~basic_json.md │ │ │ │ ├── json.md │ │ │ │ ├── json_pointer.md │ │ │ │ ├── ordered_json.md │ │ │ │ └── ordered_map.md │ │ │ ├── features │ │ │ │ ├── arbitrary_types.md │ │ │ │ ├── binary_formats │ │ │ │ │ ├── bson.md │ │ │ │ │ ├── cbor.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── messagepack.md │ │ │ │ │ └── ubjson.md │ │ │ │ ├── binary_values.md │ │ │ │ ├── comments.md │ │ │ │ ├── element_access │ │ │ │ │ ├── checked_access.md │ │ │ │ │ ├── default_value.md │ │ │ │ │ ├── index.md │ │ │ │ │ └── unchecked_access.md │ │ │ │ ├── enum_conversion.md │ │ │ │ ├── iterators.md │ │ │ │ ├── json_patch.md │ │ │ │ ├── json_pointer.md │ │ │ │ ├── macros.md │ │ │ │ ├── merge_patch.md │ │ │ │ ├── object_order.md │ │ │ │ ├── parsing │ │ │ │ │ ├── index.md │ │ │ │ │ ├── parse_exceptions.md │ │ │ │ │ ├── parser_callbacks.md │ │ │ │ │ └── sax_interface.md │ │ │ │ └── types │ │ │ │ │ ├── index.md │ │ │ │ │ └── number_handling.md │ │ │ ├── home │ │ │ │ ├── code_of_conduct.md │ │ │ │ ├── design_goals.md │ │ │ │ ├── exceptions.md │ │ │ │ ├── faq.md │ │ │ │ ├── license.md │ │ │ │ ├── releases.md │ │ │ │ └── sponsors.md │ │ │ ├── hooks.py │ │ │ ├── index.md │ │ │ └── integration │ │ │ │ ├── cmake.md │ │ │ │ ├── conan │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Conanfile.txt │ │ │ │ └── example.cpp │ │ │ │ ├── example.cpp │ │ │ │ ├── index.md │ │ │ │ └── package_managers.md │ │ ├── mkdocs.yml │ │ └── requirements.txt │ ├── scripts │ │ ├── git-update-ghpages │ │ └── send_to_wandbox.py │ └── usages │ │ ├── ios.png │ │ └── macos.png ├── include │ └── nlohmann │ │ ├── adl_serializer.hpp │ │ ├── byte_container_with_subtype.hpp │ │ ├── detail │ │ ├── conversions │ │ │ ├── from_json.hpp │ │ │ ├── to_chars.hpp │ │ │ └── to_json.hpp │ │ ├── exceptions.hpp │ │ ├── hash.hpp │ │ ├── input │ │ │ ├── binary_reader.hpp │ │ │ ├── input_adapters.hpp │ │ │ ├── json_sax.hpp │ │ │ ├── lexer.hpp │ │ │ ├── parser.hpp │ │ │ └── position_t.hpp │ │ ├── iterators │ │ │ ├── internal_iterator.hpp │ │ │ ├── iter_impl.hpp │ │ │ ├── iteration_proxy.hpp │ │ │ ├── iterator_traits.hpp │ │ │ ├── json_reverse_iterator.hpp │ │ │ └── primitive_iterator.hpp │ │ ├── json_pointer.hpp │ │ ├── json_ref.hpp │ │ ├── macro_scope.hpp │ │ ├── macro_unscope.hpp │ │ ├── meta │ │ │ ├── cpp_future.hpp │ │ │ ├── detected.hpp │ │ │ ├── identity_tag.hpp │ │ │ ├── is_sax.hpp │ │ │ ├── type_traits.hpp │ │ │ └── void_t.hpp │ │ ├── output │ │ │ ├── binary_writer.hpp │ │ │ ├── output_adapters.hpp │ │ │ └── serializer.hpp │ │ ├── string_escape.hpp │ │ └── value_t.hpp │ │ ├── json.hpp │ │ ├── json_fwd.hpp │ │ ├── ordered_map.hpp │ │ └── thirdparty │ │ └── hedley │ │ ├── hedley.hpp │ │ └── hedley_undef.hpp ├── meson.build ├── nlohmann_json.natvis ├── single_include │ └── nlohmann │ │ └── json.hpp ├── test │ ├── CMakeLists.txt │ ├── Makefile │ ├── cmake_add_subdirectory │ │ ├── CMakeLists.txt │ │ └── project │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── cmake_fetch_content │ │ ├── CMakeLists.txt │ │ └── project │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── cmake_import │ │ ├── CMakeLists.txt │ │ └── project │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── cmake_import_minver │ │ ├── CMakeLists.txt │ │ └── project │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ ├── cmake_target_include_directories │ │ ├── CMakeLists.txt │ │ └── project │ │ │ ├── Bar.cpp │ │ │ ├── Bar.hpp │ │ │ ├── CMakeLists.txt │ │ │ ├── Foo.cpp │ │ │ ├── Foo.hpp │ │ │ └── main.cpp │ ├── reports │ │ ├── 2016-08-29-fuzz │ │ │ ├── exec_speed.png │ │ │ ├── fuzz.tiff │ │ │ ├── high_freq.png │ │ │ ├── index.html │ │ │ └── low_freq.png │ │ ├── 2016-09-09-nativejson_benchmark │ │ │ ├── README.md │ │ │ ├── conformance_Nlohmann (C++11).md │ │ │ ├── conformance_overall_Result.png │ │ │ ├── performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Memory_(byte).png │ │ │ ├── performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Time_(ms).png │ │ │ ├── performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_2._Stringify_Time_(ms).png │ │ │ ├── performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_3._Prettify_Time_(ms).png │ │ │ └── performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_7._Code_size_FileSize_(byte).png │ │ └── 2016-10-02-fuzz │ │ │ ├── exec_speed.png │ │ │ ├── fuzz.tiff │ │ │ ├── high_freq.png │ │ │ ├── index.html │ │ │ └── low_freq.png │ ├── src │ │ ├── fuzzer-driver_afl.cpp │ │ ├── fuzzer-parse_bson.cpp │ │ ├── fuzzer-parse_cbor.cpp │ │ ├── fuzzer-parse_json.cpp │ │ ├── fuzzer-parse_msgpack.cpp │ │ ├── fuzzer-parse_ubjson.cpp │ │ ├── test_utils.hpp │ │ ├── unit-algorithms.cpp │ │ ├── unit-allocator.cpp │ │ ├── unit-alt-string.cpp │ │ ├── unit-assert_macro.cpp │ │ ├── unit-bson.cpp │ │ ├── unit-capacity.cpp │ │ ├── unit-cbor.cpp │ │ ├── unit-class_const_iterator.cpp │ │ ├── unit-class_iterator.cpp │ │ ├── unit-class_lexer.cpp │ │ ├── unit-class_parser.cpp │ │ ├── unit-comparison.cpp │ │ ├── unit-concepts.cpp │ │ ├── unit-constructor1.cpp │ │ ├── unit-constructor2.cpp │ │ ├── unit-convenience.cpp │ │ ├── unit-conversions.cpp │ │ ├── unit-deserialization.cpp │ │ ├── unit-diagnostics.cpp │ │ ├── unit-element_access1.cpp │ │ ├── unit-element_access2.cpp │ │ ├── unit-hash.cpp │ │ ├── unit-inspection.cpp │ │ ├── unit-items.cpp │ │ ├── unit-iterators1.cpp │ │ ├── unit-iterators2.cpp │ │ ├── unit-json_patch.cpp │ │ ├── unit-json_pointer.cpp │ │ ├── unit-large_json.cpp │ │ ├── unit-merge_patch.cpp │ │ ├── unit-meta.cpp │ │ ├── unit-modifiers.cpp │ │ ├── unit-msgpack.cpp │ │ ├── unit-noexcept.cpp │ │ ├── unit-ordered_json.cpp │ │ ├── unit-ordered_map.cpp │ │ ├── unit-pointer_access.cpp │ │ ├── unit-readme.cpp │ │ ├── unit-reference_access.cpp │ │ ├── unit-regression1.cpp │ │ ├── unit-regression2.cpp │ │ ├── unit-serialization.cpp │ │ ├── unit-testsuites.cpp │ │ ├── unit-to_chars.cpp │ │ ├── unit-ubjson.cpp │ │ ├── unit-udt.cpp │ │ ├── unit-udt_macro.cpp │ │ ├── unit-unicode.cpp │ │ ├── unit-user_defined_input.cpp │ │ ├── unit-wstring.cpp │ │ └── unit.cpp │ └── thirdparty │ │ ├── Fuzzer │ │ ├── CMakeLists.txt │ │ ├── FuzzerCorpus.h │ │ ├── FuzzerCrossOver.cpp │ │ ├── FuzzerDefs.h │ │ ├── FuzzerDictionary.h │ │ ├── FuzzerDriver.cpp │ │ ├── FuzzerExtFunctions.def │ │ ├── FuzzerExtFunctions.h │ │ ├── FuzzerExtFunctionsDlsym.cpp │ │ ├── FuzzerExtFunctionsWeak.cpp │ │ ├── FuzzerExtFunctionsWeakAlias.cpp │ │ ├── FuzzerFlags.def │ │ ├── FuzzerIO.cpp │ │ ├── FuzzerIO.h │ │ ├── FuzzerIOPosix.cpp │ │ ├── FuzzerIOWindows.cpp │ │ ├── FuzzerInterface.h │ │ ├── FuzzerInternal.h │ │ ├── FuzzerLoop.cpp │ │ ├── FuzzerMain.cpp │ │ ├── FuzzerMerge.cpp │ │ ├── FuzzerMerge.h │ │ ├── FuzzerMutate.cpp │ │ ├── FuzzerMutate.h │ │ ├── FuzzerOptions.h │ │ ├── FuzzerRandom.h │ │ ├── FuzzerSHA1.cpp │ │ ├── FuzzerSHA1.h │ │ ├── FuzzerTracePC.cpp │ │ ├── FuzzerTracePC.h │ │ ├── FuzzerTraceState.cpp │ │ ├── FuzzerUtil.cpp │ │ ├── FuzzerUtil.h │ │ ├── FuzzerUtilDarwin.cpp │ │ ├── FuzzerUtilLinux.cpp │ │ ├── FuzzerUtilPosix.cpp │ │ ├── FuzzerUtilWindows.cpp │ │ ├── FuzzerValueBitMap.h │ │ ├── README.txt │ │ ├── afl │ │ │ └── afl_driver.cpp │ │ ├── build.sh │ │ ├── cxx.dict │ │ ├── standalone │ │ │ └── StandaloneFuzzTargetMain.c │ │ └── test │ │ │ ├── AFLDriverTest.cpp │ │ │ ├── AbsNegAndConstant64Test.cpp │ │ │ ├── AbsNegAndConstantTest.cpp │ │ │ ├── AccumulateAllocationsTest.cpp │ │ │ ├── BufferOverflowOnInput.cpp │ │ │ ├── CMakeLists.txt │ │ │ ├── CallerCalleeTest.cpp │ │ │ ├── CounterTest.cpp │ │ │ ├── CustomCrossOverTest.cpp │ │ │ ├── CustomMutatorTest.cpp │ │ │ ├── DSO1.cpp │ │ │ ├── DSO2.cpp │ │ │ ├── DSOTestExtra.cpp │ │ │ ├── DSOTestMain.cpp │ │ │ ├── DivTest.cpp │ │ │ ├── EmptyTest.cpp │ │ │ ├── FourIndependentBranchesTest.cpp │ │ │ ├── FullCoverageSetTest.cpp │ │ │ ├── FuzzerUnittest.cpp │ │ │ ├── InitializeTest.cpp │ │ │ ├── LeakTest.cpp │ │ │ ├── LeakTimeoutTest.cpp │ │ │ ├── LoadTest.cpp │ │ │ ├── MemcmpTest.cpp │ │ │ ├── NthRunCrashTest.cpp │ │ │ ├── NullDerefOnEmptyTest.cpp │ │ │ ├── NullDerefTest.cpp │ │ │ ├── OneHugeAllocTest.cpp │ │ │ ├── OutOfMemorySingleLargeMallocTest.cpp │ │ │ ├── OutOfMemoryTest.cpp │ │ │ ├── RepeatedBytesTest.cpp │ │ │ ├── RepeatedMemcmp.cpp │ │ │ ├── ShrinkControlFlowTest.cpp │ │ │ ├── ShrinkValueProfileTest.cpp │ │ │ ├── SignedIntOverflowTest.cpp │ │ │ ├── SimpleCmpTest.cpp │ │ │ ├── SimpleDictionaryTest.cpp │ │ │ ├── SimpleHashTest.cpp │ │ │ ├── SimpleTest.cpp │ │ │ ├── SimpleThreadedTest.cpp │ │ │ ├── SingleMemcmpTest.cpp │ │ │ ├── SingleStrcmpTest.cpp │ │ │ ├── SingleStrncmpTest.cpp │ │ │ ├── SpamyTest.cpp │ │ │ ├── StrcmpTest.cpp │ │ │ ├── StrncmpOOBTest.cpp │ │ │ ├── StrncmpTest.cpp │ │ │ ├── StrstrTest.cpp │ │ │ ├── SwapCmpTest.cpp │ │ │ ├── Switch2Test.cpp │ │ │ ├── SwitchTest.cpp │ │ │ ├── ThreadedLeakTest.cpp │ │ │ ├── ThreadedTest.cpp │ │ │ ├── TimeoutEmptyTest.cpp │ │ │ ├── TimeoutTest.cpp │ │ │ ├── TraceMallocTest.cpp │ │ │ ├── UninstrumentedTest.cpp │ │ │ ├── afl-driver-extra-stats.test │ │ │ ├── afl-driver-stderr.test │ │ │ ├── caller-callee.test │ │ │ ├── coverage.test │ │ │ ├── dict1.txt │ │ │ ├── dump_coverage.test │ │ │ ├── fuzzer-customcrossover.test │ │ │ ├── fuzzer-custommutator.test │ │ │ ├── fuzzer-dict.test │ │ │ ├── fuzzer-dirs.test │ │ │ ├── fuzzer-fdmask.test │ │ │ ├── fuzzer-finalstats.test │ │ │ ├── fuzzer-flags.test │ │ │ ├── fuzzer-jobs.test │ │ │ ├── fuzzer-leak.test │ │ │ ├── fuzzer-oom-with-profile.test │ │ │ ├── fuzzer-oom.test │ │ │ ├── fuzzer-printcovpcs.test │ │ │ ├── fuzzer-runs.test │ │ │ ├── fuzzer-seed.test │ │ │ ├── fuzzer-segv.test │ │ │ ├── fuzzer-singleinputs.test │ │ │ ├── fuzzer-threaded.test │ │ │ ├── fuzzer-timeout.test │ │ │ ├── fuzzer-traces-hooks.test │ │ │ ├── fuzzer-ubsan.test │ │ │ ├── fuzzer.test │ │ │ ├── hi.txt │ │ │ ├── lit.cfg │ │ │ ├── lit.site.cfg.in │ │ │ ├── merge.test │ │ │ ├── minimize_crash.test │ │ │ ├── no-coverage │ │ │ └── CMakeLists.txt │ │ │ ├── repeated-bytes.test │ │ │ ├── shrink.test │ │ │ ├── simple-cmp.test │ │ │ ├── standalone.test │ │ │ ├── swap-cmp.test │ │ │ ├── trace-malloc.test │ │ │ ├── ubsan │ │ │ └── CMakeLists.txt │ │ │ ├── ulimit.test │ │ │ ├── uninstrumented │ │ │ └── CMakeLists.txt │ │ │ ├── unit │ │ │ ├── lit.cfg │ │ │ └── lit.site.cfg.in │ │ │ ├── value-profile-cmp.test │ │ │ ├── value-profile-cmp2.test │ │ │ ├── value-profile-cmp3.test │ │ │ ├── value-profile-cmp4.test │ │ │ ├── value-profile-div.test │ │ │ ├── value-profile-load.test │ │ │ ├── value-profile-mem.test │ │ │ ├── value-profile-set.test │ │ │ ├── value-profile-strcmp.test │ │ │ ├── value-profile-strncmp.test │ │ │ └── value-profile-switch.test │ │ ├── doctest │ │ ├── LICENSE.txt │ │ ├── doctest.h │ │ └── doctest_compatibility.h │ │ ├── fifo_map │ │ ├── LICENSE.MIT │ │ └── fifo_map.hpp │ │ └── imapdl │ │ ├── filterbr.py │ │ └── gpl-3.0.txt ├── third_party │ ├── amalgamate │ │ ├── CHANGES.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── amalgamate.py │ │ └── config.json │ ├── cpplint │ │ ├── LICENSE │ │ ├── README.rst │ │ ├── cpplint.py │ │ └── update.sh │ ├── gdb_pretty_printer │ │ ├── README.md │ │ └── nlohmann-json.py │ └── macro_builder │ │ └── main.cpp └── wsjcpp.yml └── sandbird ├── CMakeLists.txt ├── LICENSE ├── README.md ├── example ├── build.py ├── hello.c ├── input.c └── static.c └── src ├── sandbird.c └── sandbird.h /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | project(server DESCRIPTION "core of project beef's gtps" VERSION 0.1) 3 | 4 | set(CMAKE_CXX_STANDARD 17) 5 | set(CMAKE_C_STANDARD 11) 6 | 7 | set(CPR_BUILD_TESTS OFF) 8 | set(JSON_BuildTests OFF) 9 | 10 | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) 11 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) 12 | 13 | add_subdirectory(src) 14 | add_subdirectory(vendor) 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | server in C++ 2 | -------------------------------------------------------------------------------- /data/cache/audio/mp3/a1xj1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/mp3/a1xj1.mp3 -------------------------------------------------------------------------------- /data/cache/audio/mp3/about_theme.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/mp3/about_theme.mp3 -------------------------------------------------------------------------------- /data/cache/audio/mp3/panflutemelody.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/mp3/panflutemelody.mp3 -------------------------------------------------------------------------------- /data/cache/audio/mp3/ricknotes.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/mp3/ricknotes.mp3 -------------------------------------------------------------------------------- /data/cache/audio/mp3/rickroll.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/mp3/rickroll.mp3 -------------------------------------------------------------------------------- /data/cache/audio/mp3/titled.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/mp3/titled.mp3 -------------------------------------------------------------------------------- /data/cache/audio/mp3/wellerman.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/mp3/wellerman.mp3 -------------------------------------------------------------------------------- /data/cache/audio/ogg/a1xj1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/ogg/a1xj1.ogg -------------------------------------------------------------------------------- /data/cache/audio/ogg/about_theme.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/ogg/about_theme.ogg -------------------------------------------------------------------------------- /data/cache/audio/ogg/panflutemelody.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/ogg/panflutemelody.ogg -------------------------------------------------------------------------------- /data/cache/audio/ogg/ricknotes.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/ogg/ricknotes.ogg -------------------------------------------------------------------------------- /data/cache/audio/ogg/rickroll.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/ogg/rickroll.ogg -------------------------------------------------------------------------------- /data/cache/audio/ogg/titled.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/ogg/titled.ogg -------------------------------------------------------------------------------- /data/cache/audio/ogg/wellerman.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/audio/ogg/wellerman.ogg -------------------------------------------------------------------------------- /data/cache/game/beef_tiles1.rttex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/game/beef_tiles1.rttex -------------------------------------------------------------------------------- /data/cache/game/beef_wearables1.rttex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/game/beef_wearables1.rttex -------------------------------------------------------------------------------- /data/cache/game/beef_wearables1_icon.rttex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/game/beef_wearables1_icon.rttex -------------------------------------------------------------------------------- /data/cache/interface/large/beef_banner.rttex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/interface/large/beef_banner.rttex -------------------------------------------------------------------------------- /data/cache/interface/large/news_banner.rttex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/cache/interface/large/news_banner.rttex -------------------------------------------------------------------------------- /data/items.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/items.dat -------------------------------------------------------------------------------- /data/items_back.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/items_back.dat -------------------------------------------------------------------------------- /data/players/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/players/.gitkeep -------------------------------------------------------------------------------- /data/srv_data.bin: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/userids/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/userids/.gitkeep -------------------------------------------------------------------------------- /data/worlds/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/data/worlds/.gitkeep -------------------------------------------------------------------------------- /src/algorithm/lock.hh: -------------------------------------------------------------------------------- 1 | #ifndef __ALGORITHM__LOCK__HH__ 2 | #define __ALGORITHM__LOCK__HH__ 3 | 4 | #include "world/world.hh" 5 | #include "player/player.hh" 6 | 7 | namespace beef::algorithm::lock 8 | { 9 | void apply(player* player_, world* world_, gameupdatepacket* packet, bool reapply); 10 | } 11 | 12 | #endif // __ALGORITHM__LOCK__HH__ -------------------------------------------------------------------------------- /src/commands/ban/ban.hh: -------------------------------------------------------------------------------- 1 | #ifndef __COMMANDS__BAN__BAN__HH__ 2 | #define __COMMANDS__BAN__BAN__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::commands 7 | { 8 | void ban(events::event_context& ctx); 9 | } 10 | 11 | #endif // __COMMANDS__BAN__BAN__HH__ 12 | -------------------------------------------------------------------------------- /src/commands/clear/clear.hh: -------------------------------------------------------------------------------- 1 | #ifndef __COMMANDS_CLEAR__CLEAR_HH__ 2 | #define __COMMANDS_CLEAR__CLEAR_HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::commands 7 | { 8 | void clear(events::event_context& ctx); 9 | } 10 | 11 | #endif // __COMMANDS_CLEAR__CLEAR_HH__ 12 | -------------------------------------------------------------------------------- /src/commands/get/get.hh: -------------------------------------------------------------------------------- 1 | #ifndef __COMMANDS_GET__GET__HH__ 2 | #define __COMMANDS_GET__GET__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::commands 7 | { 8 | void get(events::event_context& ctx); 9 | } 10 | 11 | #endif // __COMMANDS_GET__GET__HH__ 12 | -------------------------------------------------------------------------------- /src/commands/help/help.cc: -------------------------------------------------------------------------------- 1 | #include "help.hh" 2 | 3 | #include "events/event_manager.hh" 4 | 5 | namespace beef::commands 6 | { 7 | void help(events::event_context& ctx) 8 | { 9 | if (ctx.m_player->m_current_world == "EXIT") return; 10 | 11 | std::string str = ">>> Commands: /help, /clear, /get, /nick, /role"; 12 | ctx.m_player->send_log(str); 13 | 14 | /*events::event_manager* manager = static_cast(ctx.m_data2); 15 | for (const auto& command : manager->get()) 16 | { 17 | text::quick_hash(command.first); 18 | }*/ 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/commands/help/help.hh: -------------------------------------------------------------------------------- 1 | #ifndef __COMMANDS__HELP__HELP__HH_ 2 | #define __COMMANDS__HELP__HELP__HH_ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::commands 7 | { 8 | void help(events::event_context& ctx); 9 | } 10 | 11 | #endif // __COMMANDS__HELP__HELP__HH_ 12 | -------------------------------------------------------------------------------- /src/commands/nick/nick.hh: -------------------------------------------------------------------------------- 1 | #ifndef __COMMANDS__NICK__NICK__HH__ 2 | #define __COMMANDS__NICK__NICK__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::commands 7 | { 8 | void nick(events::event_context& ctx); 9 | } 10 | 11 | #endif // __COMMANDS__NICK__NICK__HH__ -------------------------------------------------------------------------------- /src/commands/role/role.hh: -------------------------------------------------------------------------------- 1 | #ifndef __COMMANDS__ROLE__ROLE__HH__ 2 | #define __COMMANDS__ROLE__ROLE__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::commands 7 | { 8 | void role(events::event_context& ctx); 9 | } 10 | 11 | #endif // __COMMANDS__ROLE__ROLE__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/action.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED__ACTION__ACTION__HH__ 2 | #define __EVENTS_REGISTERED__ACTION__ACTION__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void action(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED__ACTION__ACTION__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/dialog_return/dialog_return.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED__ACTION__DIALOG_RETURN__HH__ 2 | #define __EVENTS_REGISTERED__ACTION__DIALOG_RETURN__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | extern std::vector cache; // to free, to make it faster - kevz :D 9 | void dialog_return(event_context& ctx); 10 | } 11 | 12 | #endif // __EVENTS_REGISTERED__ACTION__DIALOG_RETURN__HH__ 13 | -------------------------------------------------------------------------------- /src/events/registered/action/drop/drop.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED__ACTION__DROP__HH__ 2 | #define __EVENTS_REGISTERED__ACTION__DROP__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void drop(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED__ACTION__DROP__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/enter_game/enter_game.cc: -------------------------------------------------------------------------------- 1 | #include "enter_game.hh" 2 | 3 | #include "constants/dialogs.hh" 4 | 5 | namespace beef::events::registered 6 | { 7 | void enter_game(event_context& ctx) 8 | { 9 | ctx.m_player->send_inventory(); 10 | ctx.m_player->send_log(fmt::format("Where would you like to go? (`w{}`` others online)", ctx.m_peer->host->connectedPeers)); 11 | 12 | ctx.m_player->send_variant(variantlist { "OnRequestWorldSelectMenu" }); 13 | ctx.m_player->send_variant(variantlist { "OnDialogRequest", dialogs::gazette }); 14 | } 15 | } -------------------------------------------------------------------------------- /src/events/registered/action/enter_game/enter_game.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_ACTION__ENTER_GAME__ENTER_GAME__HH__ 2 | #define __EVENTS_REGISTERED_ACTION__ENTER_GAME__ENTER_GAME__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void enter_game(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_ACTION__ENTER_GAME__ENTER_GAME__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/input/input.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_ACTION__INPUT__INPUT__HH__ 2 | #define __EVENTS_REGISTERED_ACTION__INPUT__INPUT__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void input(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_ACTION__INPUT__INPUT__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/join_request/join_request.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_ACTION__JOIN_REQUEST__JOIN_REQUEST__HH__ 2 | #define __EVENTS_REGISTERED_ACTION__JOIN_REQUEST__JOIN_REQUEST__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void join_request(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_ACTION__JOIN_REQUEST__JOIN_REQUEST__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/quit/quit.cc: -------------------------------------------------------------------------------- 1 | #include "quit.hh" 2 | 3 | namespace beef::events::registered 4 | { 5 | void quit(event_context& ctx) 6 | { 7 | ctx.m_player->disconnect_peer(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/events/registered/action/quit/quit.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED__ACTION__QUIT__QUIT__HH__ 2 | #define __EVENTS_REGISTERED__ACTION__QUIT__QUIT__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void quit(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED__ACTION__QUIT__QUIT__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/quit_to_exit/quit_to_exit.cc: -------------------------------------------------------------------------------- 1 | #include "quit_to_exit.hh" 2 | 3 | namespace beef::events::registered 4 | { 5 | void quit_to_exit(event_context& ctx) 6 | { 7 | ctx.m_manager->quit_to_exit(ctx.m_player, false); 8 | 9 | ctx.m_player->send_log(fmt::format("Where would you like to go? (`w{}`` others online)", ctx.m_peer->host->connectedPeers)); 10 | } 11 | } -------------------------------------------------------------------------------- /src/events/registered/action/quit_to_exit/quit_to_exit.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_ACTION___QUIT_TO_EXIT__QUIT_TO_EXIT__HH__ 2 | #define __EVENTS_REGISTERED_ACTION___QUIT_TO_EXIT__QUIT_TO_EXIT__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void quit_to_exit(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_ACTION___QUIT_TO_EXIT__QUIT_TO_EXIT__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/refresh_item_data/refresh_item_data.cc: -------------------------------------------------------------------------------- 1 | #include "refresh_item_data.hh" 2 | 3 | namespace beef::events::registered 4 | { 5 | void refresh_item_data(event_context& ctx) 6 | { 7 | ctx.m_player->send_log("One moment, updating item data..."); 8 | ctx.m_player->send_packet(itemdb::get_packet(), 4 + 56 + reinterpret_cast(itemdb::get_packet() + 4)->m_data_size, ENET_PACKET_FLAG_NO_ALLOCATE | ENET_PACKET_FLAG_RELIABLE); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/events/registered/action/refresh_item_data/refresh_item_data.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS__REGISTERED__ACTIONS__REFRESH_ITEM_DATA__REFRESH_ITEM_DATA__HH__ 2 | #define __EVENTS__REGISTERED__ACTIONS__REFRESH_ITEM_DATA__REFRESH_ITEM_DATA__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void refresh_item_data(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS__REGISTERED__ACTIONS__REFRESH_ITEM_DATA__REFRESH_ITEM_DATA__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/respawn/respawn.cc: -------------------------------------------------------------------------------- 1 | #include "respawn.hh" 2 | 3 | namespace beef::events::registered 4 | { 5 | void respawn(event_context& ctx) 6 | { 7 | if (ctx.m_player->m_current_world == "EXIT" || !ctx.m_player->m_logged_in || ctx.m_player->m_guest) return; 8 | 9 | world* world_; 10 | if (!ctx.m_manager->get_world(ctx.m_player->m_current_world, &world_)) 11 | { 12 | ctx.m_player->send_log("`4Invalid world``"); 13 | return; 14 | } 15 | 16 | world_->respawn_player(ctx.m_player, false); 17 | } 18 | } -------------------------------------------------------------------------------- /src/events/registered/action/respawn/respawn.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS__REGISTERED__ACTIONS__RESPAWN__RESPAWN__HH__ 2 | #define __EVENTS__REGISTERED__ACTIONS__RESPAWN__RESPAWN__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void respawn(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS__REGISTERED__ACTIONS__RESPAWN__RESPAWN__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/action/respawn_spike/respawn_spike.cc: -------------------------------------------------------------------------------- 1 | #include "respawn_spike.hh" 2 | 3 | namespace beef::events::registered 4 | { 5 | void respawn_spike(event_context& ctx) 6 | { 7 | if (ctx.m_player->m_current_world == "EXIT" || !ctx.m_player->m_logged_in || ctx.m_player->m_guest) return; 8 | 9 | world* world_; 10 | if (!ctx.m_manager->get_world(ctx.m_player->m_current_world, &world_)) 11 | { 12 | ctx.m_player->send_log("`4Invalid world``"); 13 | return; 14 | } 15 | 16 | world_->respawn_player(ctx.m_player, true); 17 | } 18 | } -------------------------------------------------------------------------------- /src/events/registered/action/respawn_spike/respawn_spike.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS__REGISTERED__ACTIONS__RESPAWN_SPIKE__RESPAWN_SPIKE__HH__ 2 | #define __EVENTS__REGISTERED__ACTIONS__RESPAWN_SPIKE__RESPAWN_SPIKE__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void respawn_spike(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS__REGISTERED__ACTIONS__RESPAWN_SPIKE__RESPAWN_SPIKE__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/tank/icon_state/icon_state.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_TANK__ICON_STATE__ICON_STATE__HH__ 2 | #define __EVENTS_REGISTERED_TANK__ICON_STATE__ICON_STATE__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void icon_state(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_TANK__ICON_STATE__ICON_STATE__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/tank/item/activate/activate.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_TANK__ITEM_ACTIVATE__HH__ 2 | #define __EVENTS_REGISTERED_TANK__ITEM_ACTIVATE__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void item_activate(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_TANK__WEAR__WEAR__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/tank/item/activate_object/activate_object.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_TANK__ITEM_ACTIVATE_OBJECT__HH__ 2 | #define __EVENTS_REGISTERED_TANK__ITEM_ACTIVATE_OBJECT__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void item_activate_object(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_TANK__WEAR__WEAR__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/tank/state/state.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_TANK__STATE__STATE__HH__ 2 | #define __EVENTS_REGISTERED_TANK__STATE__STATE__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void state(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_TANK__STATE__STATE__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/tank/tile/activate/activate.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_TANK__TILE_ACTIVATE__HH__ 2 | #define __EVENTS_REGISTERED_TANK__TILE_ACTIVATE__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void tile_activate(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_TANK__WEAR__WEAR__HH__ 12 | -------------------------------------------------------------------------------- /src/events/registered/tank/tile/change/change.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS__REGISTERED__TANK__TILE__CHANGE__CHANGE__HH__ 2 | #define __EVENTS__REGISTERED__TANK__TILE__CHANGE__CHANGE__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void tile_change(event_context& ctx); 9 | void add_objects_when_breaking_block(player* player_, world* world_, tile* tile_, const math::vec2& position); 10 | void add_objects_when_breaking_tree(player* player_, world* world_, tile* tile_, const math::vec2& position); 11 | } 12 | 13 | #endif // __EVENTS__REGISTERED__TANK__TILE__CHANGE__CHANGE__HH__ 14 | -------------------------------------------------------------------------------- /src/events/registered/text/growid/growid.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_TEXT__GROWID__HH__ 2 | #define __EVENTS_REGISTERED_TEXT__GROWID__HH__ 3 | 4 | #include 5 | 6 | #include "events/event_context.hh" 7 | 8 | namespace beef::events::registered 9 | { 10 | void growid(event_context& ctx); 11 | } 12 | 13 | #endif // __EVENTS_REGISTERED_TEXT__GROWID__HH__ 14 | -------------------------------------------------------------------------------- /src/events/registered/text/guest/guest.cc: -------------------------------------------------------------------------------- 1 | #include "guest.hh" 2 | 3 | #include "constants/dialogs.hh" 4 | #include "packet/variant.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void guest(event_context& ctx) 9 | { 10 | ctx.m_player->send_variant(variantlist { "OnRequestWorldSelectMenu" }); 11 | ctx.m_player->send_variant(variantlist { 12 | "OnDialogRequest", 13 | dialogs::register_dialog 14 | }); 15 | } 16 | } -------------------------------------------------------------------------------- /src/events/registered/text/guest/guest.hh: -------------------------------------------------------------------------------- 1 | #ifndef __EVENTS_REGISTERED_TEXT__GUEST__HH__ 2 | #define __EVENTS_REGISTERED_TEXT__GUEST__HH__ 3 | 4 | #include "events/event_context.hh" 5 | 6 | namespace beef::events::registered 7 | { 8 | void guest(event_context& ctx); 9 | } 10 | 11 | #endif // __EVENTS_REGISTERED_TEXT__GUEST__HH__ 12 | -------------------------------------------------------------------------------- /src/http/http.hh: -------------------------------------------------------------------------------- 1 | #ifndef __HTTP__HTTP__HH__ 2 | #define __HTTP__HTTP__HH__ 3 | 4 | #if 0 5 | #include 6 | 7 | #include 8 | 9 | namespace beef::http 10 | { 11 | int handler(sb_Event* e); 12 | 13 | void serve(std::atomic& running); 14 | } 15 | #endif 16 | 17 | #endif // __HTTP__HTTP__HH__ 18 | -------------------------------------------------------------------------------- /src/itemdb/item_material.hh: -------------------------------------------------------------------------------- 1 | #ifndef __ITEMDB__ITEM_MATERIAL__HH__ 2 | #define __ITEMDB__ITEM_MATERIAL__HH__ 3 | 4 | namespace beef 5 | { 6 | enum 7 | { 8 | ITEMMATERIAL_WOOD, 9 | ITEMMATERIAL_GLASS, 10 | ITEMMATERIAL_ROCK, 11 | ITEMMATERIAL_METAL 12 | }; 13 | } 14 | 15 | #endif // __ITEMDB__ITEM_MATERIAL__HH__ 16 | -------------------------------------------------------------------------------- /src/math/vec2.hh: -------------------------------------------------------------------------------- 1 | #ifndef __MATH__VEC2__HH__ 2 | #define __MATH__VEC2__HH__ 3 | 4 | namespace beef::math 5 | { 6 | struct vec2 7 | { 8 | float m_x, m_y; 9 | 10 | vec2(float x, float y) 11 | : m_x(x), m_y(y) 12 | { 13 | } 14 | }; 15 | } 16 | 17 | #endif // __MATH__VEC2__HH__ 18 | -------------------------------------------------------------------------------- /src/math/vec2i.hh: -------------------------------------------------------------------------------- 1 | #ifndef __MATH__VEC2I_HH__ 2 | #define __MATH__VEC2I_HH__ 3 | 4 | namespace beef::math 5 | { 6 | struct vec2i 7 | { 8 | int m_x, m_y; 9 | 10 | vec2i(int x, int y) 11 | : m_x(x), m_y(y) 12 | { 13 | } 14 | 15 | bool operator==(const vec2i& other) 16 | { 17 | return m_x == other.m_x && m_y == other.m_y; 18 | } 19 | }; 20 | } 21 | 22 | #endif // __MATH__VEC2I_HH__ 23 | -------------------------------------------------------------------------------- /src/math/vec3.hh: -------------------------------------------------------------------------------- 1 | #ifndef __MATH__VEC3__HH__ 2 | #define __MATH__VEC3__HH__ 3 | 4 | namespace beef::math 5 | { 6 | struct vec3 7 | { 8 | float m_x, m_y, m_z; 9 | 10 | vec3(float x, float y, float z) 11 | : m_x(x), m_y(y), m_z(z) 12 | { 13 | } 14 | 15 | vec3(int x, int y, int z) 16 | { 17 | m_x = static_cast(x); 18 | m_y = static_cast(y); 19 | m_z = static_cast(z); 20 | } 21 | }; 22 | } 23 | 24 | #endif // __MATH__VEC2__HH__ 25 | -------------------------------------------------------------------------------- /src/player/clothing.hh: -------------------------------------------------------------------------------- 1 | #ifndef __PLAYER__CLOTHING__HH__ 2 | #define __PLAYER__CLOTHING__HH__ 3 | 4 | namespace beef 5 | { 6 | struct clothing 7 | { 8 | int m_hair = 0; 9 | int m_shirt = 0; 10 | int m_pants = 0; 11 | int m_feet = 0; 12 | int m_face = 0; 13 | int m_hand = 0; 14 | int m_back = 0; 15 | int m_mask = 0; 16 | int m_necklace = 0; 17 | int m_ances = 0; 18 | }; 19 | } 20 | 21 | #endif // __PLAYER__CLOTHING__HH__ 22 | -------------------------------------------------------------------------------- /src/player/inventory.hh: -------------------------------------------------------------------------------- 1 | #ifndef __PLAYER__INVENTORY__HH__ 2 | #define __PLAYER__INVENTORY__HH__ 3 | 4 | #include 5 | #include 6 | 7 | namespace beef 8 | { 9 | struct inventory 10 | { 11 | int m_size = 20; 12 | std::map m_items; 13 | }; 14 | } 15 | 16 | #endif // __PLAYER__INVENTORY__HH__ 17 | -------------------------------------------------------------------------------- /src/utils/io.hh: -------------------------------------------------------------------------------- 1 | #ifndef __UTILS__IO__HH__ 2 | #define __UTILS__IO__HH__ 3 | 4 | #include 5 | #include 6 | 7 | namespace beef::io 8 | { 9 | void* read_all_bytes(const std::string_view& filename, uintmax_t& filesize) noexcept; 10 | void write_all_bytes(const std::string_view& filename, const void* data, uintmax_t data_size) noexcept; 11 | 12 | bool create_symlink(const char* linkName, const char* file) noexcept; 13 | bool create_link(const char* linkName, const char* file) noexcept; 14 | } 15 | 16 | #endif // __UTILS__IO__HH__ 17 | -------------------------------------------------------------------------------- /src/utils/time.hh: -------------------------------------------------------------------------------- 1 | #ifndef __UTILS__TIME__HH__ 2 | #define __UTILS__TIME__HH__ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | 10 | namespace beef 11 | { 12 | using clock = std::chrono::high_resolution_clock; 13 | using time_point = clock::time_point; 14 | 15 | namespace time 16 | { 17 | std::string to_string(const std::chrono::seconds& time) noexcept; 18 | } 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /src/world/world_object.hh: -------------------------------------------------------------------------------- 1 | #ifndef __WORLD__WORLD_OBJECT__HH__ 2 | #define __WORLD__WORLD_OBJECT__HH__ 3 | 4 | #include "math/vec2.hh" 5 | 6 | namespace beef 7 | { 8 | enum 9 | { 10 | OBJECT_CHANGE_TYPE_COLLECT = 0, 11 | OBJECT_CHANGE_TYPE_ADD = -1, 12 | OBJECT_CHANGE_TYPE_REMOVE = -2, 13 | OBJECT_CHANGE_TYPE_MODIFY = -3, 14 | }; 15 | 16 | struct world_object 17 | { 18 | short m_item_id = 0; 19 | uint8_t m_flags = 0; 20 | uint8_t m_item_amount = 0; 21 | 22 | math::vec2 m_pos = { 0, 0 }; 23 | }; 24 | } 25 | 26 | #endif -------------------------------------------------------------------------------- /vendor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | 3 | add_subdirectory(enet) 4 | add_subdirectory(fmt) 5 | add_subdirectory(json) 6 | add_subdirectory(sandbird) -------------------------------------------------------------------------------- /vendor/enet/README: -------------------------------------------------------------------------------- 1 | Please visit the ENet homepage at http://enet.bespin.org for installation 2 | and usage instructions. 3 | 4 | If you obtained this package from github, the quick description on how to build 5 | is: 6 | 7 | # Generate the build system. 8 | 9 | autoreconf -vfi 10 | 11 | # Compile and install the library. 12 | 13 | ./configure && make && make install 14 | 15 | 16 | -------------------------------------------------------------------------------- /vendor/enet/include/enet/time.h: -------------------------------------------------------------------------------- 1 | /** 2 | @file time.h 3 | @brief ENet time constants and macros 4 | */ 5 | #ifndef __ENET_TIME_H__ 6 | #define __ENET_TIME_H__ 7 | 8 | #define ENET_TIME_OVERFLOW 86400000 9 | 10 | #define ENET_TIME_LESS(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW) 11 | #define ENET_TIME_GREATER(a, b) ((b) - (a) >= ENET_TIME_OVERFLOW) 12 | #define ENET_TIME_LESS_EQUAL(a, b) (! ENET_TIME_GREATER (a, b)) 13 | #define ENET_TIME_GREATER_EQUAL(a, b) (! ENET_TIME_LESS (a, b)) 14 | 15 | #define ENET_TIME_DIFFERENCE(a, b) ((a) - (b) >= ENET_TIME_OVERFLOW ? (b) - (a) : (a) - (b)) 16 | 17 | #endif /* __ENET_TIME_H__ */ 18 | 19 | -------------------------------------------------------------------------------- /vendor/enet/include/enet/types.h: -------------------------------------------------------------------------------- 1 | /** 2 | @file types.h 3 | @brief type definitions for ENet 4 | */ 5 | #ifndef __ENET_TYPES_H__ 6 | #define __ENET_TYPES_H__ 7 | 8 | typedef unsigned char enet_uint8; /**< unsigned 8-bit type */ 9 | typedef unsigned short enet_uint16; /**< unsigned 16-bit type */ 10 | typedef unsigned int enet_uint32; /**< unsigned 32-bit type */ 11 | 12 | #endif /* __ENET_TYPES_H__ */ 13 | 14 | -------------------------------------------------------------------------------- /vendor/enet/include/enet/utility.h: -------------------------------------------------------------------------------- 1 | /** 2 | @file utility.h 3 | @brief ENet utility header 4 | */ 5 | #ifndef __ENET_UTILITY_H__ 6 | #define __ENET_UTILITY_H__ 7 | 8 | #define ENET_MAX(x, y) ((x) > (y) ? (x) : (y)) 9 | #define ENET_MIN(x, y) ((x) < (y) ? (x) : (y)) 10 | #define ENET_DIFFERENCE(x, y) ((x) < (y) ? (y) - (x) : (x) - (y)) 11 | 12 | #endif /* __ENET_UTILITY_H__ */ 13 | 14 | -------------------------------------------------------------------------------- /vendor/enet/libenet.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: @PACKAGE_NAME@ 7 | Description: Low-latency UDP networking library supporting optional reliability 8 | Version: @PACKAGE_VERSION@ 9 | Cflags: -I${includedir} 10 | Libs: -L${libdir} -lenet 11 | -------------------------------------------------------------------------------- /vendor/enet/m4/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/enet/m4/.keep -------------------------------------------------------------------------------- /vendor/fmt/.clang-format: -------------------------------------------------------------------------------- 1 | # Run manually to reformat a file: 2 | # clang-format -i --style=file 3 | Language: Cpp 4 | BasedOnStyle: Google 5 | IndentPPDirectives: AfterHash 6 | IndentCaseLabels: false 7 | AlwaysBreakTemplateDeclarations: false 8 | DerivePointerAlignment: false 9 | -------------------------------------------------------------------------------- /vendor/fmt/.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /vendor/fmt/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | .vs/ 3 | 4 | *.iml 5 | .idea/ 6 | .externalNativeBuild/ 7 | .gradle/ 8 | gradle/ 9 | gradlew* 10 | local.properties 11 | build/ 12 | support/.cxx 13 | 14 | bin/ 15 | /_CPack_Packages 16 | /CMakeScripts 17 | /doc/doxyxml 18 | /doc/html 19 | /doc/node_modules 20 | virtualenv 21 | /Testing 22 | /install_manifest.txt 23 | *~ 24 | *.a 25 | *.so* 26 | *.xcodeproj 27 | *.zip 28 | cmake_install.cmake 29 | CPack*.cmake 30 | fmt-*.cmake 31 | CTestTestfile.cmake 32 | CMakeCache.txt 33 | CMakeFiles 34 | FMT.build 35 | Makefile 36 | run-msbuild.bat 37 | fmt.pc 38 | -------------------------------------------------------------------------------- /vendor/fmt/doc/_static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/fmt/doc/_static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /vendor/fmt/doc/_static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/fmt/doc/_static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /vendor/fmt/doc/_static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/fmt/doc/_static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /vendor/fmt/doc/basic-bootstrap/README: -------------------------------------------------------------------------------- 1 | Sphinx basic theme with Bootstrap support. Modifications are kept to 2 | a minimum to simplify integration in case of changes to Sphinx theming. 3 | -------------------------------------------------------------------------------- /vendor/fmt/doc/basic-bootstrap/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = basic 3 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover { 6 | background-color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | } 10 | &:first-child { 11 | > a, 12 | > span { 13 | .border-left-radius(@border-radius); 14 | } 15 | } 16 | &:last-child { 17 | > a, 18 | > span { 19 | .border-right-radius(@border-radius); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover { 6 | color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /vendor/fmt/doc/bootstrap/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/fmt/doc/contents.rst: -------------------------------------------------------------------------------- 1 | ######## 2 | Contents 3 | ######## 4 | 5 | .. toctree:: 6 | :maxdepth: 2 7 | 8 | usage 9 | api 10 | syntax 11 | -------------------------------------------------------------------------------- /vendor/fmt/include/fmt/locale.h: -------------------------------------------------------------------------------- 1 | #include "xchar.h" 2 | #warning fmt/locale.h is deprecated, include fmt/format.h or fmt/xchar.h instead 3 | -------------------------------------------------------------------------------- /vendor/fmt/support/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_MODULE := fmt_static 5 | LOCAL_MODULE_FILENAME := libfmt 6 | 7 | LOCAL_SRC_FILES := ../src/format.cc 8 | 9 | LOCAL_C_INCLUDES := $(LOCAL_PATH) 10 | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) 11 | 12 | LOCAL_CFLAGS += -std=c++11 -fexceptions 13 | 14 | include $(BUILD_STATIC_LIBRARY) 15 | 16 | -------------------------------------------------------------------------------- /vendor/fmt/support/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor/fmt/support/README: -------------------------------------------------------------------------------- 1 | This directory contains build support files such as 2 | 3 | * CMake modules 4 | * Build scripts 5 | -------------------------------------------------------------------------------- /vendor/fmt/support/cmake/FindSetEnv.cmake: -------------------------------------------------------------------------------- 1 | # A CMake script to find SetEnv.cmd. 2 | 3 | find_program(WINSDK_SETENV NAMES SetEnv.cmd 4 | PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]/bin") 5 | if (WINSDK_SETENV AND PRINT_PATH) 6 | execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${WINSDK_SETENV}") 7 | endif () 8 | -------------------------------------------------------------------------------- /vendor/fmt/support/cmake/fmt-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include(${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake) 4 | check_required_components(fmt) 5 | -------------------------------------------------------------------------------- /vendor/fmt/support/cmake/fmt.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@libdir_for_pc_file@ 4 | includedir=@includedir_for_pc_file@ 5 | 6 | Name: fmt 7 | Description: A modern formatting library 8 | Version: @FMT_VERSION@ 9 | Libs: -L${libdir} -l@FMT_LIB_NAME@ 10 | Cflags: -I${includedir} 11 | 12 | -------------------------------------------------------------------------------- /vendor/fmt/support/rtd/conf.py: -------------------------------------------------------------------------------- 1 | # Sphinx configuration for readthedocs. 2 | 3 | import os, sys 4 | 5 | master_doc = 'index' 6 | html_theme = 'theme' 7 | html_theme_path = ["."] 8 | -------------------------------------------------------------------------------- /vendor/fmt/support/rtd/index.rst: -------------------------------------------------------------------------------- 1 | If you are not redirected automatically, follow the 2 | `link to the fmt documentation `_. 3 | -------------------------------------------------------------------------------- /vendor/fmt/support/rtd/theme/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "basic/layout.html" %} 2 | 3 | {% block extrahead %} 4 | 5 | 6 | 9 | Page Redirection 10 | {% endblock %} 11 | 12 | {% block document %} 13 | If you are not redirected automatically, follow the link to the fmt documentation. 14 | {% endblock %} 15 | 16 | {% block footer %} 17 | {% endblock %} 18 | -------------------------------------------------------------------------------- /vendor/fmt/support/rtd/theme/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = basic 3 | -------------------------------------------------------------------------------- /vendor/fmt/test/add-subdirectory-test/main.cc: -------------------------------------------------------------------------------- 1 | #include "fmt/core.h" 2 | 3 | int main(int argc, char** argv) { 4 | for (int i = 0; i < argc; ++i) fmt::print("{}: {}\n", i, argv[i]); 5 | } 6 | -------------------------------------------------------------------------------- /vendor/fmt/test/cuda-test/cpp14.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // The purpose of this part is to ensure NVCC's host compiler also supports 4 | // the standard version. See 'cuda-cpp14.cu'. 5 | // 6 | // https://en.cppreference.com/w/cpp/preprocessor/replace#Predefined_macros 7 | static_assert(__cplusplus >= 201402L, "expect C++ 2014 for host compiler"); 8 | 9 | auto make_message_cpp() -> std::string { 10 | return fmt::format("host compiler \t: __cplusplus == {}", __cplusplus); 11 | } 12 | -------------------------------------------------------------------------------- /vendor/fmt/test/find-package-test/main.cc: -------------------------------------------------------------------------------- 1 | #include "fmt/format.h" 2 | 3 | int main(int argc, char** argv) { 4 | for(int i = 0; i < argc; ++i) 5 | fmt::print("{}: {}\n", i, argv[i]); 6 | } 7 | -------------------------------------------------------------------------------- /vendor/fmt/test/fuzzing/.gitignore: -------------------------------------------------------------------------------- 1 | # ignore artifacts from the build.sh script 2 | build-*/ 3 | 4 | -------------------------------------------------------------------------------- /vendor/fmt/test/gtest/.clang-format: -------------------------------------------------------------------------------- 1 | # Disable clang-format here 2 | DisableFormat: true 3 | SortIncludes: Never 4 | -------------------------------------------------------------------------------- /vendor/fmt/test/header-only-test.cc: -------------------------------------------------------------------------------- 1 | // Header-only configuration test 2 | 3 | #include "fmt/core.h" 4 | 5 | #ifndef FMT_HEADER_ONLY 6 | # error "Not in the header-only mode." 7 | #endif 8 | -------------------------------------------------------------------------------- /vendor/fmt/test/static-export-test/library.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | __attribute__((visibility("default"))) std::string foo() { 4 | return fmt::format(FMT_COMPILE("foo bar {}"), 4242); 5 | } 6 | -------------------------------------------------------------------------------- /vendor/fmt/test/static-export-test/main.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | extern std::string foo(); 5 | 6 | int main() { std::cout << foo() << std::endl; } 7 | -------------------------------------------------------------------------------- /vendor/json/.drone.yml: -------------------------------------------------------------------------------- 1 | kind: pipeline 2 | name: test-on-arm64 3 | 4 | platform: 5 | arch: arm64 6 | 7 | steps: 8 | - name: build 9 | image: gcc 10 | commands: 11 | - wget https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz 12 | - tar xfz cmake-3.20.2.tar.gz 13 | - cd cmake-3.20.2 14 | - ./configure 15 | - make cmake ctest -j10 16 | - cd .. 17 | - mkdir build 18 | - cd build 19 | - ../cmake-3.20.2/bin/cmake .. -DJSON_FastTests=ON 20 | - make -j10 21 | - cd test 22 | - ../../cmake-3.20.2/bin/ctest -j10 23 | -------------------------------------------------------------------------------- /vendor/json/.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # JSON for Modern C++ has been originally written by Niels Lohmann. 2 | # Since 2013 over 140 contributors have helped to improve the library. 3 | # This CODEOWNERS file is only to make sure that @nlohmann is requested 4 | # for a code review in case of a pull request. 5 | 6 | * @nlohmann 7 | -------------------------------------------------------------------------------- /vendor/json/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: nlohmann 2 | custom: http://paypal.me/nlohmann 3 | -------------------------------------------------------------------------------- /vendor/json/.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question 4 | url: https://github.com/nlohmann/json/discussions 5 | about: Ask questions and discuss with other community members 6 | -------------------------------------------------------------------------------- /vendor/json/.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | Usually, all issues are tracked publicly on [GitHub](https://github.com/nlohmann/json/issues). If you want to make a private report (e.g., for a vulnerability or to attach an example that is not meant to be published), please send an email to . You can use [this key](https://keybase.io/nlohmann/pgp_keys.asc?fingerprint=797167ae41c0a6d9232e48457f3cea63ae251b69) for encryption. 6 | -------------------------------------------------------------------------------- /vendor/json/.gitignore: -------------------------------------------------------------------------------- 1 | json_unit 2 | json_benchmarks 3 | json_benchmarks_simple 4 | fuzz-testing 5 | 6 | *.dSYM 7 | *.o 8 | *.gcno 9 | *.gcda 10 | 11 | build 12 | build_coverage 13 | clang_analyze_build 14 | 15 | doc/xml 16 | doc/html 17 | me.nlohmann.json.docset 18 | 19 | benchmarks/files/numbers/*.json 20 | 21 | .wsjcpp-logs/* 22 | .wsjcpp/* 23 | 24 | .idea 25 | /cmake-build-* 26 | 27 | test/test-* 28 | /.vs 29 | 30 | doc/mkdocs/venv/ 31 | doc/mkdocs/docs/images 32 | doc/mkdocs/docs/examples 33 | doc/mkdocs/site 34 | doc/mkdocs/docs/__pycache__/ 35 | doc/xml 36 | /doc/docset/nlohmann_json.docset/ 37 | -------------------------------------------------------------------------------- /vendor/json/cmake/pkg-config.pc.in: -------------------------------------------------------------------------------- 1 | Name: ${PROJECT_NAME} 2 | Description: JSON for Modern C++ 3 | Version: ${PROJECT_VERSION} 4 | Cflags: -I${CMAKE_INSTALL_FULL_INCLUDEDIR} 5 | -------------------------------------------------------------------------------- /vendor/json/doc/avatars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/doc/avatars.png -------------------------------------------------------------------------------- /vendor/json/doc/css/mylayout_docset.css: -------------------------------------------------------------------------------- 1 | .memtemplate { 2 | display: none; 3 | } 4 | 5 | .memTemplParams { 6 | display: none; 7 | } 8 | 9 | .navtab { 10 | display: none; 11 | } 12 | 13 | #top, .footer { 14 | display: none; 15 | } 16 | 17 | td.paramname { 18 | vertical-align: top; 19 | } 20 | 21 | .ok_green { 22 | background-color: #89C35C; 23 | } 24 | 25 | .nok_throws { 26 | background-color: #ffa500; 27 | } 28 | -------------------------------------------------------------------------------- /vendor/json/doc/docset/README.md: -------------------------------------------------------------------------------- 1 | # docset 2 | 3 | The folder contains the required files to create a [docset](https://kapeli.com/docsets) which can be used in 4 | documentation browsers like [Dash](https://kapeli.com/dash), [Velocity](https://velocity.silverlakesoftware.com), or 5 | [Zeal](https://zealdocs.org). 6 | 7 | The docset can be created with 8 | 9 | ```sh 10 | make nlohmann_json.docset 11 | ``` 12 | 13 | The generated folder `nlohmann_json.docset` can then be opened in the documentation browser. 14 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/README.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/README.output: -------------------------------------------------------------------------------- 1 | { 2 | "answer": { 3 | "everything": 42 4 | }, 5 | "happy": true, 6 | "list": [ 7 | 1, 8 | 0, 9 | 2 10 | ], 11 | "name": "Niels", 12 | "new": { 13 | "key": { 14 | "value": [ 15 | "another", 16 | "list" 17 | ] 18 | } 19 | }, 20 | "nothing": null, 21 | "object": { 22 | "currency": "USD", 23 | "value": 42.99 24 | }, 25 | "pi": 3.141, 26 | "size": 8 27 | } 28 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/accept__string.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // a valid JSON text 10 | auto valid_text = R"( 11 | { 12 | "numbers": [1, 2, 3] 13 | } 14 | )"; 15 | 16 | // an invalid JSON text 17 | auto invalid_text = R"( 18 | { 19 | "strings": ["extra", "comma", ] 20 | } 21 | )"; 22 | 23 | std::cout << std::boolalpha 24 | << json::accept(valid_text) << ' ' 25 | << json::accept(invalid_text) << '\n'; 26 | } 27 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/accept__string.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/accept__string.output: -------------------------------------------------------------------------------- 1 | true false 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/array.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/array.output: -------------------------------------------------------------------------------- 1 | [] 2 | [] 3 | [1,2,3,4] 4 | [["one",1],["two",2]] 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__object_t_key_type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__object_t_key_type.output: -------------------------------------------------------------------------------- 1 | "il brutto" 2 | {"the bad":"il cattivo","the good":"il buono","the ugly":"il brutto"} 3 | [json.exception.type_error.304] cannot use at() with string 4 | [json.exception.out_of_range.403] key 'the fast' not found 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__object_t_key_type_const.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__object_t_key_type_const.output: -------------------------------------------------------------------------------- 1 | "il brutto" 2 | [json.exception.type_error.304] cannot use at() with string 3 | out of range 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__size_type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__size_type.output: -------------------------------------------------------------------------------- 1 | "third" 2 | ["first","second","third","fourth"] 3 | [json.exception.type_error.304] cannot use at() with string 4 | [json.exception.out_of_range.401] array index 5 is out of range 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__size_type_const.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/at__size_type_const.output: -------------------------------------------------------------------------------- 1 | "third" 2 | [json.exception.type_error.304] cannot use at() with string 3 | [json.exception.out_of_range.401] array index 5 is out of range 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/at_json_pointer.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/at_json_pointer.output: -------------------------------------------------------------------------------- 1 | 1 2 | "foo" 3 | [1,2] 4 | 2 5 | "bar" 6 | [1,21] 7 | [json.exception.parse_error.106] parse error: array index '01' must not begin with '0' 8 | [json.exception.parse_error.109] parse error: array index 'one' is not a number 9 | [json.exception.out_of_range.401] array index 4 is out of range 10 | [json.exception.out_of_range.402] array index '-' (2) is out of range 11 | [json.exception.out_of_range.403] key 'foo' not found 12 | [json.exception.out_of_range.404] unresolved reference token 'foo' 13 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/at_json_pointer_const.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/at_json_pointer_const.output: -------------------------------------------------------------------------------- 1 | 1 2 | "foo" 3 | [1,2] 4 | 2 5 | [json.exception.parse_error.109] parse error: array index 'one' is not a number 6 | [json.exception.out_of_range.401] array index 4 is out of range 7 | [json.exception.out_of_range.402] array index '-' (2) is out of range 8 | [json.exception.out_of_range.403] key 'foo' not found 9 | [json.exception.out_of_range.404] unresolved reference token 'foo' 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/back.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/back.output: -------------------------------------------------------------------------------- 1 | true 2 | 17 3 | 23.42 4 | 2 5 | 16 6 | "Hello, world" 7 | [json.exception.invalid_iterator.214] cannot get value 8 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__CompatibleType.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__InputIt_InputIt.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__InputIt_InputIt.output: -------------------------------------------------------------------------------- 1 | ["bravo","charly"] 2 | 42 3 | {"one":"eins"} 4 | [json.exception.invalid_iterator.204] iterators out of range 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__basic_json.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON array 9 | json j1 = {"one", "two", 3, 4.5, false}; 10 | 11 | // create a copy 12 | json j2(j1); 13 | 14 | // serialize the JSON array 15 | std::cout << j1 << " = " << j2 << '\n'; 16 | std::cout << std::boolalpha << (j1 == j2) << '\n'; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__basic_json.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__basic_json.output: -------------------------------------------------------------------------------- 1 | ["one","two",3,4.5,false] = ["one","two",3,4.5,false] 2 | true 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__copyassignment.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create JSON values 9 | json a = 23; 10 | json b = 42; 11 | 12 | // copy-assign a to b 13 | b = a; 14 | 15 | // serialize the JSON arrays 16 | std::cout << a << '\n'; 17 | std::cout << b << '\n'; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__copyassignment.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__copyassignment.output: -------------------------------------------------------------------------------- 1 | 23 2 | 23 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__list_init_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__list_init_t.output: -------------------------------------------------------------------------------- 1 | {} 2 | {"one":1,"two":2} 3 | [1,2,3,4] 4 | {"one":[1],"two":[1,2]} 5 | [[[1],"one"],[[1,2],"two"]] 6 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__moveconstructor.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON value 9 | json a = 23; 10 | 11 | // move contents of a to b 12 | json b(std::move(a)); 13 | 14 | // serialize the JSON arrays 15 | std::cout << a << '\n'; 16 | std::cout << b << '\n'; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__moveconstructor.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__moveconstructor.output: -------------------------------------------------------------------------------- 1 | null 2 | 23 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__nullptr_t.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // implicitly create a JSON null value 9 | json j1; 10 | 11 | // explicitly create a JSON null value 12 | json j2(nullptr); 13 | 14 | // serialize the JSON null value 15 | std::cout << j1 << '\n' << j2 << '\n'; 16 | } 17 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__nullptr_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__nullptr_t.output: -------------------------------------------------------------------------------- 1 | null 2 | null 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__size_type_basic_json.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array by creating copies of a JSON value 9 | json value = "Hello"; 10 | json array_0 = json(0, value); 11 | json array_1 = json(1, value); 12 | json array_5 = json(5, value); 13 | 14 | // serialize the JSON arrays 15 | std::cout << array_0 << '\n'; 16 | std::cout << array_1 << '\n'; 17 | std::cout << array_5 << '\n'; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__size_type_basic_json.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__size_type_basic_json.output: -------------------------------------------------------------------------------- 1 | [] 2 | ["Hello"] 3 | ["Hello","Hello","Hello","Hello","Hello"] 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__value.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__value.output: -------------------------------------------------------------------------------- 1 | 1 42.23 oops false 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__value_ptr.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__value_ptr.output: -------------------------------------------------------------------------------- 1 | 1 42.23 oops false 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__value_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/basic_json__value_t.output: -------------------------------------------------------------------------------- 1 | null 2 | false 3 | 0 4 | 0.0 5 | {} 6 | [] 7 | "" 8 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/begin.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to the first element 12 | json::iterator it = array.begin(); 13 | 14 | // serialize the element that the iterator points to 15 | std::cout << *it << '\n'; 16 | } 17 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/begin.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/begin.output: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/cbegin.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | const json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to the first element 12 | json::const_iterator it = array.cbegin(); 13 | 14 | // serialize the element that the iterator points to 15 | std::cout << *it << '\n'; 16 | } 17 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/cbegin.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/cbegin.output: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/cend.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to one past the last element 12 | json::const_iterator it = array.cend(); 13 | 14 | // decrement the iterator to point to the last element 15 | --it; 16 | 17 | // serialize the element that the iterator points to 18 | std::cout << *it << '\n'; 19 | } 20 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/cend.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/cend.output: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/clear.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/clear.output: -------------------------------------------------------------------------------- 1 | null 2 | false 3 | 0 4 | 0.0 5 | {} 6 | [] 7 | "" 8 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/contains.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create some JSON values 9 | json j_object = R"( {"key": "value"} )"_json; 10 | json j_array = R"( [1, 2, 3] )"_json; 11 | 12 | // call contains 13 | std::cout << std::boolalpha << 14 | "j_object contains 'key': " << j_object.contains("key") << '\n' << 15 | "j_object contains 'another': " << j_object.contains("another") << '\n' << 16 | "j_array contains 'key': " << j_array.contains("key") << std::endl; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/contains.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/contains.output: -------------------------------------------------------------------------------- 1 | j_object contains 'key': true 2 | j_object contains 'another': false 3 | j_array contains 'key': false 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/contains_json_pointer.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/contains_json_pointer.output: -------------------------------------------------------------------------------- 1 | true 2 | true 3 | true 4 | true 5 | false 6 | false 7 | false 8 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/count.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON object 9 | json j_object = {{"one", 1}, {"two", 2}}; 10 | 11 | // call count() 12 | auto count_two = j_object.count("two"); 13 | auto count_three = j_object.count("three"); 14 | 15 | // print values 16 | std::cout << "number of elements with key \"two\": " << count_two << '\n'; 17 | std::cout << "number of elements with key \"three\": " << count_three << '\n'; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/count.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/count.output: -------------------------------------------------------------------------------- 1 | number of elements with key "two": 1 2 | number of elements with key "three": 0 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/crbegin.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to the reverse-beginning 12 | json::const_reverse_iterator it = array.crbegin(); 13 | 14 | // serialize the element that the iterator points to 15 | std::cout << *it << '\n'; 16 | } 17 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/crbegin.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/crbegin.output: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/crend.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to the reverse-end 12 | json::const_reverse_iterator it = array.crend(); 13 | 14 | // increment the iterator to point to the first element 15 | --it; 16 | 17 | // serialize the element that the iterator points to 18 | std::cout << *it << '\n'; 19 | } 20 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/crend.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/crend.output: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/diagnostics_extended.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | # define JSON_DIAGNOSTICS 1 4 | #include 5 | 6 | using json = nlohmann::json; 7 | 8 | int main() 9 | { 10 | json j; 11 | j["address"]["street"] = "Fake Street"; 12 | j["address"]["housenumber"] = "12"; 13 | 14 | try 15 | { 16 | int housenumber = j["address"]["housenumber"]; 17 | } 18 | catch (json::exception& e) 19 | { 20 | std::cout << e.what() << '\n'; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/diagnostics_extended.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/diagnostics_extended.output: -------------------------------------------------------------------------------- 1 | [json.exception.type_error.302] (/address/housenumber) type must be number, but is string 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/diagnostics_standard.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | json j; 9 | j["address"]["street"] = "Fake Street"; 10 | j["address"]["housenumber"] = "12"; 11 | 12 | try 13 | { 14 | int housenumber = j["address"]["housenumber"]; 15 | } 16 | catch (json::exception& e) 17 | { 18 | std::cout << e.what() << '\n'; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/diagnostics_standard.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/diagnostics_standard.output: -------------------------------------------------------------------------------- 1 | [json.exception.type_error.302] type must be number, but is string 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/diff.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/diff.output: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "op": "replace", 4 | "path": "/baz", 5 | "value": "boo" 6 | }, 7 | { 8 | "op": "remove", 9 | "path": "/foo" 10 | }, 11 | { 12 | "op": "add", 13 | "path": "/hello", 14 | "value": [ 15 | "world" 16 | ] 17 | } 18 | ] 19 | 20 | { 21 | "baz": "boo", 22 | "hello": [ 23 | "world" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/dump.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/emplace.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/emplace.output: -------------------------------------------------------------------------------- 1 | {"one":1,"two":2} 2 | null 3 | {"one":1,"three":3,"two":2} 4 | 3 true 5 | {"A":"a","B":"b"} 6 | "b" false 7 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/emplace_back.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create JSON values 9 | json array = {1, 2, 3, 4, 5}; 10 | json null; 11 | 12 | // print values 13 | std::cout << array << '\n'; 14 | std::cout << null << '\n'; 15 | 16 | // add values 17 | array.emplace_back(6); 18 | null.emplace_back("first"); 19 | null.emplace_back(3, "second"); 20 | 21 | // print values 22 | std::cout << array << '\n'; 23 | std::cout << null << '\n'; 24 | } 25 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/emplace_back.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/emplace_back.output: -------------------------------------------------------------------------------- 1 | [1,2,3,4,5] 2 | null 3 | [1,2,3,4,5,6] 4 | ["first",["second","second","second"]] 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/empty.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/empty.output: -------------------------------------------------------------------------------- 1 | true 2 | false 3 | false 4 | false 5 | false 6 | true 7 | false 8 | true 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/end.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to one past the last element 12 | json::iterator it = array.end(); 13 | 14 | // decrement the iterator to point to the last element 15 | --it; 16 | 17 | // serialize the element that the iterator points to 18 | std::cout << *it << '\n'; 19 | } 20 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/end.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/end.output: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__IteratorType.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__IteratorType.output: -------------------------------------------------------------------------------- 1 | null 2 | null 3 | null 4 | {"one":1} 5 | [1,2,8,16] 6 | null 7 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__IteratorType_IteratorType.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__IteratorType_IteratorType.output: -------------------------------------------------------------------------------- 1 | null 2 | null 3 | null 4 | {"one":1} 5 | [1,8,16] 6 | null 7 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__key_type.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON object 9 | json j_object = {{"one", 1}, {"two", 2}}; 10 | 11 | // call erase() 12 | auto count_one = j_object.erase("one"); 13 | auto count_three = j_object.erase("three"); 14 | 15 | // print values 16 | std::cout << j_object << '\n'; 17 | std::cout << count_one << " " << count_three << '\n'; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__key_type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__key_type.output: -------------------------------------------------------------------------------- 1 | {"two":2} 2 | 1 0 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__size_type.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON array 9 | json j_array = {0, 1, 2, 3, 4, 5}; 10 | 11 | // call erase() 12 | j_array.erase(2); 13 | 14 | // print values 15 | std::cout << j_array << '\n'; 16 | } 17 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__size_type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/erase__size_type.output: -------------------------------------------------------------------------------- 1 | [0,1,3,4,5] 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/exception.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | try 9 | { 10 | // calling at() for a non-existing key 11 | json j = {{"foo", "bar"}}; 12 | json k = j.at("non-existing"); 13 | } 14 | catch (json::exception& e) 15 | { 16 | // output exception information 17 | std::cout << "message: " << e.what() << '\n' 18 | << "exception id: " << e.id << std::endl; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/exception.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/exception.output: -------------------------------------------------------------------------------- 1 | message: [json.exception.out_of_range.403] key 'non-existing' not found 2 | exception id: 403 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/find__key_type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/find__key_type.output: -------------------------------------------------------------------------------- 1 | "two" was found: true 2 | value at key "two": 2 3 | "three" was found: false 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/flatten.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/flatten.output: -------------------------------------------------------------------------------- 1 | { 2 | "/answer/everything": 42, 3 | "/happy": true, 4 | "/list/0": 1, 5 | "/list/1": 0, 6 | "/list/2": 2, 7 | "/name": "Niels", 8 | "/nothing": null, 9 | "/object/currency": "USD", 10 | "/object/value": 42.99, 11 | "/pi": 3.141 12 | } 13 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_bson.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_bson.output: -------------------------------------------------------------------------------- 1 | { 2 | "compact": true, 3 | "schema": 0 4 | } 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_cbor.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_cbor.output: -------------------------------------------------------------------------------- 1 | { 2 | "compact": true, 3 | "schema": 0 4 | } 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_msgpack.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_msgpack.output: -------------------------------------------------------------------------------- 1 | { 2 | "compact": true, 3 | "schema": 0 4 | } 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_ubjson.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/from_ubjson.output: -------------------------------------------------------------------------------- 1 | { 2 | "compact": true, 3 | "schema": 0 4 | } 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/front.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/front.output: -------------------------------------------------------------------------------- 1 | true 2 | 17 3 | 23.42 4 | 1 5 | 1 6 | "Hello, world" 7 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/get__PointerType.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/get__PointerType.output: -------------------------------------------------------------------------------- 1 | 17 17 17 17 2 | true 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/get__ValueType_const.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/get__ValueType_const.output: -------------------------------------------------------------------------------- 1 | 1 2 | 42 42 3 | 17.23 17 4 | Hello, world! 5 | 1 2 3 4 5 6 | 7 | string: "Hello, world!" 8 | number: {"floating-point":17.23,"integer":42} 9 | null: null 10 | boolean: true 11 | array: [1,2,3,4,5] 12 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/get_ptr.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/get_ptr.output: -------------------------------------------------------------------------------- 1 | 17 17 17 17 2 | true 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/get_ref.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/get_ref.output: -------------------------------------------------------------------------------- 1 | 17 17 2 | [json.exception.type_error.303] incompatible ReferenceType for get_ref, actual type is number 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/get_to.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/get_to.output: -------------------------------------------------------------------------------- 1 | 1 2 | 42 42 3 | 17.23 17 4 | Hello, world! 5 | 1 2 3 4 5 6 | 7 | string: "Hello, world!" 8 | number: {"floating-point":17.23,"integer":42} 9 | null: null 10 | boolean: true 11 | array: [1,2,3,4,5] 12 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON array 9 | json v = {1, 2, 3, 4}; 10 | 11 | // insert number 10 before number 3 12 | auto new_pos = v.insert(v.begin() + 2, 10); 13 | 14 | // output new array and result of insert call 15 | std::cout << *new_pos << '\n'; 16 | std::cout << v << '\n'; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert.output: -------------------------------------------------------------------------------- 1 | 10 2 | [1,2,10,3,4] 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__count.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON array 9 | json v = {1, 2, 3, 4}; 10 | 11 | // insert number 7 copies of number 7 before number 3 12 | auto new_pos = v.insert(v.begin() + 2, 7, 7); 13 | 14 | // output new array and result of insert call 15 | std::cout << *new_pos << '\n'; 16 | std::cout << v << '\n'; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__count.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__count.output: -------------------------------------------------------------------------------- 1 | 7 2 | [1,2,7,7,7,7,7,7,7,3,4] 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__ilist.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON array 9 | json v = {1, 2, 3, 4}; 10 | 11 | // insert range from v2 before the end of array v 12 | auto new_pos = v.insert(v.end(), {7, 8, 9}); 13 | 14 | // output new array and result of insert call 15 | std::cout << *new_pos << '\n'; 16 | std::cout << v << '\n'; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__ilist.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__ilist.output: -------------------------------------------------------------------------------- 1 | 7 2 | [1,2,3,4,7,8,9] 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__range.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON array 9 | json v = {1, 2, 3, 4}; 10 | 11 | // create a JSON array to copy values from 12 | json v2 = {"one", "two", "three", "four"}; 13 | 14 | // insert range from v2 before the end of array v 15 | auto new_pos = v.insert(v.end(), v2.begin(), v2.end()); 16 | 17 | // output new array and result of insert call 18 | std::cout << *new_pos << '\n'; 19 | std::cout << v << '\n'; 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__range.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__range.output: -------------------------------------------------------------------------------- 1 | "one" 2 | [1,2,3,4,"one","two","three","four"] 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__range_object.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create two JSON objects 9 | json j1 = {{"one", "eins"}, {"two", "zwei"}}; 10 | json j2 = {{"eleven", "elf"}, {"seventeen", "siebzehn"}}; 11 | 12 | // output objects 13 | std::cout << j1 << '\n'; 14 | std::cout << j2 << '\n'; 15 | 16 | // insert range from j2 to j1 17 | j1.insert(j2.begin(), j2.end()); 18 | 19 | // output result of insert call 20 | std::cout << j1 << '\n'; 21 | } 22 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__range_object.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/insert__range_object.output: -------------------------------------------------------------------------------- 1 | {"one":"eins","two":"zwei"} 2 | {"eleven":"elf","seventeen":"siebzehn"} 3 | {"eleven":"elf","one":"eins","seventeen":"siebzehn","two":"zwei"} 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/invalid_iterator.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | try 9 | { 10 | // calling iterator::key() on non-object iterator 11 | json j = "string"; 12 | json::iterator it = j.begin(); 13 | auto k = it.key(); 14 | } 15 | catch (json::invalid_iterator& e) 16 | { 17 | // output exception information 18 | std::cout << "message: " << e.what() << '\n' 19 | << "exception id: " << e.id << std::endl; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/invalid_iterator.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/invalid_iterator.output: -------------------------------------------------------------------------------- 1 | message: [json.exception.invalid_iterator.207] cannot use key() for non-object iterators 2 | exception id: 207 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_array.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_array.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | false 5 | false 6 | false 7 | true 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_binary.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_binary.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | false 5 | false 6 | false 7 | false 8 | false 9 | true 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_boolean.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_boolean.output: -------------------------------------------------------------------------------- 1 | false 2 | true 3 | false 4 | false 5 | false 6 | false 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_discarded.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_discarded.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | false 5 | false 6 | false 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_null.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_null.output: -------------------------------------------------------------------------------- 1 | true 2 | false 3 | false 4 | false 5 | false 6 | false 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | true 4 | true 5 | true 6 | false 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number_float.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number_float.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | false 5 | true 6 | false 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number_integer.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number_integer.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | true 4 | true 5 | false 6 | false 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number_unsigned.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_number_unsigned.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | true 5 | false 6 | false 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_object.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_object.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | false 5 | false 6 | true 7 | false 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_primitive.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_primitive.output: -------------------------------------------------------------------------------- 1 | true 2 | true 3 | true 4 | true 5 | true 6 | false 7 | false 8 | true 9 | true 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_string.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_string.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | false 5 | false 6 | false 7 | false 8 | true 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_structured.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/is_structured.output: -------------------------------------------------------------------------------- 1 | false 2 | false 3 | false 4 | false 5 | false 6 | true 7 | true 8 | false 9 | false 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/items.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/items.output: -------------------------------------------------------------------------------- 1 | key: one, value: 1 2 | key: two, value: 2 3 | key: 0, value: 1 4 | key: 1, value: 2 5 | key: 2, value: 4 6 | key: 3, value: 8 7 | key: 4, value: 16 8 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/iterator_wrapper.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/iterator_wrapper.output: -------------------------------------------------------------------------------- 1 | key: one, value: 1 2 | key: two, value: 2 3 | key: 0, value: 1 4 | key: 1, value: 2 5 | key: 2, value: 4 6 | key: 3, value: 8 7 | key: 4, value: 16 8 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer.output: -------------------------------------------------------------------------------- 1 | [json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'foo' 2 | [json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1' 3 | [json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1' 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__back.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // different JSON Pointers 9 | json::json_pointer ptr1("/foo"); 10 | json::json_pointer ptr2("/foo/0"); 11 | 12 | // call empty() 13 | std::cout << "last reference token of " << ptr1 << " is " << ptr1.back() << '\n' 14 | << "last reference token of " << ptr2 << " is " << ptr2.back() << std::endl; 15 | } 16 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__back.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__back.output: -------------------------------------------------------------------------------- 1 | last reference token of "/foo" is foo 2 | last reference token of "/foo/0" is 0 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__empty.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__empty.output: -------------------------------------------------------------------------------- 1 | "": true 2 | "": true 3 | "/foo": false 4 | "/foo/0": false 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__operator_add.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON pointer 9 | json::json_pointer ptr("/foo"); 10 | std::cout << ptr << '\n'; 11 | 12 | // append a JSON Pointer 13 | ptr /= json::json_pointer("/bar/baz"); 14 | std::cout << ptr << '\n'; 15 | 16 | // append a string 17 | ptr /= "fob"; 18 | std::cout << ptr << '\n'; 19 | 20 | // append an array index 21 | ptr /= 42; 22 | std::cout << ptr << std::endl; 23 | } 24 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__operator_add.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__operator_add.output: -------------------------------------------------------------------------------- 1 | "/foo" 2 | "/foo/bar/baz" 3 | "/foo/bar/baz/fob" 4 | "/foo/bar/baz/fob/42" 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__operator_add_binary.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON pointer 9 | json::json_pointer ptr("/foo"); 10 | 11 | // append a JSON Pointer 12 | std::cout << ptr / json::json_pointer("/bar/baz") << '\n'; 13 | 14 | // append a string 15 | std::cout << ptr / "fob" << '\n'; 16 | 17 | // append an array index 18 | std::cout << ptr / 42 << std::endl; 19 | } 20 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__operator_add_binary.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__operator_add_binary.output: -------------------------------------------------------------------------------- 1 | "/foo/bar/baz" 2 | "/foo/fob" 3 | "/foo/42" 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__parent_pointer.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__parent_pointer.output: -------------------------------------------------------------------------------- 1 | parent of "" is "" 2 | parent of "/foo" is "" 3 | parent of "/foo/0" is "/foo" 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__pop_back.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create empty JSON Pointer 9 | json::json_pointer ptr("/foo/bar/baz"); 10 | std::cout << ptr << '\n'; 11 | 12 | // call pop_back() 13 | ptr.pop_back(); 14 | std::cout << ptr << '\n'; 15 | 16 | ptr.pop_back(); 17 | std::cout << ptr << '\n'; 18 | 19 | ptr.pop_back(); 20 | std::cout << ptr << '\n'; 21 | } 22 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__pop_back.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__pop_back.output: -------------------------------------------------------------------------------- 1 | "/foo/bar/baz" 2 | "/foo/bar" 3 | "/foo" 4 | "" 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__push_back.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create empty JSON Pointer 9 | json::json_pointer ptr; 10 | std::cout << ptr << '\n'; 11 | 12 | // call push_back() 13 | ptr.push_back("foo"); 14 | std::cout << ptr << '\n'; 15 | 16 | ptr.push_back("0"); 17 | std::cout << ptr << '\n'; 18 | 19 | ptr.push_back("bar"); 20 | std::cout << ptr << '\n'; 21 | } 22 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__push_back.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__push_back.output: -------------------------------------------------------------------------------- 1 | "" 2 | "/foo" 3 | "/foo/0" 4 | "/foo/0/bar" 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__to_string.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/json_pointer__to_string.output: -------------------------------------------------------------------------------- 1 | 2 | /foo 3 | /foo/0 4 | / 5 | /a~1b 6 | /c%d 7 | /e^f 8 | /g|h 9 | /i\j 10 | /k"l 11 | / 12 | /m~0n 13 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/max_size.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/max_size.output: -------------------------------------------------------------------------------- 1 | 0 2 | 1 3 | 1 4 | 1 5 | 256204778801521550 6 | 1152921504606846975 7 | 1 8 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/merge_patch.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/merge_patch.output: -------------------------------------------------------------------------------- 1 | { 2 | "author": { 3 | "givenName": "John" 4 | }, 5 | "content": "This will be unchanged", 6 | "phoneNumber": "+01-123-456-7890", 7 | "tags": [ 8 | "example" 9 | ], 10 | "title": "Hello!" 11 | } 12 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/meta.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // call meta() 10 | std::cout << std::setw(4) << json::meta() << '\n'; 11 | } 12 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/meta.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/meta.output: -------------------------------------------------------------------------------- 1 | { 2 | "compiler": { 3 | "c++": "201103", 4 | "family": "clang", 5 | "version": "12.0.0 (clang-1200.0.32.28)" 6 | }, 7 | "copyright": "(C) 2013-2021 Niels Lohmann", 8 | "name": "JSON for Modern C++", 9 | "platform": "apple", 10 | "url": "https://github.com/nlohmann/json", 11 | "version": { 12 | "major": 3, 13 | "minor": 9, 14 | "patch": 1, 15 | "string": "3.9.1" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/object.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/object.output: -------------------------------------------------------------------------------- 1 | {} 2 | {} 3 | {"one":1,"two":2} 4 | [json.exception.type_error.301] cannot create object from initializer list 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__ValueType.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__ValueType.output: -------------------------------------------------------------------------------- 1 | 1 2 | 42 42 3 | 17.23 17 4 | Hello, world! 5 | 1 2 3 4 5 6 | 7 | string: "Hello, world!" 8 | number: {"floating-point":17.23,"integer":42} 9 | null: null 10 | boolean: true 11 | array: [1,2,3,4,5] 12 | [json.exception.type_error.302] type must be boolean, but is string 13 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__equal.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__equal.output: -------------------------------------------------------------------------------- 1 | [1,2,3] == [1,2,4] false 2 | {"A":"a","B":"b"} == {"A":"a","B":"b"} true 3 | 17 == 17.0 true 4 | "foo" == "bar" false 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__equal__nullptr_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__equal__nullptr_t.output: -------------------------------------------------------------------------------- 1 | [1,2,3] == nullptr false 2 | {"A":"a","B":"b"} == nullptr false 3 | 17 == nullptr false 4 | "foo" == nullptr false 5 | null == nullptr true 6 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__greater.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__greater.output: -------------------------------------------------------------------------------- 1 | [1,2,3] > [1,2,4] false 2 | {"A":"a","B":"b"} > {"A":"a","B":"b"} false 3 | 17 > 17.0000000000001 false 4 | "foo" > "bar" true 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__greaterequal.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__greaterequal.output: -------------------------------------------------------------------------------- 1 | [1,2,3] >= [1,2,4] false 2 | {"A":"a","B":"b"} >= {"A":"a","B":"b"} true 3 | 17 >= 17.0000000000001 false 4 | "foo" >= "bar" true 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__less.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__less.output: -------------------------------------------------------------------------------- 1 | [1,2,3] == [1,2,4] true 2 | {"A":"a","B":"b"} == {"A":"a","B":"b"} false 3 | 17 == 17.0000000000001 true 4 | "foo" == "bar" false 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__lessequal.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__lessequal.output: -------------------------------------------------------------------------------- 1 | [1,2,3] <= [1,2,4] true 2 | {"A":"a","B":"b"} <= {"A":"a","B":"b"} true 3 | 17 <= 17.0000000000001 true 4 | "foo" <= "bar" false 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__notequal.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__notequal.output: -------------------------------------------------------------------------------- 1 | [1,2,3] != [1,2,4] true 2 | {"A":"a","B":"b"} != {"A":"a","B":"b"} false 3 | 17 != 17.0 false 4 | "foo" != "bar" true 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__notequal__nullptr_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__notequal__nullptr_t.output: -------------------------------------------------------------------------------- 1 | [1,2,3] != nullptr true 2 | {"A":"a","B":"b"} != nullptr true 3 | 17 != nullptr true 4 | "foo" != nullptr true 5 | null != nullptr false 6 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__value_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator__value_t.output: -------------------------------------------------------------------------------- 1 | true 2 | true 3 | true 4 | true 5 | true 6 | true 7 | true 8 | true 9 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator_deserialize.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator_deserialize.output: -------------------------------------------------------------------------------- 1 | { 2 | "array": [ 3 | 1, 4 | 2, 5 | 3, 6 | 4, 7 | 5 8 | ], 9 | "boolean": false, 10 | "null": null, 11 | "number": 23, 12 | "string": "Hello, world!" 13 | } 14 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator_serialize.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operator_serialize.output: -------------------------------------------------------------------------------- 1 | {"one":1,"two":2} 2 | 3 | [1,2,4,8,16] 4 | 5 | { 6 | "one": 1, 7 | "two": 2 8 | } 9 | 10 | [ 11 | 1, 12 | 2, 13 | 4, 14 | 8, 15 | 16 16 | ] 17 | 18 | { 19 | "one": 1, 20 | "two": 2 21 | } 22 | 23 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__key_type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__key_type.output: -------------------------------------------------------------------------------- 1 | 2 2 | 3 | { 4 | "one": 1, 5 | "three": 3, 6 | "two": 2 7 | } 8 | 9 | { 10 | "five": { 11 | "really": { 12 | "nested": true 13 | } 14 | }, 15 | "four": null, 16 | "one": 1, 17 | "three": 3, 18 | "two": 2 19 | } 20 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__key_type_const.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON object 9 | const json object = 10 | { 11 | {"one", 1}, {"two", 2}, {"three", 2.9} 12 | }; 13 | 14 | // output element with key "two" 15 | std::cout << object["two"] << '\n'; 16 | } 17 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__key_type_const.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__key_type_const.output: -------------------------------------------------------------------------------- 1 | 2 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__size_type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__size_type.output: -------------------------------------------------------------------------------- 1 | 4 2 | [1,2,3,4,6] 3 | [1,2,3,4,6,null,null,null,null,null,11] 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__size_type_const.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create JSON array 9 | const json array = {"first", "2nd", "third", "fourth"}; 10 | 11 | // output element at index 2 (third element) 12 | std::cout << array.at(2) << '\n'; 13 | } 14 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__size_type_const.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorarray__size_type_const.output: -------------------------------------------------------------------------------- 1 | "third" 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorjson_pointer.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorjson_pointer.output: -------------------------------------------------------------------------------- 1 | 1 2 | "foo" 3 | [1,2] 4 | 2 5 | "bar" 6 | {"array":[1,2],"boolean":true,"number":1,"string":"bar"} 7 | [1,21,null,null,44] 8 | [1,21,null,null,44,55] 9 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorjson_pointer_const.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/operatorjson_pointer_const.output: -------------------------------------------------------------------------------- 1 | 1 2 | "foo" 3 | [1,2] 4 | 2 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/other_error.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/other_error.output: -------------------------------------------------------------------------------- 1 | message: [json.exception.other_error.501] unsuccessful: {"op":"test","path":"/best_biscuit/name","value":"Choco Leibniz"} 2 | exception id: 501 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/out_of_range.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | try 9 | { 10 | // calling at() for an invalid index 11 | json j = {1, 2, 3, 4}; 12 | j.at(4) = 10; 13 | } 14 | catch (json::out_of_range& e) 15 | { 16 | // output exception information 17 | std::cout << "message: " << e.what() << '\n' 18 | << "exception id: " << e.id << std::endl; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/out_of_range.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/out_of_range.output: -------------------------------------------------------------------------------- 1 | message: [json.exception.out_of_range.401] array index 4 is out of range 2 | exception id: 401 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__allow_exceptions.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__allow_exceptions.output: -------------------------------------------------------------------------------- 1 | [json.exception.parse_error.101] parse error at line 4, column 0: syntax error while parsing value - invalid string: control character U+000A (LF) must be escaped to \u000A or \n; last read: '"value without closing quotes' 2 | the input is invalid JSON 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__array__parser_callback_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__array__parser_callback_t.output: -------------------------------------------------------------------------------- 1 | { 2 | "Image": { 3 | "Animated": false, 4 | "Height": 600, 5 | "IDs": [ 6 | 116, 7 | 943, 8 | 234, 9 | 38793 10 | ], 11 | "Thumbnail": { 12 | "Height": 125, 13 | "Url": "http://www.example.com/image/481989943", 14 | "Width": 100 15 | }, 16 | "Title": "View from 15th Floor", 17 | "Width": 800 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__contiguouscontainer__parser_callback_t.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // a JSON text given as std::vector 10 | std::vector text = {'[', '1', ',', '2', ',', '3', ']', '\0'}; 11 | 12 | // parse and serialize JSON 13 | json j_complete = json::parse(text); 14 | std::cout << std::setw(4) << j_complete << "\n\n"; 15 | } 16 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__contiguouscontainer__parser_callback_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__contiguouscontainer__parser_callback_t.output: -------------------------------------------------------------------------------- 1 | [ 2 | 1, 3 | 2, 4 | 3 5 | ] 6 | 7 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__istream__parser_callback_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__iteratortype__parser_callback_t.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // a JSON text given as std::vector 10 | std::vector text = {'[', '1', ',', '2', ',', '3', ']', '\0'}; 11 | 12 | // parse and serialize JSON 13 | json j_complete = json::parse(text.begin(), text.end()); 14 | std::cout << std::setw(4) << j_complete << "\n\n"; 15 | } 16 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__iteratortype__parser_callback_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__iteratortype__parser_callback_t.output: -------------------------------------------------------------------------------- 1 | [ 2 | 1, 3 | 2, 4 | 3 5 | ] 6 | 7 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse__string__parser_callback_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse_error.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | try 9 | { 10 | // parsing input with a syntax error 11 | json::parse("[1,2,3,]"); 12 | } 13 | catch (json::parse_error& e) 14 | { 15 | // output exception information 16 | std::cout << "message: " << e.what() << '\n' 17 | << "exception id: " << e.id << '\n' 18 | << "byte position of error: " << e.byte << std::endl; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse_error.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/parse_error.output: -------------------------------------------------------------------------------- 1 | message: [json.exception.parse_error.101] parse error at line 1, column 8: syntax error while parsing value - unexpected ']'; expected '[', '{', or a literal 2 | exception id: 101 3 | byte position of error: 8 4 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/patch.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/patch.output: -------------------------------------------------------------------------------- 1 | { 2 | "baz": "qux", 3 | "foo": "bar" 4 | } 5 | 6 | { 7 | "baz": "boo", 8 | "hello": [ 9 | "world" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/push_back.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create JSON values 9 | json array = {1, 2, 3, 4, 5}; 10 | json null; 11 | 12 | // print values 13 | std::cout << array << '\n'; 14 | std::cout << null << '\n'; 15 | 16 | // add values 17 | array.push_back(6); 18 | array += 7; 19 | null += "first"; 20 | null += "second"; 21 | 22 | // print values 23 | std::cout << array << '\n'; 24 | std::cout << null << '\n'; 25 | } 26 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/push_back.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/push_back.output: -------------------------------------------------------------------------------- 1 | [1,2,3,4,5] 2 | null 3 | [1,2,3,4,5,6,7] 4 | ["first","second"] 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/push_back__initializer_list.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/push_back__initializer_list.output: -------------------------------------------------------------------------------- 1 | {"one":1,"two":2} 2 | null 3 | {"four":4,"one":1,"three":3,"two":2} 4 | [["five",5]] 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/push_back__object_t__value.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/push_back__object_t__value.output: -------------------------------------------------------------------------------- 1 | {"one":1,"two":2} 2 | null 3 | {"four":4,"one":1,"three":3,"two":2} 4 | {"A":"a","B":"b"} 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/rbegin.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to the reverse-beginning 12 | json::reverse_iterator it = array.rbegin(); 13 | 14 | // serialize the element that the iterator points to 15 | std::cout << *it << '\n'; 16 | } 17 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/rbegin.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/rbegin.output: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/rend.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create an array value 9 | json array = {1, 2, 3, 4, 5}; 10 | 11 | // get an iterator to the reverse-end 12 | json::reverse_iterator it = array.rend(); 13 | 14 | // increment the iterator to point to the first element 15 | --it; 16 | 17 | // serialize the element that the iterator points to 18 | std::cout << *it << '\n'; 19 | } 20 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/rend.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/rend.output: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/sax_parse.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/sax_parse.output: -------------------------------------------------------------------------------- 1 | (start: object) (key: Image) (start: object) (key: Width) (value: 800) (key: Height) (value: 600) (key: Title) (value: View from 15th Floor) (key: Thumbnail) (start: object) (key: Url) (value: http://www.example.com/image/481989943) (key: Height) (value: 125) (key: Width) (value: 100) (end: object) (key: Animated) (value: false) (key: IDs) (start: array) (value: 116) (value: 943) (value: 234) (value: 38793) (end: array) (key: Distance) (value: 12.723374634) (end: object) (end: object) 2 | result: true 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/size.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/size.output: -------------------------------------------------------------------------------- 1 | 0 2 | 1 3 | 1 4 | 1 5 | 2 6 | 0 7 | 5 8 | 0 9 | 1 10 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__array_t.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON value 9 | json value = {{"array", {1, 2, 3, 4}}}; 10 | 11 | // create an array_t 12 | json::array_t array = {"Snap", "Crackle", "Pop"}; 13 | 14 | // swap the array stored in the JSON value 15 | value["array"].swap(array); 16 | 17 | // output the values 18 | std::cout << "value = " << value << '\n'; 19 | std::cout << "array = " << array << '\n'; 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__array_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__array_t.output: -------------------------------------------------------------------------------- 1 | value = {"array":["Snap","Crackle","Pop"]} 2 | array = [1,2,3,4] 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__binary_t.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a binary value 9 | json value = json::binary({1, 2, 3}); 10 | 11 | // create a binary_t 12 | json::binary_t binary = {{4, 5, 6}}; 13 | 14 | // swap the object stored in the JSON value 15 | value.swap(binary); 16 | 17 | // output the values 18 | std::cout << "value = " << value << '\n'; 19 | std::cout << "binary = " << json(binary) << '\n'; 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__binary_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__binary_t.output: -------------------------------------------------------------------------------- 1 | value = {"bytes":[4,5,6],"subtype":null} 2 | binary = {"bytes":[1,2,3],"subtype":null} 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__object_t.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON value 9 | json value = { {"translation", {{"one", "eins"}, {"two", "zwei"}}} }; 10 | 11 | // create an object_t 12 | json::object_t object = {{"cow", "Kuh"}, {"dog", "Hund"}}; 13 | 14 | // swap the object stored in the JSON value 15 | value["translation"].swap(object); 16 | 17 | // output the values 18 | std::cout << "value = " << value << '\n'; 19 | std::cout << "object = " << object << '\n'; 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__object_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__object_t.output: -------------------------------------------------------------------------------- 1 | value = {"translation":{"cow":"Kuh","dog":"Hund"}} 2 | object = {"one":"eins","two":"zwei"} 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__reference.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create two JSON values 9 | json j1 = {1, 2, 3, 4, 5}; 10 | json j2 = {{"pi", 3.141592653589793}, {"e", 2.718281828459045}}; 11 | 12 | // swap the values 13 | j1.swap(j2); 14 | 15 | // output the values 16 | std::cout << "j1 = " << j1 << '\n'; 17 | std::cout << "j2 = " << j2 << '\n'; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__reference.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__reference.output: -------------------------------------------------------------------------------- 1 | j1 = {"e":2.718281828459045,"pi":3.141592653589793} 2 | j2 = [1,2,3,4,5] 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__string_t.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | // create a JSON value 9 | json value = { "the good", "the bad", "the ugly" }; 10 | 11 | // create string_t 12 | json::string_t string = "the fast"; 13 | 14 | // swap the object stored in the JSON value 15 | value[1].swap(string); 16 | 17 | // output the values 18 | std::cout << "value = " << value << '\n'; 19 | std::cout << "string = " << string << '\n'; 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__string_t.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/swap__string_t.output: -------------------------------------------------------------------------------- 1 | value = ["the good","the fast","the ugly"] 2 | string = the bad 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_bson.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // create a JSON value 10 | json j = R"({"compact": true, "schema": 0})"_json; 11 | 12 | // serialize it to BSON 13 | std::vector v = json::to_bson(j); 14 | 15 | // print the vector content 16 | for (auto& byte : v) 17 | { 18 | std::cout << "0x" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << " "; 19 | } 20 | std::cout << std::endl; 21 | } 22 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_bson.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_bson.output: -------------------------------------------------------------------------------- 1 | 0x1b 0x00 0x00 0x00 0x08 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0x00 0x01 0x10 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 0x00 0x00 0x00 0x00 0x00 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_cbor.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // create a JSON value 10 | json j = R"({"compact": true, "schema": 0})"_json; 11 | 12 | // serialize it to CBOR 13 | std::vector v = json::to_cbor(j); 14 | 15 | // print the vector content 16 | for (auto& byte : v) 17 | { 18 | std::cout << "0x" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << " "; 19 | } 20 | std::cout << std::endl; 21 | } 22 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_cbor.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_cbor.output: -------------------------------------------------------------------------------- 1 | 0xa2 0x67 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xf5 0x66 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_msgpack.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // create a JSON value 10 | json j = R"({"compact": true, "schema": 0})"_json; 11 | 12 | // serialize it to MessagePack 13 | std::vector v = json::to_msgpack(j); 14 | 15 | // print the vector content 16 | for (auto& byte : v) 17 | { 18 | std::cout << "0x" << std::hex << std::setw(2) << std::setfill('0') << (int)byte << " "; 19 | } 20 | std::cout << std::endl; 21 | } 22 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_msgpack.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_msgpack.output: -------------------------------------------------------------------------------- 1 | 0x82 0xa7 0x63 0x6f 0x6d 0x70 0x61 0x63 0x74 0xc3 0xa6 0x73 0x63 0x68 0x65 0x6d 0x61 0x00 2 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_ubjson.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/to_ubjson.output: -------------------------------------------------------------------------------- 1 | {i7compactTi6schemaF} 2 | [i1i2i3i4i5i6i7i8] 3 | [#i8i1i2i3i4i5i6i7i8 4 | [$i#i812345678 5 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/type.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/type.output: -------------------------------------------------------------------------------- 1 | true 2 | true 3 | true 4 | true 5 | true 6 | true 7 | true 8 | true 9 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/type_error.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | try 9 | { 10 | // calling push_back() on a string value 11 | json j = "string"; 12 | j.push_back("another string"); 13 | } 14 | catch (json::type_error& e) 15 | { 16 | // output exception information 17 | std::cout << "message: " << e.what() << '\n' 18 | << "exception id: " << e.id << std::endl; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/type_error.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/type_error.output: -------------------------------------------------------------------------------- 1 | message: [json.exception.type_error.308] cannot use push_back() with string 2 | exception id: 308 3 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/type_name.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/type_name.output: -------------------------------------------------------------------------------- 1 | null is a null 2 | true is a boolean 3 | -17 is a number 4 | 42 is a number 5 | 23.42 is a number 6 | {"one":1,"two":2} is an object 7 | [1,2,4,8,16] is an array 8 | "Hello, world" is a string 9 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/unflatten.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/unflatten.output: -------------------------------------------------------------------------------- 1 | { 2 | "answer": { 3 | "everything": 42 4 | }, 5 | "happy": true, 6 | "list": [ 7 | 1, 8 | 0, 9 | 2 10 | ], 11 | "name": "Niels", 12 | "nothing": null, 13 | "object": { 14 | "currency": "USD", 15 | "value": 42.99 16 | }, 17 | "pi": 3.141 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/update.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // create two JSON objects 10 | json o1 = R"( {"color": "red", "price": 17.99} )"_json; 11 | json o2 = R"( {"color": "blue", "speed": 100} )"_json; 12 | 13 | // add all keys from o2 to o1 (updating "color") 14 | o1.update(o2); 15 | 16 | // output updated object o1 17 | std::cout << std::setw(2) << o1 << '\n'; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/update.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/update.output: -------------------------------------------------------------------------------- 1 | { 2 | "color": "blue", 3 | "price": 17.99, 4 | "speed": 100 5 | } 6 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/update__range.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using json = nlohmann::json; 6 | 7 | int main() 8 | { 9 | // create two JSON objects 10 | json o1 = R"( {"color": "red", "price": 17.99} )"_json; 11 | json o2 = R"( {"color": "blue", "speed": 100} )"_json; 12 | 13 | // add all keys from o2 to o1 (updating "color") 14 | o1.update(o2.begin(), o2.end()); 15 | 16 | // output updated object o1 17 | std::cout << std::setw(2) << o1 << '\n'; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/doc/examples/update__range.link: -------------------------------------------------------------------------------- 1 | online -------------------------------------------------------------------------------- /vendor/json/doc/examples/update__range.output: -------------------------------------------------------------------------------- 1 | { 2 | "color": "blue", 3 | "price": 17.99, 4 | "speed": 100 5 | } 6 | -------------------------------------------------------------------------------- /vendor/json/doc/images/callback_events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/doc/images/callback_events.png -------------------------------------------------------------------------------- /vendor/json/doc/images/json_syntax_number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/doc/images/json_syntax_number.png -------------------------------------------------------------------------------- /vendor/json/doc/json.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/doc/json.gif -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/api/basic_json/cbor_tag_handler_t.md: -------------------------------------------------------------------------------- 1 | # basic_json::cbor_tag_handler_t 2 | 3 | ```cpp 4 | enum class cbor_tag_handler_t 5 | { 6 | error, 7 | ignore 8 | }; 9 | ``` 10 | 11 | This enumeration is used in the [`from_cbor`](from_cbor.md) function to choose how to treat tags: 12 | 13 | error 14 | : throw a `parse_error` exception in case of a tag 15 | 16 | ignore 17 | : ignore tags 18 | 19 | ## Version history 20 | 21 | - Added in version 3.9.0. 22 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/api/basic_json/get_allocator.md: -------------------------------------------------------------------------------- 1 | # basic_json::get_allocator 2 | 3 | ```cpp 4 | static allocator_type get_allocator(); 5 | ``` 6 | 7 | Returns the allocator associated with the container. 8 | 9 | ## Return value 10 | 11 | associated allocator 12 | 13 | ## Version history 14 | 15 | - Unknown. 16 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/api/basic_json/object_comparator_t.md: -------------------------------------------------------------------------------- 1 | # basic_json::object_comparator_t 2 | 3 | ```cpp 4 | // until C++14 5 | using object_comparator_t = std::less; 6 | 7 | // since C++14 8 | using object_comparator_t = std::less<>; 9 | ``` 10 | 11 | The comparator used in [`object_t`](object_t.md). 12 | 13 | When C++14 is detected, a transparent com parator is used which, when combined with perfect forwarding on find() and 14 | count() calls, prevents unnecessary string construction. 15 | 16 | ## Version history 17 | 18 | - Unknown. 19 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/api/basic_json/~basic_json.md: -------------------------------------------------------------------------------- 1 | # basic_json::~basic_json 2 | 3 | ```cpp 4 | ~basic_json() noexcept 5 | ``` 6 | 7 | Destroys the JSON value and frees all allocated memory. 8 | 9 | ## Exception safety 10 | 11 | No-throw guarantee: this member function never throws exceptions. 12 | 13 | ## Complexity 14 | 15 | Linear. 16 | 17 | ## Version history 18 | 19 | - Added in version 1.0.0. 20 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/api/json.md: -------------------------------------------------------------------------------- 1 | # json 2 | 3 | ```cpp 4 | using json = basic_json<>; 5 | ``` 6 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/api/ordered_json.md: -------------------------------------------------------------------------------- 1 | # ordered_json 2 | 3 | ```cpp 4 | using ordered_json = basic_json; 5 | ``` 6 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/api/ordered_map.md: -------------------------------------------------------------------------------- 1 | # ordered_map 2 | 3 | ```cpp 4 | template, 5 | class Allocator = std::allocator>> 6 | struct ordered_map : std::vector, Allocator>; 7 | ``` 8 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/features/element_access/index.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | There are many ways elements in a JSON value can be accessed: 4 | 5 | - unchecked access via [`operator[]`](unchecked_access.md) 6 | - checked access via [`at`](checked_access.md) 7 | - access with default value via [`value`](default_value.md) 8 | - iterators 9 | - JSON pointers 10 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/features/json_pointer.md: -------------------------------------------------------------------------------- 1 | # JSON Pointer 2 | 3 | The library supports **JSON Pointer** ([RFC 6901](https://tools.ietf.org/html/rfc6901)) as alternative means to address structured values. 4 | 5 | ```cpp 6 | // a JSON value 7 | json j_original = R"({ 8 | "baz": ["one", "two", "three"], 9 | "foo": "bar" 10 | })"_json; 11 | 12 | // access members with a JSON pointer (RFC 6901) 13 | j_original["/baz/1"_json_pointer]; 14 | // "two" 15 | ``` 16 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/features/parsing/index.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | !!! note 4 | 5 | This page is under construction. 6 | 7 | ## Input 8 | 9 | ## SAX vs. DOM parsing 10 | 11 | ## Exceptions 12 | 13 | See [parsing and exceptions](parse_exceptions.md). 14 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/home/sponsors.md: -------------------------------------------------------------------------------- 1 | # Sponsors 2 | 3 | You can sponsor this library at [GitHub Sponsors](https://github.com/sponsors/nlohmann). 4 | 5 | ## Named Sponsors 6 | 7 | - [Michael Hartmann](https://github.com/reFX-Mike) 8 | - [Stefan Hagen](https://github.com/sthagen) 9 | - [Steve Sperandeo](https://github.com/homer6) 10 | 11 | Thanks everyone! 12 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/hooks.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import os.path 3 | 4 | 5 | def copy_doxygen(*args, **kwargs): 6 | doxygen_dir = os.path.join(kwargs['config']['site_dir'], 'doxygen') 7 | if not os.path.isdir(doxygen_dir) or not os.listdir(doxygen_dir): 8 | print('Copy Doxygen files...') 9 | shutil.copytree('../html', doxygen_dir) 10 | print('Copy Doxygen complete') 11 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/index.md: -------------------------------------------------------------------------------- 1 | # JSON for Modern C++ 2 | 3 | !!! note 4 | 5 | This page is under construction. 6 | 7 | ![](images/json.gif) 8 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/integration/conan/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(json_example) 2 | cmake_minimum_required(VERSION 2.8.12) 3 | add_definitions("-std=c++11") 4 | 5 | include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 6 | conan_basic_setup() 7 | 8 | add_executable(json_example example.cpp) 9 | target_link_libraries(json_example ${CONAN_LIBS}) 10 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/integration/conan/Conanfile.txt: -------------------------------------------------------------------------------- 1 | [requires] 2 | nlohmann_json/3.7.3 3 | 4 | [generators] 5 | cmake 6 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/integration/conan/example.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | std::cout << json::meta() << std::endl; 9 | } 10 | -------------------------------------------------------------------------------- /vendor/json/doc/mkdocs/docs/integration/example.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using json = nlohmann::json; 5 | 6 | int main() 7 | { 8 | std::cout << json::meta() << std::endl; 9 | } 10 | -------------------------------------------------------------------------------- /vendor/json/doc/usages/ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/doc/usages/ios.png -------------------------------------------------------------------------------- /vendor/json/doc/usages/macos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/doc/usages/macos.png -------------------------------------------------------------------------------- /vendor/json/include/nlohmann/detail/meta/identity_tag.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nlohmann 4 | { 5 | namespace detail 6 | { 7 | // dispatching helper struct 8 | template struct identity_tag {}; 9 | } // namespace detail 10 | } // namespace nlohmann 11 | -------------------------------------------------------------------------------- /vendor/json/include/nlohmann/detail/meta/void_t.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace nlohmann 4 | { 5 | namespace detail 6 | { 7 | template struct make_void 8 | { 9 | using type = void; 10 | }; 11 | template using void_t = typename make_void::type; 12 | } // namespace detail 13 | } // namespace nlohmann 14 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_add_subdirectory/project/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | nlohmann::json j; 6 | 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_fetch_content/project/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | nlohmann::json j; 6 | 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_import/project/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.1) 2 | 3 | project(DummyImport CXX) 4 | 5 | find_package(nlohmann_json REQUIRED) 6 | 7 | add_executable(with_namespace_target main.cpp) 8 | target_link_libraries(with_namespace_target nlohmann_json::nlohmann_json) 9 | 10 | add_executable(without_namespace_target main.cpp) 11 | target_link_libraries(without_namespace_target nlohmann_json) 12 | 13 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_import/project/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | nlohmann::json j; 6 | 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_import_minver/project/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.1) 2 | 3 | project(DummyImportMinVer CXX) 4 | 5 | find_package(nlohmann_json 3.2.0 REQUIRED) 6 | 7 | add_executable(with_namespace_target main.cpp) 8 | target_link_libraries(with_namespace_target nlohmann_json::nlohmann_json) 9 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_import_minver/project/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | nlohmann::json j; 6 | 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_target_include_directories/project/Bar.cpp: -------------------------------------------------------------------------------- 1 | #include "Bar.hpp" 2 | 3 | class Bar; 4 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_target_include_directories/project/Bar.hpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Foo.hpp" 3 | 4 | class Bar : public Foo{}; 5 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_target_include_directories/project/Foo.cpp: -------------------------------------------------------------------------------- 1 | #include "Foo.hpp" 2 | 3 | class Foo; 4 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_target_include_directories/project/Foo.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | class Foo{}; 5 | -------------------------------------------------------------------------------- /vendor/json/test/cmake_target_include_directories/project/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | nlohmann::json j; 6 | 7 | return 0; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-08-29-fuzz/exec_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-08-29-fuzz/exec_speed.png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-08-29-fuzz/fuzz.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-08-29-fuzz/fuzz.tiff -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-08-29-fuzz/high_freq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-08-29-fuzz/high_freq.png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-08-29-fuzz/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
Banner:fuzz
Directory:fuzz-testing/out
Generated on:Mo 29 Aug 2016 22:14:22 CEST
6 |

7 |

8 |

9 | 10 | 11 | -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-08-29-fuzz/low_freq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-08-29-fuzz/low_freq.png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-09-09-nativejson_benchmark/conformance_overall_Result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-09-09-nativejson_benchmark/conformance_overall_Result.png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Memory_(byte).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Memory_(byte).png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Time_(ms).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Time_(ms).png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_2._Stringify_Time_(ms).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_2._Stringify_Time_(ms).png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_3._Prettify_Time_(ms).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_3._Prettify_Time_(ms).png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_7._Code_size_FileSize_(byte).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_7._Code_size_FileSize_(byte).png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-10-02-fuzz/exec_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-10-02-fuzz/exec_speed.png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-10-02-fuzz/fuzz.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-10-02-fuzz/fuzz.tiff -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-10-02-fuzz/high_freq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-10-02-fuzz/high_freq.png -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-10-02-fuzz/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
Banner:fuzz
Directory:fuzz-testing/out
Generated on:Sun Oct 2 08:51:02 CEST 2016
6 |

7 |

8 |

9 | 10 | 11 | -------------------------------------------------------------------------------- /vendor/json/test/reports/2016-10-02-fuzz/low_freq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Project-Beef/Beef/b230aabe794e81321ce4125d94c0131990c79fb8/vendor/json/test/reports/2016-10-02-fuzz/low_freq.png -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/README.txt: -------------------------------------------------------------------------------- 1 | Move to http://llvm.org/docs/LibFuzzer.html 2 | 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | LIBFUZZER_SRC_DIR=$(dirname $0) 3 | for f in $LIBFUZZER_SRC_DIR/*.cpp; do 4 | clang -g -O2 -fno-omit-frame-pointer -std=c++11 $f -c & 5 | done 6 | wait 7 | rm -f libFuzzer.a 8 | ar ru libFuzzer.a Fuzzer*.o 9 | rm -f Fuzzer*.o 10 | 11 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/CounterTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Test for a fuzzer: must find the case where a particular basic block is 5 | // executed many times. 6 | #include 7 | 8 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 9 | int Num = 0; 10 | for (size_t i = 0; i < Size; i++) 11 | if (Data[i] == 'A' + i) 12 | Num++; 13 | if (Num >= 4) { 14 | std::cerr << "BINGO!\n"; 15 | exit(1); 16 | } 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/DSO1.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Source code for a simple DSO. 5 | 6 | int DSO1(int a) { 7 | if (a < 123456) 8 | return 0; 9 | return 1; 10 | } 11 | 12 | void Uncovered1() { } 13 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/DSO2.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Source code for a simple DSO. 5 | 6 | int DSO2(int a) { 7 | if (a < 3598235) 8 | return 0; 9 | return 1; 10 | } 11 | 12 | void Uncovered2() {} 13 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/DSOTestExtra.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Source code for a simple DSO. 5 | 6 | int DSOTestExtra(int a) { 7 | if (a < 452345) 8 | return 0; 9 | return 1; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/DivTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Simple test for a fuzzer: find the interesting argument for div. 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | static volatile int Sink; 12 | 13 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 14 | if (Size < 4) return 0; 15 | int a; 16 | memcpy(&a, Data, 4); 17 | Sink = 12345678 / (987654 - a); 18 | return 0; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/EmptyTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | // 4 | // A fuzzer with empty target function. 5 | 6 | #include 7 | #include 8 | 9 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/LeakTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Test with a leak. 5 | #include 6 | #include 7 | 8 | static volatile void *Sink; 9 | 10 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 11 | if (Size > 0 && *Data == 'H') { 12 | Sink = new int; 13 | Sink = nullptr; 14 | } 15 | return 0; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/LeakTimeoutTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Test with a leak. 5 | #include 6 | #include 7 | 8 | static volatile int *Sink; 9 | 10 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 11 | if (!Size) return 0; 12 | Sink = new int; 13 | Sink = new int; 14 | while (Sink) *Sink = 0; // Infinite loop. 15 | return 0; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/NthRunCrashTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Crash on the N-th execution. 5 | #include 6 | #include 7 | #include 8 | 9 | static int Counter; 10 | 11 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 12 | if (Counter++ == 1000) { 13 | std::cout << "BINGO; Found the target, exiting\n"; 14 | exit(1); 15 | } 16 | return 0; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/NullDerefOnEmptyTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Simple test for a fuzzer. The fuzzer must find the empty string. 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | static volatile int *Null = 0; 11 | 12 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 13 | if (Size == 0) { 14 | std::cout << "Found the target, dereferencing NULL\n"; 15 | *Null = 1; 16 | } 17 | return 0; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/SingleMemcmpTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Simple test for a fuzzer. The fuzzer must find a particular string. 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 11 | char *S = (char*)Data; 12 | if (Size >= 6 && !memcmp(S, "qwerty", 6)) { 13 | fprintf(stderr, "BINGO\n"); 14 | exit(1); 15 | } 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/SingleStrcmpTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Simple test for a fuzzer. The fuzzer must find a particular string. 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 11 | char *S = (char*)Data; 12 | if (Size >= 7 && !strcmp(S, "qwerty")) { 13 | fprintf(stderr, "BINGO\n"); 14 | exit(1); 15 | } 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/SingleStrncmpTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Simple test for a fuzzer. The fuzzer must find a particular string. 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 11 | char *S = (char*)Data; 12 | if (Size >= 6 && !strncmp(S, "qwerty", 6)) { 13 | fprintf(stderr, "BINGO\n"); 14 | exit(1); 15 | } 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/ThreadedLeakTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // The fuzzer should find a leak in a non-main thread. 5 | #include 6 | #include 7 | #include 8 | 9 | static volatile int *Sink; 10 | 11 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 12 | if (Size == 0) return 0; 13 | if (Data[0] != 'F') return 0; 14 | std::thread T([&] { Sink = new int; }); 15 | T.join(); 16 | return 0; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/TimeoutEmptyTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // Simple test for a fuzzer. The fuzzer must find the empty string. 5 | #include 6 | #include 7 | 8 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 9 | static volatile int Zero = 0; 10 | if (!Size) 11 | while(!Zero) 12 | ; 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/UninstrumentedTest.cpp: -------------------------------------------------------------------------------- 1 | // This file is distributed under the University of Illinois Open Source 2 | // License. See LICENSE.TXT for details. 3 | 4 | // This test should not be instrumented. 5 | #include 6 | #include 7 | 8 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 9 | return 0; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/afl-driver-stderr.test: -------------------------------------------------------------------------------- 1 | ; Test that not specifying a stderr file isn't broken. 2 | RUN: unset AFL_DRIVER_STDERR_DUPLICATE_FILENAME 3 | RUN: AFLDriverTest 4 | 5 | ; Test that specifying an invalid file causes a crash. 6 | RUN: ASAN_OPTIONS= AFL_DRIVER_STDERR_DUPLICATE_FILENAME="%T" not --crash AFLDriverTest 7 | 8 | ; Test that a file is created when specified as the duplicate stderr. 9 | RUN: AFL_DRIVER_STDERR_DUPLICATE_FILENAME=%t AFLDriverTest 10 | RUN: stat %t 11 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/caller-callee.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-CallerCalleeTest -use_value_profile=1 -cross_over=0 -max_len=6 -seed=1 -runs=10000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/dict1.txt: -------------------------------------------------------------------------------- 1 | # Dictionary for SimpleDictionaryTest 2 | 3 | a="Elvis" 4 | b="Presley" 5 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-customcrossover.test: -------------------------------------------------------------------------------- 1 | RUN: rm -rf %t/CustomCrossover 2 | RUN: mkdir -p %t/CustomCrossover 3 | RUN: echo "0123456789" > %t/CustomCrossover/digits 4 | RUN: echo "abcdefghij" > %t/CustomCrossover/chars 5 | RUN: not LLVMFuzzer-CustomCrossOverTest -seed=1 -use_memcmp=0 -runs=100000 %t/CustomCrossover 2>&1 | FileCheck %s --check-prefix=LLVMFuzzerCustomCrossover 6 | RUN: rm -rf %t/CustomCrossover 7 | 8 | LLVMFuzzerCustomCrossover: In LLVMFuzzerCustomCrossover 9 | LLVMFuzzerCustomCrossover: BINGO 10 | 11 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-custommutator.test: -------------------------------------------------------------------------------- 1 | RUN: not LLVMFuzzer-CustomMutatorTest 2>&1 | FileCheck %s --check-prefix=LLVMFuzzerCustomMutator 2 | LLVMFuzzerCustomMutator: In LLVMFuzzerCustomMutator 3 | LLVMFuzzerCustomMutator: BINGO 4 | 5 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-dict.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | Done1000000: Done 1000000 runs in 3 | 4 | RUN: not LLVMFuzzer-SimpleDictionaryTest -dict=%S/dict1.txt -seed=1 -runs=1000003 2>&1 | FileCheck %s 5 | RUN: LLVMFuzzer-SimpleDictionaryTest -seed=1 -runs=1000000 2>&1 | FileCheck %s --check-prefix=Done1000000 6 | 7 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-finalstats.test: -------------------------------------------------------------------------------- 1 | RUN: LLVMFuzzer-SimpleTest -seed=1 -runs=77 -print_final_stats=1 2>&1 | FileCheck %s --check-prefix=FINAL_STATS 2 | FINAL_STATS: stat::number_of_executed_units: 77 3 | FINAL_STATS: stat::average_exec_per_sec: 0 4 | FINAL_STATS: stat::new_units_added: 5 | FINAL_STATS: stat::slowest_unit_time_sec: 0 6 | FINAL_STATS: stat::peak_rss_mb: 7 | 8 | RUN: LLVMFuzzer-SimpleTest %S/dict1.txt -runs=33 -print_final_stats=1 2>&1 | FileCheck %s --check-prefix=FINAL_STATS1 9 | FINAL_STATS1: stat::number_of_executed_units: 33 10 | FINAL_STATS1: stat::peak_rss_mb: 11 | 12 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-flags.test: -------------------------------------------------------------------------------- 1 | RUN: LLVMFuzzer-SimpleTest -foo_bar=1 2>&1 | FileCheck %s --check-prefix=FOO_BAR 2 | FOO_BAR: WARNING: unrecognized flag '-foo_bar=1'; use -help=1 to list all flags 3 | FOO_BAR: BINGO 4 | 5 | RUN: LLVMFuzzer-SimpleTest -runs=10 --max_len=100 2>&1 | FileCheck %s --check-prefix=DASH_DASH 6 | DASH_DASH: WARNING: did you mean '-max_len=100' (single dash)? 7 | DASH_DASH: INFO: A corpus is not provided, starting from an empty corpus 8 | 9 | RUN: LLVMFuzzer-SimpleTest -help=1 2>&1 | FileCheck %s --check-prefix=NO_INTERNAL 10 | NO_INTERNAL-NOT: internal flag 11 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-oom-with-profile.test: -------------------------------------------------------------------------------- 1 | REQUIRES: linux 2 | RUN: not LLVMFuzzer-OutOfMemoryTest -rss_limit_mb=300 2>&1 | FileCheck %s 3 | CHECK: ERROR: libFuzzer: out-of-memory (used: {{.*}}; limit: 300Mb) 4 | CHECK: Live Heap Allocations 5 | CHECK: Test unit written to ./oom- 6 | SUMMARY: libFuzzer: out-of-memory 7 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-printcovpcs.test: -------------------------------------------------------------------------------- 1 | RUN: LLVMFuzzer-SimpleTest -print_pcs=1 -seed=1 2>&1 | FileCheck %s --check-prefix=PCS 2 | PCS-NOT: NEW_PC 3 | PCS:INITED 4 | PCS:NEW_PC: {{0x[a-f0-9]+}} 5 | PCS:NEW_PC: {{0x[a-f0-9]+}} 6 | PCS:NEW 7 | PCS:BINGO 8 | 9 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-runs.test: -------------------------------------------------------------------------------- 1 | RUN: mkdir -p %t 2 | RUN: echo abcd > %t/NthRunCrashTest.in 3 | RUN: LLVMFuzzer-NthRunCrashTest %t/NthRunCrashTest.in 4 | RUN: LLVMFuzzer-NthRunCrashTest %t/NthRunCrashTest.in -runs=10 5 | RUN: not LLVMFuzzer-NthRunCrashTest %t/NthRunCrashTest.in -runs=10000 2>&1 | FileCheck %s 6 | RUN: rm %t/NthRunCrashTest.in 7 | CHECK: BINGO 8 | 9 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-seed.test: -------------------------------------------------------------------------------- 1 | RUN: LLVMFuzzer-SimpleCmpTest -seed=-1 -runs=0 2>&1 | FileCheck %s --check-prefix=CHECK_SEED_MINUS_ONE 2 | CHECK_SEED_MINUS_ONE: Seed: 4294967295 3 | 4 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-segv.test: -------------------------------------------------------------------------------- 1 | RUN: ASAN_OPTIONS=handle_segv=0 not LLVMFuzzer-NullDerefTest 2>&1 | FileCheck %s --check-prefix=LIBFUZZER_OWN_SEGV_HANDLER 2 | LIBFUZZER_OWN_SEGV_HANDLER: == ERROR: libFuzzer: deadly signal 3 | LIBFUZZER_OWN_SEGV_HANDLER: SUMMARY: libFuzzer: deadly signal 4 | LIBFUZZER_OWN_SEGV_HANDLER: Test unit written to ./crash- 5 | 6 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-threaded.test: -------------------------------------------------------------------------------- 1 | CHECK: Done 1000 runs in 2 | 3 | RUN: LLVMFuzzer-ThreadedTest -use_traces=1 -runs=1000 2>&1 | FileCheck %s 4 | RUN: LLVMFuzzer-ThreadedTest -use_traces=1 -runs=1000 2>&1 | FileCheck %s 5 | RUN: LLVMFuzzer-ThreadedTest -use_traces=1 -runs=1000 2>&1 | FileCheck %s 6 | RUN: LLVMFuzzer-ThreadedTest -use_traces=1 -runs=1000 2>&1 | FileCheck %s 7 | 8 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/fuzzer-ubsan.test: -------------------------------------------------------------------------------- 1 | RUN: not LLVMFuzzer-SignedIntOverflowTest-Ubsan 2>&1 | FileCheck %s 2 | CHECK: runtime error: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int' 3 | CHECK: Test unit written to ./crash- 4 | 5 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/hi.txt: -------------------------------------------------------------------------------- 1 | Hi! -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/lit.site.cfg.in: -------------------------------------------------------------------------------- 1 | config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" 2 | config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" 3 | config.has_lsan = True if @HAS_LSAN@ == 1 else False 4 | lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg") 5 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/minimize_crash.test: -------------------------------------------------------------------------------- 1 | RUN: echo 'Hi!rv349f34t3gg' > not_minimal_crash 2 | RUN: LLVMFuzzer-NullDerefTest -minimize_crash=1 not_minimal_crash -max_total_time=2 2>&1 | FileCheck %s 3 | CHECK: CRASH_MIN: failed to minimize beyond minimized-from-{{.*}} (3 bytes), exiting 4 | RUN: LLVMFuzzer-NullDerefTest -minimize_crash=1 not_minimal_crash -max_total_time=2 -exact_artifact_path=exact_minimized_path 2>&1 | FileCheck %s --check-prefix=CHECK_EXACT 5 | CHECK_EXACT: CRASH_MIN: failed to minimize beyond exact_minimized_path (3 bytes), exiting 6 | RUN: rm not_minimal_crash minimized-from-* exact_minimized_path 7 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/repeated-bytes.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: LLVMFuzzer-RepeatedBytesTest -seed=1 -runs=1000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/simple-cmp.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SimpleCmpTest -seed=1 -runs=100000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/standalone.test: -------------------------------------------------------------------------------- 1 | RUN: LLVMFuzzer-StandaloneInitializeTest %S/hi.txt %S/dict1.txt 2>&1 | FileCheck %s 2 | CHECK: StandaloneFuzzTargetMain: running 2 inputs 3 | CHECK: Done: {{.*}}hi.txt: (3 bytes) 4 | CHECK: Done: {{.*}}dict1.txt: (61 bytes) 5 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/swap-cmp.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SwapCmpTest -seed=1 -runs=10000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/trace-malloc.test: -------------------------------------------------------------------------------- 1 | RUN: LLVMFuzzer-TraceMallocTest -seed=1 -trace_malloc=1 -runs=10000 2>&1 | FileCheck %s 2 | CHECK-DAG: MallocFreeTracer: STOP 0 0 (same) 3 | CHECK-DAG: MallocFreeTracer: STOP 0 1 (DIFFERENT) 4 | CHECK-DAG: MallocFreeTracer: STOP 1 0 (DIFFERENT) 5 | CHECK-DAG: MallocFreeTracer: STOP 1 1 (same) 6 | 7 | RUN: LLVMFuzzer-TraceMallocTest -seed=1 -trace_malloc=2 -runs=1000 2>&1 | FileCheck %s --check-prefix=TRACE2 8 | TRACE2-DAG: FREE[0] 9 | TRACE2-DAG: MALLOC[0] 10 | TRACE2-DAG: in LLVMFuzzerTestOneInput 11 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/ubsan/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # These tests are instrumented with ubsan in non-recovery mode. 2 | 3 | set(CMAKE_CXX_FLAGS 4 | "${LIBFUZZER_FLAGS_BASE} -fsanitize=undefined -fno-sanitize-recover=all") 5 | 6 | set(UbsanTests 7 | SignedIntOverflowTest 8 | ) 9 | 10 | foreach(Test ${UbsanTests}) 11 | add_libfuzzer_test(${Test}-Ubsan SOURCES ../${Test}.cpp) 12 | endforeach() 13 | 14 | # Propagate value into parent directory 15 | set(TestBinaries ${TestBinaries} PARENT_SCOPE) 16 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/ulimit.test: -------------------------------------------------------------------------------- 1 | RUN: ulimit -s 1000 2 | RUN: LLVMFuzzer-SimpleTest 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/uninstrumented/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # These tests are not instrumented with coverage and don't 2 | # have coverage rt in the binary. 3 | 4 | set(CMAKE_CXX_FLAGS 5 | "${LIBFUZZER_FLAGS_BASE} -fno-sanitize=all -fno-sanitize-coverage=edge,trace-cmp,indirect-calls,8bit-counters,trace-pc-guard") 6 | 7 | set(UninstrumentedTests 8 | UninstrumentedTest 9 | ) 10 | 11 | foreach(Test ${UninstrumentedTests}) 12 | add_libfuzzer_test(${Test}-Uninstrumented SOURCES ../${Test}.cpp) 13 | endforeach() 14 | 15 | # Propagate value into parent directory 16 | set(TestBinaries ${TestBinaries} PARENT_SCOPE) 17 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/unit/lit.cfg: -------------------------------------------------------------------------------- 1 | import lit.formats 2 | 3 | config.name = "LLVMFuzzer-Unittest" 4 | print config.test_exec_root 5 | config.test_format = lit.formats.GoogleTest(".", "Unittest") 6 | config.suffixes = [] 7 | config.test_source_root = config.test_exec_root 8 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/unit/lit.site.cfg.in: -------------------------------------------------------------------------------- 1 | config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" 2 | lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/unit/lit.cfg") 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-cmp.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SimpleCmpTest -seed=1 -use_cmp=0 -use_value_profile=1 -runs=100000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-cmp2.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SimpleHashTest -seed=1 -use_cmp=0 -use_value_profile=1 -runs=100000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-cmp3.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-AbsNegAndConstantTest -seed=1 -use_cmp=0 -use_value_profile=1 -runs=100000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-cmp4.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-AbsNegAndConstant64Test -seed=1 -use_cmp=0 -use_value_profile=1 -runs=100000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-div.test: -------------------------------------------------------------------------------- 1 | CHECK: AddressSanitizer: FPE 2 | RUN: not LLVMFuzzer-DivTest -seed=1 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s 3 | 4 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-load.test: -------------------------------------------------------------------------------- 1 | CHECK: AddressSanitizer: global-buffer-overflow 2 | RUN: not LLVMFuzzer-LoadTest -seed=1 -use_cmp=0 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s 3 | 4 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-mem.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SingleMemcmpTest -seed=1 -use_cmp=0 -use_memcmp=0 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-set.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-FourIndependentBranchesTest -seed=1 -use_cmp=0 -use_value_profile=1 -runs=100000000 2>&1 | FileCheck %s 3 | 4 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-strcmp.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SingleStrcmpTest -seed=1 -use_cmp=0 -use_memcmp=0 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-strncmp.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SingleStrncmpTest -seed=1 -use_cmp=0 -use_memcmp=0 -use_value_profile=1 -runs=10000000 2>&1 | FileCheck %s 3 | -------------------------------------------------------------------------------- /vendor/json/test/thirdparty/Fuzzer/test/value-profile-switch.test: -------------------------------------------------------------------------------- 1 | CHECK: BINGO 2 | RUN: not LLVMFuzzer-SwitchTest -use_cmp=0 -use_value_profile=1 -runs=100000000 -seed=1 2>&1 | FileCheck %s 3 | RUN: not LLVMFuzzer-Switch2Test -use_cmp=0 -use_value_profile=1 -runs=100000000 -seed=1 2>&1 | FileCheck %s 4 | -------------------------------------------------------------------------------- /vendor/json/third_party/amalgamate/CHANGES.md: -------------------------------------------------------------------------------- 1 | The following changes have been made to the code with respect to : 2 | 3 | - Resolved inspection results from PyCharm: 4 | - replaced tabs with spaces 5 | - added encoding annotation 6 | - reindented file to remove trailing whitespaces 7 | - unused import `sys` 8 | - membership check 9 | - made function from `_is_within` 10 | - removed unused variable `actual_path` 11 | -------------------------------------------------------------------------------- /vendor/json/third_party/amalgamate/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "project": "JSON for Modern C++", 3 | "target": "single_include/nlohmann/json.hpp", 4 | "sources": [ 5 | "include/nlohmann/json.hpp" 6 | ], 7 | "include_paths": ["include"] 8 | } 9 | -------------------------------------------------------------------------------- /vendor/json/third_party/cpplint/update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | wget -N https://raw.githubusercontent.com/cpplint/cpplint/master/cpplint.py 4 | wget -N https://raw.githubusercontent.com/cpplint/cpplint/master/LICENSE 5 | wget -N https://raw.githubusercontent.com/cpplint/cpplint/master/README.rst 6 | -------------------------------------------------------------------------------- /vendor/json/wsjcpp.yml: -------------------------------------------------------------------------------- 1 | wsjcpp_version: "v0.1.1" 2 | cmake_minimum_required: "3.0" 3 | cmake_cxx_standard: "11" 4 | name: "nlohmann/json" 5 | version: "v3.9.1" 6 | description: "JSON for Modern C++" 7 | issues: "https://github.com/nlohmann/json/issues" 8 | keywords: 9 | - "c++" 10 | - "json" 11 | 12 | repositories: 13 | - type: main 14 | url: "https://github.com/nlohmann/json" 15 | 16 | authors: 17 | - name: "Niels Lohmann" 18 | email: "mail@nlohmann.me" 19 | 20 | distribution: 21 | - source-file: "single_include/nlohmann/json.hpp" 22 | target-file: "json.hpp" 23 | type: "source-code" 24 | -------------------------------------------------------------------------------- /vendor/sandbird/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.15) 2 | project(sandbird) 3 | 4 | add_library(${PROJECT_NAME} STATIC src/sandbird.c src/sandbird.h) 5 | target_include_directories(${PROJECT_NAME} PUBLIC src) 6 | 7 | if(MSVC) 8 | target_link_libraries(${PROJECT_NAME} ws2_32) 9 | endif() 10 | --------------------------------------------------------------------------------