bendk
bendk
A while back when we were discussing decorators, one of the suggestions was to add support for "UniFFI extensions", which could generate additional code. Back then it was very hand-wavey,...
Always use `uniffi`, `Uniffi`, or `UNIFFI` for module-level names. Add a leading underscore for private class members. I think this is the most Pythonic naming style. Because we define `__all__`...
Added the `BlockingTaskQueue` type BlockingTaskQueue allows a Rust closure to be scheduled on a foreign thread where blocking operations are okay. The closure runs inside the parent future, which is...
In `0.25.0` this worked and the `bar` argument was treated as a normal `ByRef` argument. ``` #[uniffi::export] pub trait Foo: Send + Sync { fn foo(&self, bar: &Bar); } ```...
We should look into creating a single module on the foreign side that holds all shared functionality: RustBuffer, Future handling code, etc. There would be a couple advantages to this:...
This feature was added to make UniFFI work with the gecko-js bindings in mozilla-central. It currently only applies to the `RustBuffer` FFI functions, but any global FFI functions will require...
Use handle map handles to pass objects across the FFI,
If you define an external type, but don't use it in an exporting function/method, then we don't actually import the type in the bindings. Here's a branch that contains a...
This PR contains the parts of #1808 that I think are most beneficial and least controversial: - **Consolidate the handle code.** Use one `FfiType` variant for all handles. Implement one...
Proc-macro and UDL-based generation disagree on how to handle functions returning errors. UDL-based generation adds a `.map_err(Into::into)` call, which allows the exported function to return any error that maps into...