gpt4 book ai didi

dynamic - 如何为 Box 字段指定关联类型的值?

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

我想为特征创建一个装箱结构字段,其中特征具有关联类型。这是使用 digest::Digest 的示例:

use digest::Digest;
struct Crypto {
digest: Box<dyn Digest>,
}

编译失败并出现错误:

the value of the associated type OutputSize (from trait digest::Digest) must be specified

有时我可能想使用sha2::Sha256 和其他时候的 sha2::Sha512,每个都有不同的 OutputSize。是否可以创建具有动态关联类型的装箱结构字段?如果是这样,怎么办?

最佳答案

你可以创建自己的特质,并在所有Digest中给它一个全面的暗示。返回 Box<[u8]> 的实例或Vec<u8>而不是GenericArray ,但作为 digest 的作者,您不需要这样做已经创建了 DynDigest 适合你的特质:

use digest::DynDigest;

struct Crypto {
digest: Box<dyn DynDigest>,
}

关于dynamic - 如何为 Box<dyn Trait> 字段指定关联类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65875468/

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