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#[doc(hidden)]
10#[macro_use]
11pub(crate) mod debug;
12
13#[cfg(feature = "std")]
14mod print;
15#[cfg(feature = "std")]
16pub use print::print_tree;
17#[cfg(feature = "std")]
18pub use print::write_tree;
19
20#[cfg(feature = "parse")]
21pub(crate) mod parse;
22#[cfg(feature = "parse")]
23pub use parse::{ParseError, ParseResult};
24
25/// Deserialize a type `S` by deserializing a string, then using the `FromStr`
26/// impl of `S` to create the result. The generic type `S` is not required to
27/// implement `Deserialize`.
28#[cfg(feature = "serde")]
29pub(crate) fn deserialize_from_str<'de, S, D>(deserializer: D) -> Result<S, D::Error>
30where
31    S: for<'a> From<&'a str>,
32    D: serde::Deserializer<'de>,
33{
34    let s: String = serde::Deserialize::deserialize(deserializer)?;
35    Ok(S::from(&s))
36}