1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! The C ABI for libasdf, implemented in Rust.
//!
//! This crate is a thin projection of [`asdf_core`] onto libasdf's exported
//! C interface. It holds no behaviour of its own: everything here converts
//! between C representations and the engine's, and every entry point is
//! wrapped so that a panic can never unwind into a C caller.
//!
//! # What lives here versus in C
//!
//! Almost all of the ABI is expressed directly in Rust. Two things cannot be,
//! and live in `shim.c` instead:
//!
//! - the three variadic entry points (`asdf_file_log`,
//! `asdf_file_error_common`, `asdf_value_error_common`), because defining
//! variadic `extern "C"` functions needs unstable Rust; and
//! - `asdf_ndarray_read_float16_at`, because `_Float16` is unstable and its
//! return ABI differs from `uint16_t`'s.
//!
//! # Headers
//!
//! The public headers are vendored verbatim from upstream rather than
//! generated, because several API entry points exist only as `_Generic`
//! macros or `static inline` functions. See `include/PROVENANCE.md`.
/// Internal only: the raw-pointer helpers every entry point is built on.
pub
pub use LogLevel;
pub use ;
pub use ;
pub use asdf_version_t;
/// The library's own version, exported as `libasdf_version`.
///
/// Reported in the `asdf_library` metadata of files this library writes.
pub const LIBASDF_RS_VERSION: &str = env!;