uniffi-rs
uniffi-rs copied to clipboard
a multi-language bindings generator for rust
https://github.com/mozilla/uniffi-rs/commit/d4a6e652a122bd0a669cf002c99c6026b8f60997 pulled in the `oneshot` dependency, which itself depends on loom under a `cfg`: https://github.com/faern/oneshot/blob/80f4c3f0ef6bf2051bf3e59166194fde3c1d2699/Cargo.toml#L26-L27 `loom` depends on the `windows` crate which we don't want to pull into m-c. unfortunately...
In our ext-types fixture we [import a type named UniffiOneInterface](https://github.com/mozilla/uniffi-rs/blob/802e4afa963e906823e29049da2984ff2f5696f2/fixtures/ext-types/lib/src/ext-types-lib.udl#L34-L35) which is [defined via UDL in another crate](https://github.com/mozilla/uniffi-rs/blob/802e4afa963e906823e29049da2984ff2f5696f2/fixtures/ext-types/uniffi-one/src/uniffi-one.udl#L12) While that crate works, it fails if that same crate tries to...
eg, if you change https://github.com/mozilla/uniffi-rs/blob/7c5796b99d88aae567a8291b0bf8fb8f203f1e6c/fixtures/coverall/src/lib.rs#L121-L123 like: ``` diff --git a/fixtures/coverall/src/lib.rs b/fixtures/coverall/src/lib.rs index ae43a7361..994568960 100644 --- a/fixtures/coverall/src/lib.rs +++ b/fixtures/coverall/src/lib.rs @@ -120,7 +120,7 @@ pub enum RootError { #[error(transparent)] // XXX -...
Right now, at least when using proc macros, all entities are mangled into the same namespace in the generated bindings, even if they come from totally different modules in the...
We have types that can only be passed from Rust to the foreign side and vice-versa, for example flat errors, callback interfaces, etc. Before `0.25.0`, we generated an `FfiConverter` implementation...
E.g. passing `bytes` from Python to Rust involves two copies, when it could be zero copies if the Rust code accepted `&[u8]`. The other way around currently involves two copies...
As seen in https://github.com/mozilla/application-services/issues/5738 - nothing in Uniffi prevents you from specifying a param without a default value after a param with one. In this scenario, the Python bindings will...
The initial docstring test simply searches for docstring bytes in generated bindings file, without trying to parse the bindings and extract documentation in any way. A much more robust test...
Proc-macros and UDL-based generation disagree on what a constructor should return. Proc-macros expect `Arc`, UDL expects `Self`. We've had some discussions on this one before, but now we're finally in...
I have a common error that I want to return from a few APIs called `ApiError`. I have defined this in my `error` crate: ``` [Error] enum ApiError { "Unknown",...