forked from Research/WhisperCom
51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
|
# basic_json::binary
|
||
|
|
||
|
```cpp
|
||
|
// (1)
|
||
|
static basic_json binary(const typename binary_t::container_type& init);
|
||
|
static basic_json binary(typename binary_t::container_type&& init);
|
||
|
|
||
|
// (2)
|
||
|
static basic_json binary(const typename binary_t::container_type& init,
|
||
|
std::uint8_t subtype);
|
||
|
static basic_json binary(typename binary_t::container_type&& init,
|
||
|
std::uint8_t subtype);
|
||
|
```
|
||
|
|
||
|
1. Creates a JSON binary array value from a given binary container.
|
||
|
2. Creates a JSON binary array value from a given binary container with subtype.
|
||
|
|
||
|
Binary values are part of various binary formats, such as CBOR, MessagePack, and BSON. This constructor is used to
|
||
|
create a value for serialization to those formats.
|
||
|
|
||
|
## Parameters
|
||
|
|
||
|
`init` (in)
|
||
|
: container containing bytes to use as binary type
|
||
|
|
||
|
`subtype` (in)
|
||
|
: subtype to use in CBOR, MessagePack, and BSON
|
||
|
|
||
|
## Return value
|
||
|
|
||
|
JSON binary array value
|
||
|
|
||
|
## Exception safety
|
||
|
|
||
|
Strong guarantee: if an exception is thrown, there are no changes in the JSON value.
|
||
|
|
||
|
## Complexity
|
||
|
|
||
|
Linear in the size of `init`; constant for `typename binary_t::container_type&& init` versions.
|
||
|
|
||
|
## Notes
|
||
|
|
||
|
Note, this function exists because of the difficulty in correctly specifying the correct template overload in the
|
||
|
standard value ctor, as both JSON arrays and JSON binary arrays are backed with some form of a `std::vector`. Because
|
||
|
JSON binary arrays are a non-standard extension it was decided that it would be best to prevent automatic initialization
|
||
|
of a binary array type, for backwards compatibility and so it does not happen on accident.
|
||
|
|
||
|
## Version history
|
||
|
|
||
|
- Added in version 3.8.0.
|