Skip to content

Replace ancient lazy_static crate with once_cell #58

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

Merged
merged 1 commit into from
Jun 12, 2022

Conversation

MarijnS95
Copy link
Contributor

Warning

This change has not been run-tested, only build-tested in a crosscompiled environment.


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 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 most dependency trees. Furthermore lazy_static hasn't published any updates for 3 years.

See also the once_cell F.A.Q..

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 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 most dependency
trees.  Furthermore `lazy_static` hasn't published any updates for 3
years.

See also [the `once_cell` F.A.Q.].

[motivation in winit]: rust-windowing/winit#2313
[proposed for inclusion in `std`]: rust-lang/rust#74465
[the `once_cell` F.A.Q.]: https://docs.rs/once_cell/latest/once_cell/#faq
@harryfei harryfei merged commit a6bc221 into harryfei:master Jun 12, 2022
@MarijnS95 MarijnS95 deleted the once-cell branch June 12, 2022 13:42
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.

None yet

2 participants