rust 显示变量的所有特征

c3frrgcw  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(125)

我正在寻找一些工具来简化Rust的调试。一个非常有用的工具是显示给定类型的所有特性的所有函数。理想情况下,这将是一个宏或函数,我可以插入到我的代码中来帮助调试。换句话说,在运行时(假设调试符号存在),给定一个变量,我希望显示它的一切:属性、值、特征沿着每个特征的所有功能列表等。
我想要一个宏或函数,采取任何Rust类型,并返回一个字符串与美化树的特征和所有函数名称为每个特征。
使用来自以下位置的代码:https://doc.rust-lang.org/rust-by-example/trait.html

let mut dolly: Sheep = Animal::new("Dolly");

show_all_traits(dolly);

应显示:

Animal
    fn new(name: &'static str) -> Self;
    fn name(&self) -> &'static str;
    fn noise(&self) -> &'static str;
    fn talk(&self);
Sheep
    fn is_naked(&self) -> bool;
    fn shear(&mut self);
2vuwiymt

2vuwiymt1#

这是不可能的(如果没有编译器内部函数,可能也不可能)。然而,由cargo生成的文档包括 Trait ImplementationsAuto Trait ImplementationsBlanket Implementations 部分,这些部分将列出给定类型实现的所有trait。

相关问题