diff options
author | 2022-01-12 20:16:33 +0700 | |
---|---|---|
committer | 2022-01-12 20:16:33 +0700 | |
commit | aaf2444e9fda16318e56adff9c7c8650a99e6a12 (patch) | |
tree | cb083513fd678f1342aea6194dd877ce4549ba82 /examples | |
parent | 8f976197850c5bb9166bf32fb05e5a1d93f36515 (diff) | |
download | iced-aaf2444e9fda16318e56adff9c7c8650a99e6a12.tar.gz iced-aaf2444e9fda16318e56adff9c7c8650a99e6a12.tar.bz2 iced-aaf2444e9fda16318e56adff9c7c8650a99e6a12.zip |
Replace `chrono` with `time` in `clock` example
Diffstat (limited to 'examples')
-rw-r--r-- | examples/clock/Cargo.toml | 2 | ||||
-rw-r--r-- | examples/clock/src/main.rs | 23 |
2 files changed, 14 insertions, 11 deletions
diff --git a/examples/clock/Cargo.toml b/examples/clock/Cargo.toml index c6e32379..29457c0d 100644 --- a/examples/clock/Cargo.toml +++ b/examples/clock/Cargo.toml @@ -7,4 +7,4 @@ publish = false [dependencies] iced = { path = "../..", features = ["canvas", "tokio", "debug"] } -chrono = "0.4" +time = { version = "0.3.5", features = ["local-offset"] } diff --git a/examples/clock/src/main.rs b/examples/clock/src/main.rs index b317ac00..de9e879a 100644 --- a/examples/clock/src/main.rs +++ b/examples/clock/src/main.rs @@ -1,7 +1,7 @@ use iced::{ canvas::{self, Cache, Canvas, Cursor, Geometry, LineCap, Path, Stroke}, - executor, time, Application, Color, Command, Container, Element, Length, - Point, Rectangle, Settings, Subscription, Vector, + executor, Application, Color, Command, Container, Element, Length, Point, + Rectangle, Settings, Subscription, Vector, }; pub fn main() -> iced::Result { @@ -12,13 +12,13 @@ pub fn main() -> iced::Result { } struct Clock { - now: chrono::DateTime<chrono::Local>, + now: time::OffsetDateTime, clock: Cache, } #[derive(Debug, Clone, Copy)] enum Message { - Tick(chrono::DateTime<chrono::Local>), + Tick(time::OffsetDateTime), } impl Application for Clock { @@ -29,7 +29,8 @@ impl Application for Clock { fn new(_flags: ()) -> (Self, Command<Message>) { ( Clock { - now: chrono::Local::now(), + now: time::OffsetDateTime::now_local() + .unwrap_or_else(|_| time::OffsetDateTime::now_utc()), clock: Default::default(), }, Command::none(), @@ -56,8 +57,12 @@ impl Application for Clock { } fn subscription(&self) -> Subscription<Message> { - time::every(std::time::Duration::from_millis(500)) - .map(|_| Message::Tick(chrono::Local::now())) + iced::time::every(std::time::Duration::from_millis(500)).map(|_| { + Message::Tick( + time::OffsetDateTime::now_local() + .unwrap_or_else(|_| time::OffsetDateTime::now_utc()), + ) + }) } fn view(&mut self) -> Element<Message> { @@ -77,8 +82,6 @@ impl Application for Clock { impl canvas::Program<Message> for Clock { fn draw(&self, bounds: Rectangle, _cursor: Cursor) -> Vec<Geometry> { - use chrono::Timelike; - let clock = self.clock.draw(bounds.size(), |frame| { let center = frame.center(); let radius = frame.width().min(frame.height()) / 2.0; @@ -126,7 +129,7 @@ impl canvas::Program<Message> for Clock { } } -fn hand_rotation(n: u32, total: u32) -> f32 { +fn hand_rotation(n: u8, total: u8) -> f32 { let turns = n as f32 / total as f32; 2.0 * std::f32::consts::PI * turns |