Skip to main content

taffy/util/
mod.rs

1//! Helpful misc. utilities such as a function to debug print a tree
2mod 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/// Deserialize a type `S` by deserializing a string, then using the `FromStr`
31/// impl of `S` to create the result. The generic type `S` is not required to
32/// implement `Deserialize`.
33#[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}