#![deny(warnings, clippy::pedantic)]
#![allow(clippy::cast_possible_wrap, clippy::cast_sign_loss)]
pub mod kind;
pub mod secrets;
#[allow(clippy::module_inception)]
pub mod value;
mod btreemap;
mod keystring;
pub use kind::Kind;
pub use self::keystring::KeyString;
pub use self::secrets::Secrets;
#[allow(clippy::module_name_repetitions)]
pub use self::value::{ObjectMap, Value, ValueRegex};
#[macro_export]
macro_rules! value {
([]) => ({
$crate::value::Value::Array(vec![])
});
([$($v:tt),+ $(,)?]) => ({
let vec: Vec<$crate::value::Value> = vec![$($crate::value!($v)),+];
$crate::value::Value::Array(vec)
});
({}) => ({
$crate::value::Value::Object(::std::collections::BTreeMap::default())
});
({$($($k1:literal)? $($k2:ident)?: $v:tt),+ $(,)?}) => ({
let map = vec![$((String::from($($k1)? $(stringify!($k2))?).into(), $crate::value!($v))),+]
.into_iter()
.collect::<::std::collections::BTreeMap<_, $crate::value::Value>>();
$crate::value::Value::Object(map)
});
(null) => ({
$crate::value::Value::Null
});
($k:expr_2021) => ({
$crate::value::Value::from($k)
});
}