相关疑难解决方法(0)

如何反省Rust中所有可用的方法和成员?

有没有办法在Rust中打印出类型或实例的可用成员的完整列表?

如果问这个问题是Python,那么答案就是print(dir(object)).
如果问题是C,那么Clang有一个Python API可以解析C代码并对其进行内省.

不熟悉Rust工具,我很想知道是否有某种方法可以在运行时或编译时,使用编译器功能(例如宏)或使用外部工具来执行类似的操作.


请注意,这个问题是故意的,因为使用的确切方法不一定非常重要.给定一个变量,是否有办法找到它的所有方法和功能并不是一个不寻常的目标,但不能很好地了解这个领域,我不是将问题局限于特定方法.

introspection rust

13
推荐指数
3
解决办法
2212
查看次数

在宏中获取结构类型的字段

我想知道是否有办法在宏中获取结构的字段名称.请考虑以下示例:

struct S {
    a: String,
    b: String,
}
Run Code Online (Sandbox Code Playgroud)

和宏__CODE__,这样称为:

my_macro!(S);
Run Code Online (Sandbox Code Playgroud)

现在我想访问结构的字段名称,不知何故这样:

macro_rules! my_macro {
    ($t:ty) => {{
        let field_names = get_field_names($t);
        // do something with field_names
    }};
}
Run Code Online (Sandbox Code Playgroud)

我是Rust和宏的新手,所以也许我错过了一些明显的东西.

macros rust

11
推荐指数
3
解决办法
4020
查看次数

标签 统计

rust ×2

introspection ×1

macros ×1