# 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
