Use once_cell instead of lazy_static

This seems to be generally considered the preferred, idiomatic solution
now. This is in the standard library behind a feature flag (apparently
now called `std::sync::LazyLock`).
This commit is contained in:
Ian Douglas Scott 2022-10-28 14:43:18 -07:00
parent 82217947aa
commit be9cd3a09f
6 changed files with 13 additions and 17 deletions

View file

@ -7,9 +7,9 @@ publish = false
[dependencies] [dependencies]
iced = { path = "../..", features = ["async-std", "debug"] } iced = { path = "../..", features = ["async-std", "debug"] }
once_cell = "1.15.0"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
lazy_static = "1.4"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
async-std = "1.0" async-std = "1.0"

View file

@ -11,12 +11,10 @@ use iced::window;
use iced::{Application, Element}; use iced::{Application, Element};
use iced::{Color, Command, Font, Length, Settings, Subscription}; use iced::{Color, Command, Font, Length, Settings, Subscription};
use lazy_static::lazy_static; use once_cell::sync::Lazy;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
lazy_static! { static INPUT_ID: Lazy<text_input::Id> = Lazy::new(text_input::Id::unique);
static ref INPUT_ID: text_input::Id = text_input::Id::unique();
}
pub fn main() -> iced::Result { pub fn main() -> iced::Result {
Todos::run(Settings { Todos::run(Settings {

View file

@ -9,7 +9,7 @@ publish = false
iced = { path = "../..", features = ["tokio", "debug"] } iced = { path = "../..", features = ["tokio", "debug"] }
iced_native = { path = "../../native" } iced_native = { path = "../../native" }
iced_futures = { path = "../../futures" } iced_futures = { path = "../../futures" }
lazy_static = "1.4" once_cell = "1.15.0"
[dependencies.async-tungstenite] [dependencies.async-tungstenite]
version = "0.16" version = "0.16"

View file

@ -8,6 +8,7 @@ use iced::widget::{
use iced::{ use iced::{
Application, Color, Command, Element, Length, Settings, Subscription, Theme, Application, Color, Command, Element, Length, Settings, Subscription, Theme,
}; };
use once_cell::sync::Lazy;
pub fn main() -> iced::Result { pub fn main() -> iced::Result {
WebSocket::run(Settings::default()) WebSocket::run(Settings::default())
@ -165,6 +166,4 @@ impl Default for State {
} }
} }
lazy_static::lazy_static! { static MESSAGE_LOG: Lazy<scrollable::Id> = Lazy::new(scrollable::Id::unique);
static ref MESSAGE_LOG: scrollable::Id = scrollable::Id::unique();
}

View file

@ -18,5 +18,5 @@ features = ["palette"]
[dependencies.palette] [dependencies.palette]
version = "0.6" version = "0.6"
[dependencies.lazy_static] [dependencies.once_cell]
version = "1.4" version = "1.15"

View file

@ -1,6 +1,6 @@
use iced_core::Color; use iced_core::Color;
use lazy_static::lazy_static; use once_cell::sync::Lazy;
use palette::{FromColor, Hsl, Mix, RelativeContrast, Srgb}; use palette::{FromColor, Hsl, Mix, RelativeContrast, Srgb};
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
@ -66,11 +66,10 @@ pub struct Extended {
pub danger: Danger, pub danger: Danger,
} }
lazy_static! { pub static EXTENDED_LIGHT: Lazy<Extended> =
pub static ref EXTENDED_LIGHT: Extended = Lazy::new(|| Extended::generate(Palette::LIGHT));
Extended::generate(Palette::LIGHT); pub static EXTENDED_DARK: Lazy<Extended> =
pub static ref EXTENDED_DARK: Extended = Extended::generate(Palette::DARK); Lazy::new(|| Extended::generate(Palette::DARK));
}
impl Extended { impl Extended {
pub fn generate(palette: Palette) -> Self { pub fn generate(palette: Palette) -> Self {