1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! # FEAGI Data Serialization
//!
//! This crate provides traits and utilities for serializing and deserializing various data structures
//! to and from byte vectors in the FEAGI system. It offers a unified serialization framework through
//! the [`FeagiSerializable`] trait and efficient byte data management via [`FeagiByteContainer`].
//!
//! ## Core Components
//!
//! - **[`FeagiSerializable`]** - Common trait for structures that can be serialized to/from bytes
//! - **[`FeagiByteContainer`]** - Container that manages and owns byte data for multiple structures
//! - **[`FeagiByteStructureType`]** - Enum identifying different serializable structure types
//!
//!
//! ## Basic Usage
//!
//! ```rust
//! use feagi_data_serialization::{FeagiByteContainer, FeagiSerializable};
//!
//! // Create an empty container
//! let mut container = FeagiByteContainer::new_empty();
//! assert!(container.is_valid());
//! assert_eq!(container.try_get_number_contained_structures().unwrap(), 0);
//!
//! // Get information about the container
//! let byte_count = container.get_number_of_bytes_used();
//! let struct_types = container.get_contained_struct_types();
//! ```
//!
//! More information about the specification can be found in the documentation.
pub use FeagiSerializable;
pub use FeagiByteStructureType;
pub use FeagiByteContainer;