gpt4 book ai didi

rust - 在 Rust 中,如何将一个结构映射到另一个结构?

转载 作者:行者123 更新时间:2023-12-03 11:25:31 25 4
gpt4 key购买 nike

在其他语言(如 Java)中,库可用于将对象字段映射到另一个对象(如 mapstruct)。它对于将 Controller 和服务彼此隔离确实很有用。

PersonDto personDto = mapper.businessToDto(personBusiness);
我找不到如何用 Rust 来做到这一点?我没有发现任何图书馆可以帮助解决这个问题,也没有任何方法可以做到这一点。任何资源将不胜感激!

最佳答案

在 Rust 中,你通常通过 From 来做特征:

struct Person {
name: String,
age: u8,
}

struct PersonDto {
name: String,
age: u64,
}

impl From<Person> for PersonDto {
fn from(p: Person) -> Self {
Self {
name: p.name,
age: p.age.into(),
}
}
}
所以你可以做一个 Into 转换:
let person = Person { name: "Alex".to_string(), age: 42 };

let person_dto: PersonDto = person.into();
// or via an explicit `T::from:
let person_dto = PersonDto::from(person);

关于rust - 在 Rust 中,如何将一个结构映射到另一个结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62575384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com