uniffi-rs/uniffi
Ben Dean-Kawamura f0041800c4 Added suport for using external types in proc-macros
Moved the FfiConverter implementation for callback interfaces and
traits from a declarative macro in `uniffi_core` to a proc-macro in
`uniffi_macros`.  This offers better `UniFfiTag` handling.  Now
`FfiConverter` is implemented for all tags for callback
interfaces/traits that are wrapped with the proc-macro attributes. This
matches the behavior for other types and will help fix #1531.

Changed the object FfiConverter to be inside a proc-macro, rather than
using the `Interface` trait.  This more flexibility and avoids
conflicting impls. For example, this allows for both the objects and
trait interface `FfiConverters`s to be implemented on `Arc<T>`.  I also
think it's nicer with less indirection. One drawback is that libraries
can't implement `FfiConverter` on Arc<T> because of the orphan rules. To
get around this, I added the `FfiConverterArc` trait.

Other changes:
- Adding `module_path` to the user type metadata
- Added an proc-macro -> proc-macro external type test by copying the
  ext-types fixture into another one that uses proc macros.
2023-06-29 09:41:07 -04:00
..
src Upgrade to Clap 4 2023-06-05 15:44:47 +02:00
tests/ui Added suport for using external types in proc-macros 2023-06-29 09:41:07 -04:00
Cargo.toml chore: Release 2023-06-23 12:20:10 +02:00
release.toml Ensure correct changelog replacement during release process 2023-06-21 12:23:33 +02:00