cbor2 1.1.1

Full-featured CBOR (RFC 8949) for serde: async item I/O, canonical encoding, no_std, Value/RawValue, simple values, tags, COSE keys, well-formedness checks and diagnostics.
Documentation
use alloc::{string::String, vec::Vec};

use crate::value::Value;

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub(super) enum Indicator<'a> {
    None,
    Indefinite,
    Immediate,
    Ai(u8),
    Other(&'a str),
}

#[derive(Clone, Debug)]
pub(super) struct BigInt {
    pub(super) negative: bool,
    pub(super) magnitude: Vec<u8>,
}

#[derive(Clone, Debug)]
pub(super) enum Atom {
    Integer(BigInt),
    Float(f64),
    FloatRaw { bytes: Vec<u8>, value: f64 },
    Bytes(Vec<u8>),
    Text(String),
    Simple(u8),
    Raw(Vec<u8>),
}

pub(super) struct Arg {
    pub(super) encoded: Vec<u8>,
    pub(super) value: Value,
}

pub(super) const ELLIPSIS_TAG: u64 = 888;
pub(super) const UNRESOLVED_APP_TAG: u64 = 999;
#[cfg(feature = "cdn")]
pub(super) const CRI_TAG: u64 = 99;

#[derive(Clone, Debug, PartialEq, Eq)]
pub(super) enum ElidedStringPart {
    Bytes(Vec<u8>),
    Text(String),
    Ellipsis,
}