Skip to main content

qubit_codec/
lib.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2026 Haixing Hu.
4 *
5 *    SPDX-License-Identifier: Apache-2.0
6 *
7 *    Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10//! # qubit-codec
11//!
12//! Core codec traits and buffer conversion primitives for Rust applications.
13//!
14//! This crate contains only domain-neutral building blocks such as value
15//! codecs, owned value encoder/decoder helpers, byte-order markers, and
16//! progress-oriented buffer transcoders. Concrete binary, text, misc, and I/O
17//! adapters live in sibling crates.
18//!
19
20#![deny(missing_docs)]
21#![deny(unsafe_op_in_unsafe_fn)]
22
23mod buffered;
24mod byte_order;
25mod codec;
26mod value;
27
28pub mod prelude;
29pub use buffered::{
30    BufferedConvertEngine,
31    BufferedConvertHooks,
32    BufferedConverter,
33    BufferedDecodeEngine,
34    BufferedDecodeHooks,
35    BufferedDecoder,
36    BufferedEncodeEngine,
37    BufferedEncodeHooks,
38    BufferedEncoder,
39    BufferedTranscoder,
40    CapacityError,
41    CodecBufferedConverter,
42    CodecBufferedDecoder,
43    CodecBufferedEncoder,
44    DecodeAction,
45    DecodeContext,
46    EncodeContext,
47    EncodePlan,
48    FinishError,
49    TranscodeProgress,
50    TranscodeStatus,
51};
52pub use byte_order::{
53    BigEndian,
54    ByteOrder,
55    ByteOrderSpec,
56    LittleEndian,
57};
58pub use codec::{
59    Codec,
60    CodecConvertError,
61    CodecDecodeError,
62    CodecEncodeError,
63};
64pub use value::{
65    CodecValueDecoder,
66    CodecValueEncoder,
67    ValueDecoder,
68    ValueEncoder,
69};