diff --git a/lez/indexer/ffi/Cargo.toml b/lez/indexer/ffi/Cargo.toml index 331a996a..a1615b75 100644 --- a/lez/indexer/ffi/Cargo.toml +++ b/lez/indexer/ffi/Cargo.toml @@ -7,15 +7,12 @@ version = "0.1.0" [dependencies] lee.workspace = true indexer_core.workspace = true -# `convert` brings in the LEE <-> protocol `From`/`TryFrom` impls the query -# marshalling relies on (previously pulled in transitively via `indexer_service`). indexer_service_protocol = { workspace = true, features = ["convert"] } env_logger.workspace = true log = { workspace = true } tokio = { features = ["rt-multi-thread"], workspace = true } futures.workspace = true -# Serializes the indexer status snapshot to JSON for `query_status`. serde_json.workspace = true [build-dependencies] diff --git a/lez/indexer/ffi/build.rs b/lez/indexer/ffi/build.rs index 349ff38d..4d2faae8 100644 --- a/lez/indexer/ffi/build.rs +++ b/lez/indexer/ffi/build.rs @@ -6,6 +6,7 @@ fn main() { cbindgen::Builder::new() .with_crate(crate_dir) .with_language(cbindgen::Language::C) + .with_cpp_compat(true) .with_pragma_once(true) .generate() .expect("Unable to generate bindings") diff --git a/lez/indexer/ffi/indexer_ffi.h b/lez/indexer/ffi/indexer_ffi.h index ae61eecb..569a26a3 100644 --- a/lez/indexer/ffi/indexer_ffi.h +++ b/lez/indexer/ffi/indexer_ffi.h @@ -407,6 +407,10 @@ typedef struct PointerResult_FfiVec_FfiTransaction_____OperationStatus { enum OperationStatus error; } PointerResult_FfiVec_FfiTransaction_____OperationStatus; +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + /** * Creates and starts an indexer based on the provided * configuration file path. @@ -804,3 +808,7 @@ void free_ffi_transaction_vec(struct FfiVec_FfiTransaction *val); bool is_ok(const enum OperationStatus *self); bool is_error(const enum OperationStatus *self); + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus