From 8f52604987038225ce90261f17fd8408f1a7ebe3 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 5 Feb 2020 01:40:27 +0100 Subject: Use `reqwest` and `tokio` in `pokedex` example --- examples/pokedex/src/main.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'examples/pokedex/src') diff --git a/examples/pokedex/src/main.rs b/examples/pokedex/src/main.rs index 283437b2..3c00d628 100644 --- a/examples/pokedex/src/main.rs +++ b/examples/pokedex/src/main.rs @@ -27,7 +27,7 @@ enum Message { } impl Application for Pokedex { - type Executor = iced_futures::executor::AsyncStd; + type Executor = iced_futures::executor::Tokio; type Message = Message; fn new() -> (Pokedex, Command) { @@ -175,8 +175,8 @@ impl Pokemon { let sprite = format!("https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/{}.png", id); let (entry, sprite): (Entry, _) = futures::future::try_join( - surf::get(&url).recv_json(), - surf::get(&sprite).recv_bytes(), + reqwest::get(&url).await?.json(), + reqwest::get(&sprite).await?.bytes(), ) .await?; @@ -195,7 +195,7 @@ impl Pokemon { .chars() .map(|c| if c.is_control() { ' ' } else { c }) .collect(), - image: image::Handle::from_memory(sprite), + image: image::Handle::from_memory(sprite.as_ref().to_vec()), }) } } @@ -206,9 +206,9 @@ enum Error { LanguageError, } -impl From for Error { - fn from(exception: surf::Exception) -> Error { - dbg!(&exception); +impl From for Error { + fn from(error: reqwest::Error) -> Error { + dbg!(&error); Error::APIError } -- cgit From 9df3fb13c7b0372f64ff7bd9073769833689de5b Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 5 Feb 2020 04:15:45 +0100 Subject: Make `pokedex` example work on Wasm --- examples/pokedex/src/main.rs | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) (limited to 'examples/pokedex/src') diff --git a/examples/pokedex/src/main.rs b/examples/pokedex/src/main.rs index 3c00d628..13e420a9 100644 --- a/examples/pokedex/src/main.rs +++ b/examples/pokedex/src/main.rs @@ -27,7 +27,12 @@ enum Message { } impl Application for Pokedex { + #[cfg(not(target_arch = "wasm32"))] type Executor = iced_futures::executor::Tokio; + + #[cfg(target_arch = "wasm32")] + type Executor = iced_futures::executor::WasmBindgen; + type Message = Message; fn new() -> (Pokedex, Command) { @@ -166,19 +171,21 @@ impl Pokemon { } let id = { - let mut rng = rand::thread_rng(); + let mut rng = rand::rngs::OsRng::default(); rng.gen_range(0, Pokemon::TOTAL) }; - let url = format!("https://pokeapi.co/api/v2/pokemon-species/{}", id); - let sprite = format!("https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/{}.png", id); + let fetch_entry = async { + let url = + format!("https://pokeapi.co/api/v2/pokemon-species/{}", id); - let (entry, sprite): (Entry, _) = futures::future::try_join( - reqwest::get(&url).await?.json(), - reqwest::get(&sprite).await?.bytes(), - ) - .await?; + reqwest::get(&url).await?.json().await + }; + + let (entry, image): (Entry, _) = + futures::future::try_join(fetch_entry, Self::fetch_image(id)) + .await?; let description = entry .flavor_text_entries @@ -195,9 +202,23 @@ impl Pokemon { .chars() .map(|c| if c.is_control() { ' ' } else { c }) .collect(), - image: image::Handle::from_memory(sprite.as_ref().to_vec()), + image, }) } + + async fn fetch_image(id: u16) -> Result { + let url = format!("https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/{}.png", id); + + #[cfg(not(target_arch = "wasm32"))] + { + let bytes = reqwest::get(&url).await?.bytes().await?; + + Ok(image::Handle::from_memory(bytes.as_ref().to_vec())) + } + + #[cfg(target_arch = "wasm32")] + Ok(image::Handle::from_path(url)) + } } #[derive(Debug, Clone)] -- cgit From ad500441afc355f0b8ca2a463248d350d74f0f20 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 6 Feb 2020 03:56:21 +0100 Subject: Allow switching `executor::Default` with features --- examples/pokedex/src/main.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'examples/pokedex/src') diff --git a/examples/pokedex/src/main.rs b/examples/pokedex/src/main.rs index 13e420a9..b0cb3c55 100644 --- a/examples/pokedex/src/main.rs +++ b/examples/pokedex/src/main.rs @@ -27,12 +27,7 @@ enum Message { } impl Application for Pokedex { - #[cfg(not(target_arch = "wasm32"))] - type Executor = iced_futures::executor::Tokio; - - #[cfg(target_arch = "wasm32")] - type Executor = iced_futures::executor::WasmBindgen; - + type Executor = iced::executor::Default; type Message = Message; fn new() -> (Pokedex, Command) { -- cgit From f719ba3f4efebdf29cd5922d9e083f8dea96c486 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 6 Feb 2020 05:03:11 +0100 Subject: Add `font-family` to `Text` style in `iced_web` --- examples/pokedex/src/main.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'examples/pokedex/src') diff --git a/examples/pokedex/src/main.rs b/examples/pokedex/src/main.rs index b0cb3c55..4449b901 100644 --- a/examples/pokedex/src/main.rs +++ b/examples/pokedex/src/main.rs @@ -79,6 +79,7 @@ impl Application for Pokedex { fn view(&mut self) -> Element { let content = match self { Pokedex::Loading => Column::new() + .width(Length::Shrink) .push(Text::new("Searching for Pokémon...").size(40)), Pokedex::Loaded { pokemon, search } => Column::new() .max_width(500) -- cgit