uniffi-rs
uniffi-rs copied to clipboard
a multi-language bindings generator for rust
FFI function calls currently use 2 methods to return results: - The return value of the function is used for successful results - The `RustCallStatus` out pointer. It has the...
Regression test for #2134 -- let's see if we can also fix that?
This does not work ``` #[doc = std::concat!("A", "has a", "B")] #[derive(uniffi::Enum)] pub enum A { B, } ``` but this does (without the derive) ``` #[doc = std::concat!("C", "has...
As discussed in #1865, this is how I think we should update our code for remote / custom / external types. The doc changes are the first commit so that...
Currently, the `library_mode` `generate_bindings` calls `cargo` to retrieve metadata about the project for which bindings are being generated: e.g. `generate_bindings` starts with [this line](https://github.com/mozilla/uniffi-rs/blob/cd38ccea8236df7d93aff336c325a3a8e524af5d/uniffi_bindgen/src/library_mode.rs#L45): ``` let cargo_metadata = MetadataCommand::new() .exec()...
It's tricky to get the FFI function signatures correct for external types since we don't know the concrete actual type. [Here's where we determine the FFI type to use](https://github.com/mozilla/uniffi-rs/blob/962de986f02f726954b1dec2f5014d8f99828439/uniffi_bindgen/src/interface/ffi.rs#L134-L148). I...
From reading the manual and searching a bit, I don't think it's currently possible for my `uniffi::Object` and `uniffi::Record` types to expose their `PartialEq`, `Eq`, `Hash`, etc implementations? Right now,...
Fixes #1702 Change the log level to trace for method names logged by UniFFI internals when FFI calls into Rust. Augmented existing logging tests in Python, asserting that the changed...
https://github.com/mozilla/uniffi-rs/blob/main/docs/diplomat-and-macros.md was written quite a few years ago, well before procmacro support was even a glint in @jplatte's eye - it should be updated to reflect current reality.
I am trying to run `cargo test` via the docker image and it is failing with the following error on main: ``` /mounted_workdir/target/tmp/uniffi-example-async-api-client-f44366ee4daea68c/async_api_client.swift:439:74: error: consecutive declarations on a line must...