use dioxus_core::Component; #[derive(Clone)] pub struct ServeConfigBuilder { pub(crate) app: Component

, pub(crate) props: P, pub(crate) application_name: Option<&'static str>, pub(crate) base_path: Option<&'static str>, pub(crate) head: Option<&'static str>, pub(crate) assets_path: Option<&'static str>, } impl ServeConfigBuilder

{ /// Create a new ServeConfig pub fn new(app: Component

, props: P) -> Self { Self { app, props, application_name: None, base_path: None, head: None, assets_path: None, } } /// Set the application name matching the name in the Dioxus.toml file used to build the application pub fn application_name(mut self, application_name: &'static str) -> Self { self.application_name = Some(application_name); self } /// Set the path the WASM application will be served under pub fn base_path(mut self, base_path: &'static str) -> Self { self.base_path = Some(base_path); self } /// Set the head content to be included in the HTML document served pub fn head(mut self, head: &'static str) -> Self { self.head = Some(head); self } /// Set the path of the assets folder generated by the Dioxus CLI. (defaults to dist/assets) pub fn assets_path(mut self, assets_path: &'static str) -> Self { self.assets_path = Some(assets_path); self } /// Build the ServeConfig pub fn build(self) -> ServeConfig

{ let base_path = self.base_path.unwrap_or("."); let application_name = self.application_name.unwrap_or("dioxus"); ServeConfig { app: self.app, props: self.props, application_name, base_path, head: self.head.map(String::from).unwrap_or(format!(r#"Dioxus Application "#)), assets_path: self.assets_path.unwrap_or("dist/assets"), } } } #[derive(Clone)] pub struct ServeConfig { pub(crate) app: Component

, pub(crate) props: P, pub(crate) application_name: &'static str, pub(crate) base_path: &'static str, pub(crate) head: String, pub(crate) assets_path: &'static str, } impl From> for ServeConfig

{ fn from(builder: ServeConfigBuilder

) -> Self { builder.build() } }