-/**
-@brief Returns the type of the value object \p object.
-
-@param[in] object Value object of which to get the type.
-@returns Type of value object \p object,
- or #BT_VALUE_TYPE_UNKNOWN on error.
-
-@prenotnull{object}
-@postrefcountsame{object}
-
-@sa #bt_value_type: Value object types.
-@sa bt_value_is_null(): Returns whether or not a given value object
- is the null value object.
-@sa bt_value_is_bool(): Returns whether or not a given value object
- is a boolean value object.
-@sa bt_value_is_integer(): Returns whether or not a given value
- object is an integer value object.
-@sa bt_value_is_float(): Returns whether or not a given value object
- is a floating point number value object.
-@sa bt_value_is_string(): Returns whether or not a given value object
- is a string value object.
-@sa bt_value_is_array(): Returns whether or not a given value object
- is an array value object.
-@sa bt_value_is_map(): Returns whether or not a given value object
- is a map value object.
-*/
-extern enum bt_value_type bt_value_get_type(const struct bt_value *object);
-
-/**
-@brief Returns whether or not the value object \p object is the null
- value object.
-
-The only valid null value object is \ref bt_value_null.
-
-An alternative to calling this function is to directly compare the value
-object pointer to the \ref bt_value_null variable.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is the null value object.
-
-@prenotnull{object}
-@postrefcountsame{object}
-
-@sa bt_value_get_type(): Returns the type of a given value object.
-*/
-static inline
-bool bt_value_is_null(const struct bt_value *object)
-{
- return bt_value_get_type(object) == BT_VALUE_TYPE_NULL;
-}
-
-/**
-@brief Returns whether or not the value object \p object is a boolean
- value object.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is a boolean value object.
-
-@prenotnull{object}
-@postrefcountsame{object}
-
-@sa bt_value_get_type(): Returns the type of a given value object.
-*/
-static inline
-bool bt_value_is_bool(const struct bt_value *object)
-{
- return bt_value_get_type(object) == BT_VALUE_TYPE_BOOL;
-}
-
-/**
-@brief Returns whether or not the value object \p object is an integer
- value object.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is an integer value object.
-
-@sa bt_value_get_type(): Returns the type of a given value object.
-*/
-static inline
-bool bt_value_is_integer(const struct bt_value *object)
-{
- return bt_value_get_type(object) == BT_VALUE_TYPE_INTEGER;
-}
-
-/**
-@brief Returns whether or not the value object \p object is a floating
- point number value object.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is a floating point
- number value object.
-
-@prenotnull{object}
-@postrefcountsame{object}
-
-@sa bt_value_get_type(): Returns the type of a given value object.
-*/
-static inline
-bool bt_value_is_float(const struct bt_value *object)
-{
- return bt_value_get_type(object) == BT_VALUE_TYPE_FLOAT;
-}
-
-/**
-@brief Returns whether or not the value object \p object is a string
- value object.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is a string value object.
-
-@prenotnull{object}
-@postrefcountsame{object}
-
-@sa bt_value_get_type(): Returns the type of a given value object.
-*/
-static inline
-bool bt_value_is_string(const struct bt_value *object)
-{
- return bt_value_get_type(object) == BT_VALUE_TYPE_STRING;
-}
-
-/**
-@brief Returns whether or not the value object \p object is an array
- value object.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is an array value object.
-
-@prenotnull{object}
-@postrefcountsame{object}
-
-@sa bt_value_get_type(): Returns the type of a given value object.
-*/
-static inline
-bool bt_value_is_array(const struct bt_value *object)
-{
- return bt_value_get_type(object) == BT_VALUE_TYPE_ARRAY;
-}
-
-/**
-@brief Returns whether or not the value object \p object is a map value
- object.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is a map value object.
-
-@prenotnull{object}
-@postrefcountsame{object}
-
-@sa bt_value_get_type(): Returns the type of a given value object.
-*/
-static inline
-bool bt_value_is_map(const struct bt_value *object)
-{
- return bt_value_get_type(object) == BT_VALUE_TYPE_MAP;
-}
-
-/** @} */
-
-/**
-@name Common value object functions
-@{
-*/
-
-/**
-@brief Recursively freezes the value object \p object.
-
-You cannot modify a frozen value object: it is considered immutable.
-Reference counting still works on a frozen value object, however: you
-can pass a frozen value object to bt_get() and bt_put().
-
-If \p object is an array value object or a map value object, this
-function also freezes all its children recursively.
-
-Freezing a value object is typically used to make it immutable after
-it's built by its initial owner.
-
-@param[in] object Value object to freeze.
-@returns One of #bt_value_status values. If \p object
- is already frozen, however, #BT_VALUE_STATUS_OK
- is returned anyway (that is, this function never
- returns #BT_VALUE_STATUS_FROZEN).
-
-@prenotnull{object}
-@postrefcountsame{object}
-@post <strong>On success</strong>, \p object and all its children
- are frozen.
-
-@sa bt_value_is_frozen(): Returns whether or not a value object is
- frozen.
-*/
-extern enum bt_value_status bt_value_freeze(struct bt_value *object);
-
-/**
-@brief Returns whether or not the value object \p object is frozen.
-
-@param[in] object Value object to check.
-@returns \c true if \p object is frozen.
-
-@prenotnull{object}
-@postrefcountsame{object}
-*/
-extern bool bt_value_is_frozen(const struct bt_value *object);
-
-/**
-@brief Creates a \em deep copy of the value object \p object.
-
-You can copy a frozen value object: the resulting copy is
-<em>not frozen</em>.
-
-@param[in] object Value object to copy.
-@returns Deep copy of \p object on success, or \c NULL
- on error.
-
-@prenotnull{object}
-@post <strong>On success, if the returned value object is not
- \ref bt_value_null</strong>, its reference count is 1.
-
-@postrefcountsame{object}
-*/
-extern struct bt_value *bt_value_copy(const struct bt_value *object);
-
-/**
-@brief Recursively compares the value objects \p object_a and
- \p object_b and returns \c true if they have the same
- \em content (raw values).
-
-@param[in] object_a Value object A to compare to \p object_b.
-@param[in] object_b Value object B to compare to \p object_a.
-@returns \c true if \p object_a and \p object_b have the
- same \em content, or \c false if they differ
- or on error.
-
-@postrefcountsame{object_a}
-@postrefcountsame{object_b}
-*/
-extern bool bt_value_compare(const struct bt_value *object_a,
- const struct bt_value *object_b);
-
-/** @} */
-
-/**
-@name Boolean value object functions
-@{
-*/
-
-/**
-@brief Creates a default boolean value object.
-
-The created boolean value object's initial raw value is \c false.
-
-@returns Created boolean value object on success, or \c NULL
- on error.