1 个不稳定版本

0.1.1 2020 年 8 月 28 日
0.1.0 2020 年 8 月 28 日

#244 in FFI

MIT 许可证

100KB
1.5K SLoC

Rust 855 SLoC // 0.0% comments · Rust 包仓库 Wolfram 402 SLoC · Rust 包仓库 Objective-C 174 SLoC · Rust 包仓库 Batch 40 SLoC · Rust 包仓库 C 29 SLoC · Rust 包仓库 Shell 26 SLoC // 0.2% comments · Rust 包仓库 PowerShell 12 SLoC · Rust 包仓库 Java 10 SLoC · Rust 包仓库

wll-rs

crates.io doc.rs CI

Rust 的 Wolfram LibraryLink 接口

wll-interface 启发。

目的

// lib.rs
use wll::{Error, ErrorKind, Result};

#[wll::setup]
fn setup() {}

#[wll::teardown]
fn teardown() {}

// export function named `wll_add_two`
#[wll::export]
fn add_two(a: isize, b: isize)->Result<isize> {
    a.checked_add(b)
     .ok_or_else(|| Error::from(ErrorKind::NumericalError))
}

#[wll::export(factorial)]
fn fac(n: usize) -> Result<usize> {
    Ok(if n == 0 { 1 } else { n * fac(n - 1)? })
}

lib.rs:

Rust 的 Wolfram LibraryLink 接口。

示例

示例可以在源代码的 examples 目录中找到,或者在 GitHub 上。

依赖项

~0–2MB
~40K SLoC