#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![forbid(unsafe_code)]
#![deny(missing_docs)]
#![warn(clippy::all, clippy::pedantic, clippy::nursery)]
#[cfg(feature = "alloc")]
extern crate alloc;
mod canonical;
mod error;
mod limits;
mod profile;
mod query;
#[cfg(feature = "serde")]
mod serde_impl;
mod stream;
mod walk;
#[cfg(feature = "alloc")]
mod decode;
pub use crate::canonical::CanonicalCborRef;
pub use crate::error::{CborError, ErrorCode};
pub use crate::limits::{CborLimits, DecodeLimits};
pub use crate::profile::{MAX_SAFE_INTEGER, MAX_SAFE_INTEGER_I64, MIN_SAFE_INTEGER};
pub use crate::query::{
ArrayRef, BigIntRef, CborIntegerRef, CborKind, CborValueRef, MapRef, PathElem,
};
pub use crate::walk::{validate, validate_canonical};
#[cfg(feature = "alloc")]
mod encode;
#[cfg(feature = "alloc")]
mod macros;
#[cfg(feature = "alloc")]
mod value;
#[cfg(feature = "alloc")]
pub use crate::canonical::CanonicalCbor;
#[cfg(feature = "alloc")]
pub use crate::decode::decode_value;
#[cfg(feature = "alloc")]
pub use crate::encode::{ArrayEncoder, CanonicalEncoder, MapEncoder};
#[cfg(feature = "alloc")]
#[doc(hidden)]
pub use crate::macros::__cbor_macro;
#[cfg(feature = "alloc")]
pub use crate::value::{cbor_equal, BigInt, CborInteger, CborMap, CborValue, F64Bits};
#[cfg(feature = "serde")]
pub use crate::serde_impl::serde_value;
#[cfg(feature = "serde")]
pub use crate::serde_impl::{from_slice, from_value_ref, to_value, to_vec};