diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index f4c9eaf6..f408b993 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -5,10 +5,12 @@ on:
branches:
- main
- master
+ - full_bindings
pull_request:
branches:
- main
- master
+ - full_bindings
issue_comment:
types:
- created
@@ -18,8 +20,10 @@ on:
# This can also manually run
workflow_dispatch: {}
-jobs:
+env:
+ LIBRSYS_BINDINGS_OUTPUT_PATH: generated_bindings
+jobs:
test_with_bindgen:
# When the event is not issue_comment, always run the tests. When it is,
# check if (1) the comment is on pull request, (2) the comment author is the
@@ -56,19 +60,21 @@ jobs:
# only one stable Rust toolchain per combination of a platform and
# an R version (e.g. Windows and R-release) to emit bindings.
- {os: windows-latest, r: 'release', rust-version: 'stable-msvc', target: 'x86_64-pc-windows-gnu', emit-bindings: 'true'}
- - {os: windows-latest, r: 'release', rust-version: 'nightly-msvc', target: 'x86_64-pc-windows-gnu'}
+ # - {os: windows-latest, r: 'release', rust-version: 'nightly-msvc', target: 'x86_64-pc-windows-gnu'}
- {os: windows-latest, r: 'devel', rust-version: 'stable-msvc', target: 'x86_64-pc-windows-gnu', emit-bindings: 'true'}
- - {os: windows-latest, r: 'release', rust-version: 'stable-gnu', target: 'x86_64-pc-windows-gnu'}
+ # - {os: windows-latest, r: 'release', rust-version: 'stable-gnu', target: 'x86_64-pc-windows-gnu'}
- {os: windows-latest, r: 'oldrel', rust-version: 'stable-msvc', target: 'x86_64-pc-windows-gnu', emit-bindings: 'true'}
+ - {os: windows-latest, r: '4.2', rust-version: 'stable-msvc', target: 'x86_64-pc-windows-gnu', emit-bindings: 'true' }
- - {os: macOS-latest, r: 'release', rust-version: 'nightly'}
+ # - {os: macOS-latest, r: 'release', rust-version: 'nightly'}
- {os: macOS-latest, r: 'devel', rust-version: 'stable', emit-bindings: 'true'}
- {os: macOS-latest, r: 'oldrel', rust-version: 'stable', emit-bindings: 'true'}
- {os: macOS-latest, r: 'release', rust-version: 'stable', emit-bindings: 'true'}
- {os: macOS-latest, r: 'release', rust-version: 'stable', target: 'x86_64-apple-darwin', skip-tests: 'true', emit-bindings: 'true'}
+ - {os: macOS-latest, r: '4.2', rust-version: 'stable', emit-bindings: 'true' }
+ - {os: macOS-latest, r: '4.2', rust-version: 'stable', target: 'x86_64-apple-darwin', skip-tests: 'true', emit-bindings: 'true'}
-
- - {os: ubuntu-latest, r: 'release', rust-version: 'nightly'}
+ # - {os: ubuntu-latest, r: 'release', rust-version: 'nightly'}
- {os: ubuntu-latest, r: 'release', rust-version: 'stable', emit-bindings: 'true'}
- {os: ubuntu-latest, r: 'release', rust-version: 'stable', target: 'aarch64-unknown-linux-gnu', skip-tests: 'true', emit-bindings: 'true'}
@@ -78,6 +84,9 @@ jobs:
- {os: ubuntu-latest, r: 'oldrel', rust-version: 'stable', emit-bindings: 'true'}
- {os: ubuntu-latest, r: 'oldrel', rust-version: 'stable', target: 'aarch64-unknown-linux-gnu', skip-tests: 'true', emit-bindings: 'true'}
+ - {os: ubuntu-latest, r: '4.2', rust-version: 'stable', emit-bindings: 'true' }
+ - {os: ubuntu-latest, r: '4.2', rust-version: 'stable', target: 'aarch64-unknown-linux-gnu', skip-tests: 'true', emit-bindings: 'true'}
+
env:
RSPM: ${{ matrix.config.rspm }}
@@ -123,7 +132,7 @@ jobs:
if: runner.os == 'Windows'
run: |
# Configure linker
- echo "RUSTFLAGS=-C linker=x86_64-w64-mingw32.static.posix-gcc.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ echo "RUSTFLAGS=-Clinker=x86_64-w64-mingw32.static.posix-gcc.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# Create libgcc_eh mock
New-Item -Path libgcc_mock -Type Directory
@@ -175,6 +184,8 @@ jobs:
# https://github.com/r-lib/ps/commit/a24f2c4d1bdba63be14e7729b9ab81d0ed9f719e
# Environment variables are required fir Mac-OS-11.0, see
# https://github.com/extendr/libR-sys/issues/35
+
+ # TODO: remove everything except `LIBCLANG_PATH`
- name: Configure macOS
if: runner.os == 'macOS'
run: |
@@ -231,7 +242,6 @@ jobs:
. ./ci-cargo.ps1
ci-cargo build -vv --features use-bindgen $(if ($env:RUST_TARGET -ne '') {"--target=$env:RUST_TARGET"} ) -ActionName "Building for target: $env:RUST_TARGET"
env:
- LIBRSYS_BINDINGS_OUTPUT_PATH: generated_bindings
RUST_TARGET: ${{ matrix.config.target }}
- name: Upload generated bindings
@@ -241,14 +251,13 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: generated_binding-${{ matrix.config.os }}-R-${{ matrix.config.r }}-rust-${{ matrix.config.rust-version }}-${{ matrix.config.target || 'default'}}
- path: generated_bindings
+ path: ${{ env.LIBRSYS_BINDINGS_OUTPUT_PATH }}
check_generate_bindings_flag:
name: Check if [generate bindings] is in latest commit message
runs-on: ubuntu-latest
outputs:
head_commit_message: ${{ steps.get_head_commit_message.outputs.HEAD_COMMIT_MESSAGE }}
- # generate_bindings: ${{ contains(steps.get_head_commit_message.outputs.HEAD_COMMIT_MESSAGE, '[generate bindings]') }}
steps:
- uses: actions/checkout@v4
with:
@@ -261,8 +270,8 @@ jobs:
echo "${{ steps.get_head_commit_message.outputs.HEAD_COMMIT_MESSAGE }}"
echo "${{ contains(steps.get_head_commit_message.outputs.HEAD_COMMIT_MESSAGE, '[generate bindings]') }}"
- pr_generated_bindings:
- name: Make PR with generated bindings
+ commit_generated_bindings:
+ name: Commit generated bindings
needs: [test_with_bindgen, check_generate_bindings_flag]
if: ${{ contains(needs.check_generate_bindings_flag.outputs.head_commit_message, '[generate bindings]') }}
runs-on: ubuntu-latest
@@ -279,10 +288,11 @@ jobs:
# Replace the default bindings
cd bindings
- for x in linux-aarch64 linux-x86_64 macos-aarch64 macos-x86_64 windows-x86_64; do
- # Choose the newest version except for devel
- ln --force -s "$(ls -1 ./bindings-${x}-*.rs | grep -v devel | sort | tail -1)" ./bindings-${x}.rs
- done
+ # TODO: this needs adjustment for the new output files...
+ # for x in linux-aarch64 linux-x86_64 macos-aarch64 macos-x86_64 windows-x86_64; do
+ # # Choose the newest version except for devel
+ # ln --force -s "$(ls -1 ./bindings-*-${x}-*.rs | grep -v devel | sort | tail -1)" ./bindings-*-${x}.rs
+ # done
cd ..
- name: Add generated bindings
run: |
@@ -291,70 +301,4 @@ jobs:
git config --local user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git commit -m "Update bindings [skip ci]"
- name: Push to PR branch
- run: git push
-
- # Gather the generated bindings and push them to generated_bindings branch.
- # If we need to update the bindings, create a pull request from that branch.
- commit_generated_bindings:
- needs: test_with_bindgen
- runs-on: ubuntu-latest
- # In the case of /bindings command, we don't need to check anything else
- # because it should have checked in test_with_bindings job. In the other
- # cases, we only want to invoke this on the master branch.
- if: github.event_name == 'issue_comment' || github.ref == 'refs/heads/master'
- steps:
- - uses: actions/checkout@v4
-
- - uses: actions/download-artifact@v4
-
- - name: Switch branch
- if: github.event_name != 'issue_comment'
- run: |
- # 1) If there's already generated_bindings branch, checkout it.
- # 2) If generated_binding branch is not created, create it from the default branch.
- if git ls-remote --exit-code --heads origin generated_bindings 2>&1 >/dev/null; then
- git fetch origin --no-tags --prune --depth=1 generated_bindings
- git checkout generated_bindings
- else
- git switch -c generated_bindings
- fi
-
- - name: Switch branch (/bindings command)
- if: github.event_name == 'issue_comment'
- uses: r-lib/actions/pr-fetch@v2
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Commit the generated bindings
- run: |
- # Update or add the bindings
- cp generated_binding-*/*.rs bindings/
-
- # Replace the default bindings
- cd bindings
- for x in linux-aarch64 linux-x86_64 macos-aarch64 macos-x86_64 windows-x86_64; do
- # Choose the newest version except for devel
- ln --force -s "$(ls -1 ./bindings-${x}-*.rs | grep -v devel | sort | tail -1)" ./bindings-${x}.rs
- done
- cd ..
-
- # detect changes (the code is derived from https://stackoverflow.com/a/3879077)
- git add bindings/
- git update-index --refresh
- if ! git diff-index --quiet HEAD -- bindings/; then
- git config --local user.name "${GITHUB_ACTOR}"
- git config --local user.email "${GITHUB_ACTOR}@users.noreply.github.com"
- git commit -m "Update bindings [skip ci]"
- else
- echo "No changes"
- fi
-
- - name: Push
- if: github.event_name != 'issue_comment'
- run: git push origin generated_bindings
-
- - name: Push (/bindings command)
- if: github.event_name == 'issue_comment'
- uses: r-lib/actions/pr-push@v2
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
+ run: git push
\ No newline at end of file
diff --git a/.ignore b/.ignore
new file mode 100644
index 00000000..ded7aea3
--- /dev/null
+++ b/.ignore
@@ -0,0 +1 @@
+bindings/*.rs
diff --git a/Cargo.toml b/Cargo.toml
index 4db0ba7d..0412f648 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -21,6 +21,7 @@ repository = "https://github.com/extendr/libR-sys"
[build-dependencies]
bindgen = { version = "0.69.4", optional = true, features = ["experimental"] }
regex = { version = "*", optional = true, default-features = false }
+fs_extra = "1.3"
[features]
default = ["runtime"]
@@ -36,6 +37,120 @@ runtime = ["bindgen/runtime"]
# Enables generation of layout-tests in bindgen
layout_tests = ["use-bindgen"]
+disabled = []
+# TODO: include default headers...
+
+# TODO:?!
+# stamp-h.in
+# Makefile = []
+# config.in = []
+# Makefile.in = []
+# Makefile.win = []
+
+# internal headers, not installed
+# Rgraphics = []
+# Internal.h
+# Print = []
+# Parse = []
+# Errormsg = []
+# Startup = []
+# Rconnections = []
+# rlocale = []
+# Fileio = []
+# Graphics = []
+# Rmodules/RX11
+# Rmodules/Rlapack
+# Rmodules/Rinternet // doesn't state that is internal...but it is...
+# Rmath0.in = []
+# Rinlinedfuns = []
+# Defn = []
+# IOStuff = []
+
+# R_ext/*
+Print = []
+Parse = ["Rinternals"]
+Error = []
+Itermacros = []
+Utils = ["Boolean", "Complex"]
+stats_stubs = []
+GetX11Image = ["Boolean"]
+# TODO: combine them?
+GraphicsEngine = ["GraphicsDevice", "Rinternals", "Boolean"]
+GraphicsDevice = ["GraphicsEngine", "Rinternals", "Boolean"]
+Callbacks = ["Rinternals", "Boolean"]
+Rdynload = ["Boolean"]
+RS = []
+BLAS = ["Complex"]
+Arith = []
+Boolean = []
+Applic = ["Boolean"]
+Linpack = []
+Constants = []
+Riconv = []
+RStartup = ["Boolean"]
+QuartzDevice = []
+libextern = []
+MathThreads = []
+Memory = []
+Connections = ["Boolean"]
+PrtUtil = ["Rinternals", "Complex"]
+Altrep = ["Rinternals", "Boolean", "Complex", "Rdynload"]
+Rallocators = []
+Visibility = []
+stats_package = []
+Complex = []
+Lapack = ["Complex"]
+Random = []
+eventloop = []
+R_ext = [
+ "GraphicsEngine",
+ "Error",
+ "Itermacros",
+ "Utils",
+ "stats_stubs",
+ "GetX11Image",
+ "GraphicsDevice",
+ "Callbacks",
+ "Rdynload",
+ "Parse",
+ "RS",
+ "BLAS",
+ "Arith",
+ "Boolean",
+ "Applic",
+ "Linpack",
+ "Constants",
+ "Riconv",
+ "RStartup",
+ "Print",
+ "QuartzDevice",
+ "libextern",
+ "MathThreads",
+ "Memory",
+ "Connections",
+ "PrtUtil",
+ "Altrep",
+ "Rallocators",
+ "Visibility",
+ "stats_package",
+ # "Makefile",
+ "Complex",
+ "Lapack",
+ "Random",
+ "eventloop",
+]
+# R_INCLUDES/* (in root)
+libintl = []
+R = []
+Rconfig = []
+Rdefines = []
+Rembedded = ["Boolean"]
+Rinterface = []
+Rinternals = ["Boolean", "Complex", "Rdynload"]
+Rmath = []
+# GraphicsBase = [] # private
+# Rdynpriv = [] # ?? maybe private?
+
[lib]
# Some code comments on R's source code might be accidentally treated as Rust's
# doc test. See https://github.com/extendr/libR-sys/issues/194 for the details.
diff --git a/README.md b/README.md
index a638bf96..1a6cad5c 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,7 @@ The bindings can be generated using [`bindgen`](https://github.com/rust-lang/rus
`bindgen` requires [`libclang`](https://clang.llvm.org/docs/Tooling.html), which should be installed first.
This library relies on `LIBCLANG_PATH` environment variable to determine path to the appropriate version of `libclang`.
-The output folder for bindings can be configured using `LIBRSYS_BINDINGS_OUTPUT_PATH` environment variable, thus make sure it is set to e.g `bindings`.
+The output folder for bindings can be configured using `LIBRSYS_BINDINGS_OUTPUT_PATH` environment variable, thus make sure it is set to e.g `src/bindings`.
- **Linux**
@@ -90,6 +90,12 @@ The output folder for bindings can be configured using `LIBRSYS_BINDINGS_OUTPUT_
PATH=/usr/local/opt/llvm/bin:$PATH
```
+ Alternatively, one may merely set
+
+ ```shell
+ export LIBCLANG_PATH=$(brew --prefix llvm)/lib
+ ```
+
Build & test using
```shell
diff --git a/bindings/bindings-Altrep-linux-aarch64-R4.2.rs b/bindings/bindings-Altrep-linux-aarch64-R4.2.rs
new file mode 100644
index 00000000..c215902d
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-aarch64-R4.2.rs
@@ -0,0 +1,241 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.2.3 */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n
"]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+}
diff --git a/bindings/bindings-Altrep-linux-aarch64-R4.3.rs b/bindings/bindings-Altrep-linux-aarch64-R4.3.rs
new file mode 100644
index 00000000..0591236d
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-aarch64-R4.3.rs
@@ -0,0 +1,252 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.3.3 */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlist_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlist_Set_elt_method_t =
+ ::std::option::Option;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlist_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+ pub fn R_set_altlist_Elt_method(cls: R_altrep_class_t, fun: R_altlist_Elt_method_t);
+ pub fn R_set_altlist_Set_elt_method(cls: R_altrep_class_t, fun: R_altlist_Set_elt_method_t);
+}
diff --git a/bindings/bindings-Altrep-linux-aarch64-R4.4.rs b/bindings/bindings-Altrep-linux-aarch64-R4.4.rs
new file mode 100644
index 00000000..38fd369f
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-aarch64-R4.4.rs
@@ -0,0 +1,252 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.4.1 */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlist_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlist_Set_elt_method_t =
+ ::std::option::Option;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlist_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+ pub fn R_set_altlist_Elt_method(cls: R_altrep_class_t, fun: R_altlist_Elt_method_t);
+ pub fn R_set_altlist_Set_elt_method(cls: R_altrep_class_t, fun: R_altlist_Set_elt_method_t);
+}
diff --git a/bindings/bindings-Altrep-linux-aarch64-R4.5-devel.rs b/bindings/bindings-Altrep-linux-aarch64-R4.5-devel.rs
new file mode 100644
index 00000000..941d8f06
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-aarch64-R4.5-devel.rs
@@ -0,0 +1,252 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.5.0-devel */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlist_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlist_Set_elt_method_t =
+ ::std::option::Option;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlist_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+ pub fn R_set_altlist_Elt_method(cls: R_altrep_class_t, fun: R_altlist_Elt_method_t);
+ pub fn R_set_altlist_Set_elt_method(cls: R_altrep_class_t, fun: R_altlist_Set_elt_method_t);
+}
diff --git a/bindings/bindings-Altrep-linux-x86_64-R4.2.rs b/bindings/bindings-Altrep-linux-x86_64-R4.2.rs
new file mode 100644
index 00000000..c215902d
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-x86_64-R4.2.rs
@@ -0,0 +1,241 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.2.3 */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+}
diff --git a/bindings/bindings-Altrep-linux-x86_64-R4.3.rs b/bindings/bindings-Altrep-linux-x86_64-R4.3.rs
new file mode 100644
index 00000000..0591236d
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-x86_64-R4.3.rs
@@ -0,0 +1,252 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.3.3 */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlist_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlist_Set_elt_method_t =
+ ::std::option::Option;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlist_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+ pub fn R_set_altlist_Elt_method(cls: R_altrep_class_t, fun: R_altlist_Elt_method_t);
+ pub fn R_set_altlist_Set_elt_method(cls: R_altrep_class_t, fun: R_altlist_Set_elt_method_t);
+}
diff --git a/bindings/bindings-Altrep-linux-x86_64-R4.4.rs b/bindings/bindings-Altrep-linux-x86_64-R4.4.rs
new file mode 100644
index 00000000..38fd369f
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-x86_64-R4.4.rs
@@ -0,0 +1,252 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.4.1 */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlist_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlist_Set_elt_method_t =
+ ::std::option::Option;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlist_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+ pub fn R_set_altlist_Elt_method(cls: R_altrep_class_t, fun: R_altlist_Elt_method_t);
+ pub fn R_set_altlist_Set_elt_method(cls: R_altrep_class_t, fun: R_altlist_Set_elt_method_t);
+}
diff --git a/bindings/bindings-Altrep-linux-x86_64-R4.5-devel.rs b/bindings/bindings-Altrep-linux-x86_64-R4.5-devel.rs
new file mode 100644
index 00000000..941d8f06
--- /dev/null
+++ b/bindings/bindings-Altrep-linux-x86_64-R4.5-devel.rs
@@ -0,0 +1,252 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Ubuntu clang version 15.0.7 */
+/* r version: 4.5.0-devel */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altstring_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlist_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlist_Set_elt_method_t =
+ ::std::option::Option;
+extern "C" {
+ pub fn R_new_altrep(aclass: R_altrep_class_t, data1: SEXP, data2: SEXP) -> SEXP;
+ pub fn R_make_altstring_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altinteger_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altreal_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlogical_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altraw_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altcomplex_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_make_altlist_class(
+ cname: *const ::std::os::raw::c_char,
+ pname: *const ::std::os::raw::c_char,
+ info: *mut DllInfo,
+ ) -> R_altrep_class_t;
+ pub fn R_altrep_inherits(x: SEXP, arg1: R_altrep_class_t) -> Rboolean;
+ pub fn R_set_altrep_UnserializeEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_UnserializeEX_method_t,
+ );
+ pub fn R_set_altrep_Unserialize_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Unserialize_method_t,
+ );
+ pub fn R_set_altrep_Serialized_state_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_Serialized_state_method_t,
+ );
+ pub fn R_set_altrep_DuplicateEX_method(
+ cls: R_altrep_class_t,
+ fun: R_altrep_DuplicateEX_method_t,
+ );
+ pub fn R_set_altrep_Duplicate_method(cls: R_altrep_class_t, fun: R_altrep_Duplicate_method_t);
+ pub fn R_set_altrep_Coerce_method(cls: R_altrep_class_t, fun: R_altrep_Coerce_method_t);
+ pub fn R_set_altrep_Inspect_method(cls: R_altrep_class_t, fun: R_altrep_Inspect_method_t);
+ pub fn R_set_altrep_Length_method(cls: R_altrep_class_t, fun: R_altrep_Length_method_t);
+ pub fn R_set_altvec_Dataptr_method(cls: R_altrep_class_t, fun: R_altvec_Dataptr_method_t);
+ pub fn R_set_altvec_Dataptr_or_null_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Dataptr_or_null_method_t,
+ );
+ pub fn R_set_altvec_Extract_subset_method(
+ cls: R_altrep_class_t,
+ fun: R_altvec_Extract_subset_method_t,
+ );
+ pub fn R_set_altinteger_Elt_method(cls: R_altrep_class_t, fun: R_altinteger_Elt_method_t);
+ pub fn R_set_altinteger_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Get_region_method_t,
+ );
+ pub fn R_set_altinteger_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altinteger_Is_sorted_method_t,
+ );
+ pub fn R_set_altinteger_No_NA_method(cls: R_altrep_class_t, fun: R_altinteger_No_NA_method_t);
+ pub fn R_set_altinteger_Sum_method(cls: R_altrep_class_t, fun: R_altinteger_Sum_method_t);
+ pub fn R_set_altinteger_Min_method(cls: R_altrep_class_t, fun: R_altinteger_Min_method_t);
+ pub fn R_set_altinteger_Max_method(cls: R_altrep_class_t, fun: R_altinteger_Max_method_t);
+ pub fn R_set_altreal_Elt_method(cls: R_altrep_class_t, fun: R_altreal_Elt_method_t);
+ pub fn R_set_altreal_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altreal_Get_region_method_t,
+ );
+ pub fn R_set_altreal_Is_sorted_method(cls: R_altrep_class_t, fun: R_altreal_Is_sorted_method_t);
+ pub fn R_set_altreal_No_NA_method(cls: R_altrep_class_t, fun: R_altreal_No_NA_method_t);
+ pub fn R_set_altreal_Sum_method(cls: R_altrep_class_t, fun: R_altreal_Sum_method_t);
+ pub fn R_set_altreal_Min_method(cls: R_altrep_class_t, fun: R_altreal_Min_method_t);
+ pub fn R_set_altreal_Max_method(cls: R_altrep_class_t, fun: R_altreal_Max_method_t);
+ pub fn R_set_altlogical_Elt_method(cls: R_altrep_class_t, fun: R_altlogical_Elt_method_t);
+ pub fn R_set_altlogical_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Get_region_method_t,
+ );
+ pub fn R_set_altlogical_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altlogical_Is_sorted_method_t,
+ );
+ pub fn R_set_altlogical_No_NA_method(cls: R_altrep_class_t, fun: R_altlogical_No_NA_method_t);
+ pub fn R_set_altlogical_Sum_method(cls: R_altrep_class_t, fun: R_altlogical_Sum_method_t);
+ pub fn R_set_altraw_Elt_method(cls: R_altrep_class_t, fun: R_altraw_Elt_method_t);
+ pub fn R_set_altraw_Get_region_method(cls: R_altrep_class_t, fun: R_altraw_Get_region_method_t);
+ pub fn R_set_altcomplex_Elt_method(cls: R_altrep_class_t, fun: R_altcomplex_Elt_method_t);
+ pub fn R_set_altcomplex_Get_region_method(
+ cls: R_altrep_class_t,
+ fun: R_altcomplex_Get_region_method_t,
+ );
+ pub fn R_set_altstring_Elt_method(cls: R_altrep_class_t, fun: R_altstring_Elt_method_t);
+ pub fn R_set_altstring_Set_elt_method(cls: R_altrep_class_t, fun: R_altstring_Set_elt_method_t);
+ pub fn R_set_altstring_Is_sorted_method(
+ cls: R_altrep_class_t,
+ fun: R_altstring_Is_sorted_method_t,
+ );
+ pub fn R_set_altstring_No_NA_method(cls: R_altrep_class_t, fun: R_altstring_No_NA_method_t);
+ pub fn R_set_altlist_Elt_method(cls: R_altrep_class_t, fun: R_altlist_Elt_method_t);
+ pub fn R_set_altlist_Set_elt_method(cls: R_altrep_class_t, fun: R_altlist_Set_elt_method_t);
+}
diff --git a/bindings/bindings-Altrep-macos-aarch64-R4.2.rs b/bindings/bindings-Altrep-macos-aarch64-R4.2.rs
new file mode 100644
index 00000000..5fd8edef
--- /dev/null
+++ b/bindings/bindings-Altrep-macos-aarch64-R4.2.rs
@@ -0,0 +1,241 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+/* libR-sys version: 0.7.0 */
+/* bindgen clang version: Homebrew clang version 18.1.8 */
+/* r version: 4.2.3 */
+
+#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n "]
+pub type R_xlen_t = isize;
+#[repr(C)]
+pub struct R_altrep_class_t {
+ pub ptr: SEXP,
+}
+pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: SEXP,
+ arg3: SEXP,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::os::raw::c_int,
+ ) -> SEXP,
+>;
+pub type R_altrep_Unserialize_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Serialized_state_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_DuplicateEX_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Duplicate_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altrep_Inspect_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ arg5: ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: ::std::os::raw::c_int,
+ arg3: ::std::os::raw::c_int,
+ arg4: ::std::os::raw::c_int,
+ ),
+ >,
+ ) -> Rboolean,
+>;
+pub type R_altrep_Length_method_t =
+ ::std::option::Option R_xlen_t>;
+pub type R_altvec_Dataptr_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
+>;
+pub type R_altvec_Dataptr_or_null_method_t =
+ ::std::option::Option *const ::std::os::raw::c_void>;
+pub type R_altvec_Extract_subset_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altinteger_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altinteger_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altinteger_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altinteger_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Elt_method_t =
+ ::std::option::Option f64>;
+pub type R_altreal_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
+>;
+pub type R_altreal_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altreal_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Min_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altreal_Max_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altlogical_Elt_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
+>;
+pub type R_altlogical_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut ::std::os::raw::c_int,
+ ) -> R_xlen_t,
+>;
+pub type R_altlogical_Is_sorted_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_No_NA_method_t =
+ ::std::option::Option ::std::os::raw::c_int>;
+pub type R_altlogical_Sum_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altraw_Elt_method_t =
+ ::std::option::Option Rbyte>;
+pub type R_altraw_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
+>;
+pub type R_altcomplex_Elt_method_t =
+ ::std::option::Option Rcomplex>;
+pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
+ unsafe extern "C" fn(
+ arg1: SEXP,
+ arg2: R_xlen_t,
+ arg3: R_xlen_t,
+ arg4: *mut Rcomplex,
+ ) -> R_xlen_t,
+>;
+pub type R_altstring_Elt_method_t =
+ ::std::option::Option SEXP>;
+pub type R_altstring_Set_elt_method_t =
+ ::std::option::Option;
+pub type R_altstring_Is_sorted_method_t =
+ ::std::option::Option