From 3ffb1facf3f0c7635076dbabd95636bbb98b5dee Mon Sep 17 00:00:00 2001 From: rtretter <25963632+rtretter@users.noreply.github.com> Date: Wed, 6 Mar 2024 21:36:33 +0100 Subject: [PATCH] search for first valid platform in features --- packages/cli/src/cli/serve.rs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/cli/src/cli/serve.rs b/packages/cli/src/cli/serve.rs index 05b07c224..ac60d460e 100644 --- a/packages/cli/src/cli/serve.rs +++ b/packages/cli/src/cli/serve.rs @@ -2,8 +2,8 @@ use dioxus_cli_config::Platform; use manganis_cli_support::AssetManifest; use super::*; +use cargo_toml::Dependency::{Detailed, Inherited, Simple}; use std::{fs::create_dir_all, io::Write, path::PathBuf}; -use cargo_toml::Dependency::{Simple, Inherited, Detailed}; /// Run the WASM project on dev-server #[derive(Clone, Debug, Parser)] @@ -42,28 +42,24 @@ impl Serve { crate_config.set_cargo_args(self.serve.cargo_args); - let mut platform = self - .serve - .platform; + let mut platform = self.serve.platform; if platform.is_none() { if let Some(dependency) = &crate_config.manifest.dependencies.get("dioxus") { let features = match dependency { Inherited(detail) => detail.features.to_vec(), Detailed(detail) => detail.features.to_vec(), - Simple(_) => vec![] + Simple(_) => vec![], }; platform = features .iter() - .next() - .and_then(|first_feature| serde_json::from_str(&format!(r#""{}""#, first_feature)).ok()); + .find_map(|platform| serde_json::from_str(&format!(r#""{}""#, platform)).ok()); } } - let platform = platform - .unwrap_or(crate_config.dioxus_config.application.default_platform); - + let platform = platform.unwrap_or(crate_config.dioxus_config.application.default_platform); + match platform { Platform::Web => { // start the develop server