在Haskell中,作为语言特性,可以从字符串派生解析器到任意数据类型:这就是所谓的Read类.Rust可以这么做吗?也就是说,给定一个任意的,enum例如:
#[derive(Debug)]
enum Foo {
A { x: u32, s: String },
B { v: Vec<u8> },
}
Run Code Online (Sandbox Code Playgroud)
并且,鉴于Rust包含Debug特征作为序列化任意数据类型的语言特性,是否也可以自动生成其相应的Parse特征?
换句话说,是否有一个默认的防锈功能,可以让我得到一个parse(&str) -> Foo这样的,对于任何字符串函数s要么parse(&s) == None还是format!("{:?}", parse(&s).unwrap()) == s?