Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ndk-glue: Replace ancient lazy_static crate with once_cell #285

Merged
merged 1 commit into from
Jun 10, 2022

Conversation

MarijnS95
Copy link
Member

Piggybacking on the motivation in winit: lazy_static! is a macro whereas once_cell achieves the same using generics. Its implementation has also been proposed for inclusion in std, making it easier for us to switch to a standardized version if/when that happens. The author of that winit PR is making this change to many more crates, slowly turning the scales in favour of once_cell in our dependency tree too.

Furthermore lazy_static hasn't published any updates for 3 years, and the new syntax is closer for dropping this wrapping completely when the necessary constructors become const (i.e. switching to parking_lot will give us a const fn new() on RwLock) or this feature lands in stable std.

Piggybacking on the [motivation in winit]: `lazy_static!` is a macro
whereas `once_cell` achieves the same using generics.  Its
implementation has also been [proposed for inclusion in `std`], making
it easier for us to switch to a standardized version if/when that
happens.  The author of that winit PR is making this change to many more
crates, slowly turning the scales in favour of `once_cell` in our
dependency tree too.

Furthermore `lazy_static` hasn't published any updates for 3 years, and
the new syntax is closer for dropping this wrapping completely when the
necessary constructors become `const` (i.e. switching to `parking_lot`
will give us a [`const fn new()` on `RwLock`]) or this feature lands in stable
`std`.

[motivation in winit]: rust-windowing/winit#2313
[proposed for inclusion in `std`]: rust-lang/rust#74465
[`const fn new()` on `RwLock`]: https://docs.rs/lock_api/latest/lock_api/struct.RwLock.html#method.new
@MarijnS95 MarijnS95 merged commit fa1672a into master Jun 10, 2022
@MarijnS95 MarijnS95 deleted the ndk-glue-once-cell branch June 10, 2022 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants