jasn_core/lib.rs
1//! Core data types for JASN and JAML serialization formats.
2//!
3//! This crate provides the shared data model used by both JASN (JSON5-like) and JAML (YAML-like)
4//! serialization formats. Both formats share the same type system and in-memory representation.
5//!
6//! # Data Model
7//!
8//! ```rust
9//! use std::collections::BTreeMap;
10//! use jasn_core::Value;
11//!
12//! # fn main() {
13//! let mut map = BTreeMap::new();
14//! map.insert("name".to_string(), Value::String("Alice".to_string()));
15//! map.insert("age".to_string(), Value::Int(30));
16//!
17//! let value = Value::Map(map);
18//! # }
19//! ```
20//!
21//! # Features
22//!
23//! - `serde` (default): Enable serde serialization/deserialization support
24
25#![warn(missing_docs)]
26
27mod value;
28pub use value::{Binary, Timestamp, Value};
29
30#[cfg(feature = "serde")]
31pub mod de {
32 //! Serde deserialization support for Value.
33 pub use crate::value::de::{Error, from_value};
34}
35
36#[cfg(feature = "serde")]
37pub mod ser {
38 //! Serde serialization support for Value.
39 pub use crate::value::ser::{Error, Serializer, to_value};
40}