看起来 prost protobuf 生成器仅添加derive(Debug)到生成的枚举类型(并且仅添加不在pub mod块内的枚举)。生成的结构或联合都没有应用它。我怎样才能让 prost 将其添加到所有内容中?
使用 Prost 0.9 版和 rustic 1.56
看起来 prost protobuf 生成器仅添加derive(Debug)到生成的枚举类型(并且仅添加不在pub mod块内的枚举)。生成的结构或联合都没有应用它。我怎样才能让 prost 将其添加到所有内容中?
使用 Prost 0.9 版和 rustic 1.56
Prost 确实在所有东西上派生了 Debug。但是您需要prost::Messaeg在范围内,否则您会收到有关缺少 Debug 特征的错误。
prost没有打开它的选项,所以你必须自己做。
如果你想为一个类型实现一个特征。您需要在库/二进制文件中具有特征或类型。
由于特征在std并且类型在外部板条箱中,因此您可以做的最好的事情是创建一个单元结构来包装类型。然后Debug为此实施。
use std::fmt;
struct DebugStruct(NonDebugEnum);
impl fmt::Debug for DebugStruct {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
todo!()
}
}
fn main() {
let wrapped = DebugStruct(NonDebugEnum::Example);
println!("{:?}", wrapped);
}
你必须想出如何格式化它的实际逻辑。