gpt4 book ai didi

r - 如何从Rust程序宏生成文件?

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

我正在为Rust中的R构建扩展API。我用程序宏注释函数,以生成具有适当转换和错误处理的C包装程序:

use extendr_api::*;

#[export_function]
fn hello() -> &'static str {
"hello"
}
这会生成一个可从R调用的C函数 hello__wrapper__使用 .Call机制。
除此之外,我们需要为R生成一个NAMESPACE文件
元数据:
export(hello)
useDynLib(libhello, "__wrap__hello")
和一个文件 lib.R
hello <- function() {
.Call("__wrap__hello")
}
扩展 cargo 或使用rust 的最简单方法是什么
写这些额外的信息?我正在猜测
从程序宏代码写入文件是
一个坏主意。

最佳答案

据我了解,过程宏会在编译时生成代码,但它必须是有效的Rust代码。在这种情况下,我认为不应该使用程序宏。
一种可能的解决方案是创建一个脚本,该脚本将在Rust文件中查找并找到导出的函数,并生成所需的2个额外文件。如果要在Rust中进行所有解析,可以制作一个build script在编译前运行,否则我建议使用类似Python的方法。

关于r - 如何从Rust程序宏生成文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62535291/

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