/**************************************************************************** ** ** Copyright (C) 2016 Intel Corporation ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and associated documentation files (the "Software"), to deal ** in the Software without restriction, including without limitation the rights ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ** copies of the Software, and to permit persons to whom the Software is ** furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ** THE SOFTWARE. ** ****************************************************************************/ /** * \mainpage * The TinyCBOR $(VERSION) library is a small CBOR encoder and decoder library, * optimized for very fast operation with very small footprint. The main encoder * and decoder functions do not allocate memory. * * TinyCBOR is divided into the following groups of functions and structures: * - \ref CborGlobals * - \ref CborEncoding * - \ref CborParsing * - \ref CborPretty * - \ref CborToJson */ /** * \file * The is the main header in TinyCBOR and defines the constants used by most functions * as well as the structures for encoding (CborEncoder) and decoding (CborValue). * * \sa */ /** * \file * The file contains the routines that are used to convert a CBOR * data stream into JSON. * * \sa */ /** * \defgroup CborGlobals Global constants * \brief Constants used by all TinyCBOR function groups. */ /** * \addtogroup CborGlobals * @{ */ /** * \var size_t CborIndefiniteLength * * This variable is a constant used to indicate that the length of the map or * array is not yet determined. It is used in functions * cbor_encoder_create_map() and cbor_encoder_create_array() */ /** * \enum CborType * The CborType enum contains the types known to TinyCBOR. * * \value CborIntegerType Type is an integer value, positive, negative or zero * \value CborByteStringType Type is a string of arbitrary raw bytes * \value CborTextStringType Type is a text string encoded in UTF-8 * \value CborArrayType Type is a CBOR array * \value CborMapType Type is a CBOR map (an associative container with key and value pairs) * \value CborTagType Type is a CBOR tag (a 64-bit integer describing the item that follows, see CborKnownTags) * \value CborSimpleType Type is one of the CBOR Simple Types * \value CborBooleanType Type is a boolean (true or false) * \value CborNullType Type encodes a null * \value CborUndefinedType Type encodes an undefined value * \value CborHalfFloatType Type is an IEEE 754 half precision (16-bit) floating point type * \value CborFloatType Type is an IEEE 754 single precision (32-bit) floating point type * \value CborDoubleType Type is an IEEE 754 double precision (64-bit) floating point type * \value CborInvalidType Type is not valid (this value is used to indicate error conditions) */ /** * \enum CborKnownTags * The CborKnownTags enum contains known tags specified in RFC 7049, for use by the application. * TinyCBOR does not usually interpret the meaning of these tags and does not add them to the * output stream, unless specifically instructed to do so in functions for that effect. * * \value CborDateTimeStringTag Text string contains a date-time encoded in RFC 3339 format, "YYYY-MM-DD hh:mm:ss+zzzz" * \value CborUnixTime_tTag Number is a Unix time_t quantity, the number of seconds since 1970-01-01 midnight UTC * \value CborPositiveBignumTag Item is a CBOR byte string encoding a positive integer of arbitrary precision * \value CborNegativeBignumTag Item is a CBOR byte string encoding a negative integer of arbitrary precision * \value CborDecimalTag Item is a CBOR array of two integers encoding a fixed-point decimal * \value CborBigfloatTag Item is a bigfloat * \value CborExpectedBase64urlTag Item is a CBOR byte string that is expected to be encoded as Base64Url * \value CborExpectedBase64Tag Item is a CBOR byte string that is expected to be encoded as Base64 * \value CborExpectedBase16Tag Item is a CBOR byte string that is expected to be encoded as Base16 (also known as "hexdump") * \value CborUriTag Item is a CBOR text string containing a URI (RFC 3986) or IRI (RFC 3987) * \value CborBase64urlTag Item is a CBOR text string that was encoded as Base64Url * \value CborBase64Tag Item is a CBOR text string that was encoded as Base64 * \value CborRegularExpressionTag Item is a CBOR text string containing a regular expression * \value CborMimeMessageTag Item is a CBOR text string containing a MIME message (RFC 2045, 2046, 2047, 2822) * \value CborSignatureTag Item contains CBOR-encoded data. * This tag is also used as "file magic," marking a file as containing CBOR */ /** * \typedef CborTag * This typedef is an unsigned 64-bit integer. Known CBOR tags can be used from the CborKnownTags enum * but the user application may use other tag values than the ones specified in RFC 7049. */ /** @} */