bendk

Results 140 issues of bendk

**PR notes**: I split this out out from #2087 so that we can discuss the custom type changes separate from the remote type changes. I think the new syntax is...

Lately, we've been discussing the idea of UniFFI 1.0 and what it would entail. As part of this effort, we should think about how we could improve on our current...

FFI-1.0

Currently these types are always serialized into a `RustBuffer` which has been long believed to be inefficient ([Issue 244](#244), [ADR-002](https://github.com/mozilla/uniffi-rs/blob/690fd55964122392ab7925f8f16f1a505ffdc110/docs/adr/0002-serialize-complex-datatypes.md)). We should explore passing these as `repr(C)` structs and tagged...

FFI-1.0

The `ffi-buffer` feature is an experiment to try to simply bindings generation for languages where we don't have access to ctypes or a similar libffi-based library and where we can't...

FFI-1.0

We should adjust how we pack values into RustBuffers. - Align items, rather than always packing them together. I think the C struct packing algorithm should work well. In addition...

FFI-1.0

We currently serialize many argument types to a `RustBuffer`. For each argument a separate buffer is allocated, which is wasteful. It would be better to pack all arguments into a...

FFI-1.0

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...

FFI-1.0

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...

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...

We currently support remote records and enums, but we don't support remote interface types. https://github.com/mozilla/uniffi-rs/pull/2087 starts that support since it allows the interface types to be used in function signatures,...