build(deps): update rust crate uniffi_build to 0.30.0 #357
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.28.3->0.30.0Release Notes
mozilla/uniffi-rs (uniffi_build)
v0.30.0Compare Source
#[uniffi::trait_interface]attribute.This will look like
class PyTraitName(RustTraitName):What's new?
name = "NewName"attribute (like already supported for methods and constructors) (#2661)Display,Hash,Eqetc) (#2555)Ordtrait, allowing objects to be ordered by Rust (#2583).#[uniffi(default)]literals are now optional - eg,#[uniffi(default)]and#[uniffi(default = 0)]are equivalent.Similarly for args;
#[uniffi::export(default(arg_name))].When no literal is specifed, named types (objects, records, etc) can be used as long as they have suitable default values.
(#2543).
Custom types too (#2603)
enumandobjecttypes can be used as error type (#2658)NoPointerplaceholder object used to create fake interface instances has been renamed toNoHandleThis makes the generated source files deterministic.
uniffi_bindgen::backendhas been removed.#[uniffi(default)]changes how defaults are represented.FfiType::RustArcPtrhas been removed and the FFI type for objects/interfaces is now au64.Bindings authors will need to update their code to reflect this:
u64valuesu64handle rather than a raw pointeru64handle rather than a raw pointerEnumsandRecordscan have methods, so theMethodnow carriesself_typeinstead of the object name.In the templates, for
Callable.takes_self()is replaced withCallable.self_type().free,clone, followed by a field for each interface method.Note That
freeis now at the start of the vtable rather than the end.When Lifting/lowering trait interface handles, check if the handle was generated from Rust or the foreign side.
All changes in v0.30.0.
v0.29.4Compare Source
#[uniffi::trait_interface]attribute.This will look like
class PyTraitName(RustTraitName):What's new?
name = "NewName"attribute (like already supported for methods and constructors) (#2661)Display,Hash,Eqetc) (#2555)Ordtrait, allowing objects to be ordered by Rust (#2583).#[uniffi(default)]literals are now optional - eg,#[uniffi(default)]and#[uniffi(default = 0)]are equivalent.Similarly for args;
#[uniffi::export(default(arg_name))].When no literal is specifed, named types (objects, records, etc) can be used as long as they have suitable default values.
(#2543).
Custom types too (#2603)
enumandobjecttypes can be used as error type (#2658)NoPointerplaceholder object used to create fake interface instances has been renamed toNoHandleThis makes the generated source files deterministic.
uniffi_bindgen::backendhas been removed.#[uniffi(default)]changes how defaults are represented.FfiType::RustArcPtrhas been removed and the FFI type for objects/interfaces is now au64.Bindings authors will need to update their code to reflect this:
u64valuesu64handle rather than a raw pointeru64handle rather than a raw pointerEnumsandRecordscan have methods, so theMethodnow carriesself_typeinstead of the object name.In the templates, for
Callable.takes_self()is replaced withCallable.self_type().free,clone, followed by a field for each interface method.Note That
freeis now at the start of the vtable rather than the end.When Lifting/lowering trait interface handles, check if the handle was generated from Rust or the foreign side.
All changes in v0.30.0.
v0.29.3Compare Source
All changes in v0.29.4.
v0.29.2Compare Source
What's new?
All changes in v0.29.3.
v0.29.1Compare Source
What's fixed?
Allow
uniffi_reexport_scaffolding!macro to work in Rust 2024 (#2476)Python: fix issues with unusual name capitalization, (#2464)
Swift bindings can now generate automatic conformance to the
CaseIterableprotocol for simple enums and errors usinggenerate_case_iterable_conformance = truein the configuration.Swift bindings can now generate automatic conformance to the
Codableprotocol for records, enums and errors usinggenerate_codable_conformance = truein the configuration. Be aware that serialization in Swift may lead to different and incompatible results compared to serialization in Rust.All changes in v0.29.2.
Some async-related names have changed. Bindings authors may need to update their code to reflect
the new names. This is a name-change only -- the FFI and semantics are still the same.
UniffiForeignFutureFreeis nowUniffiForeignFutureDroppedCallbackUniffiForeignFutureisUniffiForeignFutureDroppedCallbackStruct.RustFuturePoll::MaybeReadyis nowRustFuturePoll::Wake.v0.29.0Compare Source
What's fixed?
Bindings support
liftandlowerfor CustomTypes in uniffi.toml to match the docs (#2438)Python: fix using Vecs and other composite types in tuple enums (#2445)
Kotlin: fix interfaces in sequences and records being not disposed (#2479)
What's changed?
Rust 2024 edition is supported, msrv is 1.82.0
The uniffi-bindgen CLI support no longer brings in the
clap/colorfeature, reducing dependencies (#2435)Protocols generated for Swift now conform to the
Sendableprotocol. This means that UniFFI traits will too, butit also means foreign implemented traits also must when Swift 6 conformance is enabled.
See the Swift section of the manual for more. (#2450)
You can now optionally specify extra frameworks like
CoreBluetoothorCoreFoundationwhen generating a modulemap file for an xcframework.All changes in v0.29.1.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "before 8am every weekday" in timezone America/New_York.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.