feat():initial version
This commit is contained in:
163
install/boost_1_75_0/include/boost/json/kind.hpp
Normal file
163
install/boost_1_75_0/include/boost/json/kind.hpp
Normal file
@@ -0,0 +1,163 @@
|
||||
//
|
||||
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// Official repository: https://github.com/boostorg/json
|
||||
//
|
||||
|
||||
#ifndef BOOST_JSON_KIND_HPP
|
||||
#define BOOST_JSON_KIND_HPP
|
||||
|
||||
#include <boost/json/detail/config.hpp>
|
||||
#include <boost/json/string_view.hpp>
|
||||
#include <iosfwd>
|
||||
|
||||
BOOST_JSON_NS_BEGIN
|
||||
|
||||
/** Constants for identifying the type of a value
|
||||
|
||||
These values are returned from @ref value::kind
|
||||
*/
|
||||
// Order matters
|
||||
enum class kind : unsigned char
|
||||
{
|
||||
/// The null value.
|
||||
null,
|
||||
|
||||
/// A `bool`.
|
||||
bool_,
|
||||
|
||||
/// A `std::int64_t`
|
||||
int64,
|
||||
|
||||
/// A `std::uint64_t`
|
||||
uint64,
|
||||
|
||||
/// A `double`.
|
||||
double_,
|
||||
|
||||
/// A @ref string.
|
||||
string,
|
||||
|
||||
/// An @ref array.
|
||||
array,
|
||||
|
||||
/// An @ref object.
|
||||
object
|
||||
};
|
||||
|
||||
/** Return a string representing a kind.
|
||||
|
||||
This provides a human-readable string
|
||||
representing a @ref kind. This may be
|
||||
useful for diagnostics.
|
||||
|
||||
@returns The string.
|
||||
|
||||
@param k The kind.
|
||||
*/
|
||||
BOOST_JSON_DECL
|
||||
string_view
|
||||
to_string(kind k) noexcept;
|
||||
|
||||
/** Format a kind to an output stream.
|
||||
|
||||
This allows a @ref kind to be formatted as
|
||||
a string, typically for diagnostics.
|
||||
|
||||
@returns The output stream.
|
||||
|
||||
@param os The output stream to format to.
|
||||
|
||||
@param k The kind to format.
|
||||
*/
|
||||
BOOST_JSON_DECL
|
||||
std::ostream&
|
||||
operator<<(std::ostream& os, kind k);
|
||||
|
||||
/** A tag type used to select a @ref value constructor overload.
|
||||
|
||||
The library provides the constant @ref array_kind
|
||||
which may be used to select the @ref value constructor
|
||||
that creates an empty @ref array.
|
||||
|
||||
@see @ref array_kind
|
||||
*/
|
||||
struct array_kind_t
|
||||
{
|
||||
};
|
||||
|
||||
/** A tag type used to select a @ref value constructor overload.
|
||||
|
||||
The library provides the constant @ref object_kind
|
||||
which may be used to select the @ref value constructor
|
||||
that creates an empty @ref object.
|
||||
|
||||
@see @ref object_kind
|
||||
*/
|
||||
struct object_kind_t
|
||||
{
|
||||
};
|
||||
|
||||
/** A tag type used to select a @ref value constructor overload.
|
||||
|
||||
The library provides the constant @ref string_kind
|
||||
which may be used to select the @ref value constructor
|
||||
that creates an empty @ref string.
|
||||
|
||||
@see @ref string_kind
|
||||
*/
|
||||
struct string_kind_t
|
||||
{
|
||||
};
|
||||
|
||||
/** A constant used to select a @ref value constructor overload.
|
||||
|
||||
The library provides this constant to allow efficient
|
||||
construction of a @ref value containing an empty @ref array.
|
||||
|
||||
@par Example
|
||||
@code
|
||||
storage_ptr sp;
|
||||
value jv( array_kind, sp ); // sp is an optional parameter
|
||||
@endcode
|
||||
|
||||
@see @ref array_kind_t
|
||||
*/
|
||||
BOOST_JSON_INLINE_VARIABLE(array_kind, array_kind_t);
|
||||
|
||||
/** A constant used to select a @ref value constructor overload.
|
||||
|
||||
The library provides this constant to allow efficient
|
||||
construction of a @ref value containing an empty @ref object.
|
||||
|
||||
@par Example
|
||||
@code
|
||||
storage_ptr sp;
|
||||
value jv( object_kind, sp ); // sp is an optional parameter
|
||||
@endcode
|
||||
|
||||
@see @ref object_kind_t
|
||||
*/
|
||||
BOOST_JSON_INLINE_VARIABLE(object_kind, object_kind_t);
|
||||
|
||||
/** A constant used to select a @ref value constructor overload.
|
||||
|
||||
The library provides this constant to allow efficient
|
||||
construction of a @ref value containing an empty @ref string.
|
||||
|
||||
@par Example
|
||||
@code
|
||||
storage_ptr sp;
|
||||
value jv( string_kind, sp ); // sp is an optional parameter
|
||||
@endcode
|
||||
|
||||
@see @ref string_kind_t
|
||||
*/
|
||||
BOOST_JSON_INLINE_VARIABLE(string_kind, string_kind_t);
|
||||
|
||||
BOOST_JSON_NS_END
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user