# Copyright (c) 2018 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0

config TINYCBOR
	bool "tinyCBOR Support"
	help
	  This option enables the tinyCBOR library.

if TINYCBOR

config CBOR_NO_DFLT_WRITER
	bool "No default writer support"
	help
	  This option specifies whether a default writer exists.

config CBOR_NO_DFLT_READER
	bool "No default reader support"
	help
	  This option specifies whether a default reader exists.

config CBOR_ENCODER_NO_CHECK_USER
	bool "No encoder checks for user args for validity"
	help
	  This option specifies whether a check user exists for a cbor encoder.

config CBOR_PARSER_MAX_RECURSIONS
	int "Parser max recursions"
	default 1024
	help
	  This option specifies max recursions for the parser.

config CBOR_PARSER_NO_STRICT_CHECKS
	bool "No strict parser checks"
	help
	  This option enables the strict parser checks.

config CBOR_FLOATING_POINT
	bool "Floating point support"
	select NEWLIB_LIBC
	help
	  This option enables floating point support.

config CBOR_HALF_FLOAT_TYPE
	bool "Half float type support"
	select NEWLIB_LIBC
	help
	  This option enables half float type support.

config CBOR_WITHOUT_OPEN_MEMSTREAM
	bool "Without open memstream"
	default y
	help
	  This option enables open memstream support.

config CBOR_PRETTY_PRINTING
	bool "Implement pretty printing functionality"
	help
	  This option enables cbor_value_to_pretty_stream function.

endif #TINYCBOR
