#![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 float;
mod limits;
mod order;
mod query;
mod scanner;
#[cfg(feature = "serde")]
mod serde_impl;
pub use crate::canonical::CanonicalCborRef;
pub use crate::error::{CborError, CborErrorCode, CborErrorKind};
pub use crate::limits::{CborLimits, DecodeLimits};
pub use crate::limits::{MAX_SAFE_INTEGER, MAX_SAFE_INTEGER_I64, MIN_SAFE_INTEGER};
pub use crate::query::{
ArrayRef, BigIntRef, CborKind, CborValueRef, MapRef, PathElem, QueryError, QueryErrorCode,
};
pub use crate::scanner::{validate, validate_canonical};
#[cfg(feature = "alloc")]
mod encode;
#[cfg(feature = "alloc")]
mod value;
#[cfg(feature = "alloc")]
pub use crate::canonical::CanonicalCbor;
#[cfg(feature = "alloc")]
pub use crate::scanner::decode_value;
#[cfg(feature = "alloc")]
pub use crate::value::{cbor_equal, BigInt, CborMap, CborValue, F64Bits};
#[cfg(feature = "serde")]
pub use crate::serde_impl::{from_slice, from_value_ref, to_value, to_vec};