extendr-api 0.6.0

Safe and user friendly bindings to the R programming language.
Documentation
[package]
name = "extendr-api"
version = "0.6.0"
authors = [
    "andy-thomason <andy@andythomason.com>",
    "Thomas Down",
    "Mossa Merhi Reimert <mossa@sund.ku.dk>",
    "Claus O. Wilke <wilke@austin.utexas.edu>",
    "Hiroaki Yutani",
    "Ilia A. Kosenkov <ilia.kosenkov@outlook.com>",
    "Michael Milton <michael.r.milton@gmail.com>",
]
edition = "2021"
description = "Safe and user friendly bindings to the R programming language."
license = "MIT"
repository = "https://github.com/extendr/extendr"
rust-version = "1.60"

[dependencies]
libR-sys = { workspace = true }
extendr-macros = { path = "../extendr-macros", version = "0.6.0" }
once_cell = "1"
paste = "1.0.5"
either = { version = "1.8.1", optional = true }
libc = { version = "0.2", optional = true }
ndarray = { version = "0.15.3", optional = true }
num-complex = { version = "0.4", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }

[dev-dependencies]
extendr-engine = { path = "../extendr-engine", version = "0.6.0" }
rstest = "0.18.1"

[features]

# Features to modify behaviour of returning Result<T,E> from extendr to R, instead of unwrap-throw_r_error().
# Add new features below
# None, one or both can be set, but the one with highest precedence will take effect.
result_list = []
result_condition = []

# This dummy feature enables all features that increase the functionality of 
# extendr, via conversions or R features. Features that change behaviour
# but do not add functionality (such as `libR-sys/use-bindgen`) are excluded
full-functionality = ["graphics", "either", "ndarray", "num-complex", "serde"]

# libc is needed to allocate a DevDesc (c.f., https://bugs.r-project.org/show_bug.cgi?id=18292)
graphics = ["libc"]

# The minimal set of features without all optional ones
tests-minimal = ["libR-sys/use-bindgen"]

# All features to test except for graphics; graphics tests are currently unstable
# and require --test-threads=1, so we decided to exclude it from here (c.f. #378).
tests = ["tests-minimal", "ndarray", "serde", "num-complex", "either"]

tests-graphics = ["tests-minimal", "graphics"]

# Literally all features to test
tests-all = ["tests", "graphics"]

[package.metadata.docs.rs]
features = ["full-functionality", "libR-sys/use-bindgen"]