在 Rust 中挑选结构

问题描述 投票:0回答:1

是否有可能以一种类型检查器没有问题的方式选择一个结构?

来自 TypeScript:

// Considering a main object type containing all fields:
interface User {
    id: number;
    name: string;
    password: string;
};

// We can use a picked type to select only certain fields:
const get_all_users = (): Pick<User, 'id' | 'name'>[] => {/*...*/};

Pick
类型使得 tsc 可以批准这一点:
const picked_user: Pick<User, 'id' | 'name'> = user;

我缺少任何板条箱/语言功能吗?我的主要观点是,我不想显式命名该结构,例如

UserPicked
,当有很多选定的变体时,这可能会变得很复杂。

typescript rust struct types
1个回答
0
投票

我认为解决这个问题的通常方法是通过枚举。像这样的东西:

enum Picked {
  User(User),
  Name(String),
  Id(String),
}

我也不明白这会变得比 Typescript 的

Pick
结构更复杂。

© www.soinside.com 2019 - 2024. All rights reserved.