mod emit;
mod number;
mod owned;
mod parser;
pub mod simd;
mod value;
#[cfg(feature = "datetime")]
mod datetime;
#[cfg(feature = "serde")]
mod ser;
#[cfg(feature = "serde_json")]
mod serde_json_bridge;
pub use number::NumberValue;
pub use owned::{OwnedDataValue, OwnedValueIndex};
pub use parser::{ParseError, ParseErrorKind};
pub use value::{DataValue, ValueIndex};
#[cfg(feature = "datetime")]
pub use datetime::{DataDateTime, DataDuration};
#[cfg(feature = "serde")]
pub use ser::DataValueSeed;
pub use emit::Pretty;
#[macro_export]
macro_rules! owned_json {
(null) => { $crate::OwnedDataValue::Null };
(true) => { $crate::OwnedDataValue::Bool(true) };
(false) => { $crate::OwnedDataValue::Bool(false) };
([]) => { $crate::OwnedDataValue::Array(::std::vec::Vec::new()) };
([ $( $elem:tt ),+ $(,)? ]) => {
$crate::OwnedDataValue::Array(::std::vec![
$( $crate::owned_json!($elem) ),+
])
};
({}) => { $crate::OwnedDataValue::Object(::std::vec::Vec::new()) };
({ $( $key:tt : $val:tt ),+ $(,)? }) => {
$crate::OwnedDataValue::Object(::std::vec![
$( (
::std::string::ToString::to_string(&$key),
$crate::owned_json!($val),
) ),+
])
};
($other:expr) => { $crate::OwnedDataValue::from($other) };
}