language = "C"
cpp_compat = true
[defines]
"feature = c-bindings" = "EMBEDDENATOR_FFI_ENABLED"
[export]
include = ["SparseVecHandle", "VSAConfigHandle", "ByteBuffer"]
exclude = []
[export.rename]
[fn]
rename_args = "GeckoCase"
args = "auto"
must_use = "MUST_USE"
[struct]
rename_fields = "SnakeCase"
[enum]
rename_variants = "ScreamingSnakeCase"
[macro_expansion]
bitflags = true
[parse]
parse_deps = false
include = ["embeddenator-vsa", "embeddenator-fs", "embeddenator-io"]
clean = false
extra_bindings = []
[parse.expand]
crates = ["embeddenator-interop"]
all_features = true
default_features = true
documentation = true
documentation_style = "c"
header = """
/* Embeddenator Interop FFI Bindings
*
* Auto-generated by cbindgen - DO NOT EDIT MANUALLY
*
* This header provides C-compatible bindings for embeddenator-interop.
* All functions are thread-safe unless otherwise noted.
*
* Memory management:
* - All `*_new()` functions allocate memory that must be freed with corresponding `*_free()`
* - ByteBuffer results must be freed with `byte_buffer_free()`
* - String arguments are borrowed and do not need to be freed by FFI functions
*
* Example usage:
*
* SparseVecHandle* vec = sparse_vec_new();
* // ... use vec ...
* sparse_vec_free(vec);
*/
"""
include_guard = "EMBEDDENATOR_INTEROP_H"
include_version = true
namespace = "embeddenator"
namespaces = []
line_length = 100
tab_width = 4
braces = "SameLine"
line_endings = "LF"
[layout]
packed = false
aligned_n = false
[ptr]
non_null_attribute = "NONNULL"