1mod math;
3mod resolve;
4pub(crate) mod sys;
5
6pub use math::MaybeMath;
7pub use resolve::{MaybeResolve, ResolveOrZero};
8
9#[cfg(feature = "grid")]
10mod front_back_vec_builder;
11#[cfg(feature = "grid")]
12pub(crate) use front_back_vec_builder::FrontBackVecBuilder;
13
14#[doc(hidden)]
15#[macro_use]
16pub(crate) mod debug;
17
18#[cfg(feature = "std")]
19mod print;
20#[cfg(feature = "std")]
21pub use print::print_tree;
22#[cfg(feature = "std")]
23pub use print::write_tree;
24
25#[cfg(feature = "parse")]
26pub(crate) mod parse;
27#[cfg(feature = "parse")]
28pub use parse::{ParseError, ParseResult};
29
30#[cfg(feature = "serde")]
34pub(crate) fn deserialize_from_str<'de, S, D>(deserializer: D) -> Result<S, D::Error>
35where
36 S: for<'a> From<&'a str>,
37 D: serde::Deserializer<'de>,
38{
39 let s: crate::util::sys::String = serde::Deserialize::deserialize(deserializer)?;
40 Ok(S::from(&s))
41}