我正在寻找一些工具来简化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);
1条答案
按热度按时间2vuwiymt1#
这是不可能的(如果没有编译器内部函数,可能也不可能)。然而,由cargo生成的文档包括 Trait Implementations,Auto Trait Implementations 和 Blanket Implementations 部分,这些部分将列出给定类型实现的所有trait。