Jav*_*ias 6 struct type-conversion rust
我有两个具有相同名称、字段(和字段类型)的相同结构,它们位于不同的模块中。它们是由派生宏构造的,并且希望轻松地从一种转换为另一种。
例如
mod a {
struct A {
field1: String,
field2: String,
}
}
mod b {
struct A {
field1: String,
field2: String,
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做let a: a::A = a::A::from(b::A)或类似的事情。
impl From<b::A> for a::A需要在方法中写入两个结构体的所有字段from()。有没有办法在没有所有相关样板的情况下实现这一目标?
似乎在实现这样的事情之前,实现这种转换的唯一方法是序列化:
impl From<b::A> for a::A {
fn from(a: b::A) -> Self {
let serialised = serde_json::to_string(&a).unwrap();
serde_json::from_str(&serialised).unwrap()
}
}
Run Code Online (Sandbox Code Playgroud)