wll 0.1.0

A Wolfram LibraryLink interface.
# wll-rs


[![crates.io](https://img.shields.io/crates/v/wll-rs.svg)](https://crates.io/crates/wll-rs)
[![doc.rs](https://docs.rs/wll-rs/badge.svg)](https://docs.rs/wll-rs)
[![CI](https://github.com/miRoox/wll-rs/workflows/CI/badge.svg)](https://github.com/miRoox/wll-rs/actions?query=workflow%3ACI)

Wolfram [LibraryLink](http://reference.wolfram.com/language/LibraryLink/tutorial/Overview.html) interface for Rust

Inspired by [wll-interface](https://github.com/njpipeorgan/wll-interface).

Purpose:

```rust
// 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)? })
}
```