Rust で R の拡張 API を構築しています。関数に手続き型マクロで注釈を付けて、適切な変換とエラー処理を備えた C ラッパーを生成します。
use extendr_api::*;
#[export_function]
fn hello() -> &'static str {
"hello"
}
これにより、メカニズムhello__wrapper__
を使用して R から呼び出し可能なC 関数が生成されます。.Call
これに加えて、R メタデータ用の NAMESPACE ファイルを生成する必要があります。
export(hello)
useDynLib(libhello, "__wrap__hello")
そして、ファイルlib.R
hello <- function() {
.Call("__wrap__hello")
}
cargo やrustcを拡張してこの追加情報を書き込む最も簡単な方法は何ですか? プロシージャル マクロ コードからファイルを作成するのは悪い考えだと思います。