Macro smart_config::de::Serde
source · macro_rules! Serde { (*) => { ... }; ($($expecting:tt),+ $(,)?) => { ... }; }
Expand description
Constructor of Serde
types / instances.
The macro accepts a comma-separated list of expected basic types from the following set: bool
, int
,
float
, str
, array
, object
. As a shortcut, Serde![*]
signals to accept any input.
§Examples
#[derive(Debug)]
struct ComplexType {
// ...
}
impl Serialize for ComplexType {
// Complex serialization logic...
}
impl<'de> Deserialize<'de> for ComplexType {
// Complex deserialization logic...
}
#[derive(DescribeConfig, DeserializeConfig)]
struct TestConfig {
/// Will try to deserialize any integer, string or object delegating
/// to the `Deserialize` impl. Will error on other inputs (e.g., arrays).
#[config(with = Serde![int, str, object])]
complex_param: ComplexType,
#[config(with = Serde![*])]
anything: serde_json::Value,
}