feat: `Default` for `LeptosOptions`, `ConfFile` (#2208)

Co-authored-by: chrisp60 <gh@cperry.me>
This commit is contained in:
Chris 2024-01-21 13:26:10 -05:00 committed by GitHub
parent b450f0fd10
commit d33e57d4b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 2 deletions

View File

@ -13,7 +13,7 @@ use typed_builder::TypedBuilder;
/// A Struct to allow us to parse LeptosOptions from the file. Not really needed, most interactions should
/// occur with LeptosOptions
#[derive(Clone, Debug, serde::Deserialize)]
#[derive(Clone, Debug, serde::Deserialize, Default)]
#[serde(rename_all = "kebab-case")]
pub struct ConfFile {
pub leptos_options: LeptosOptions,
@ -27,7 +27,7 @@ pub struct ConfFile {
#[serde(rename_all = "kebab-case")]
pub struct LeptosOptions {
/// The name of the WASM and JS files generated by wasm-bindgen. Defaults to the crate name with underscores instead of dashes
#[builder(setter(into))]
#[builder(setter(into), default=default_output_name())]
pub output_name: String,
/// The path of the all the files generated by cargo-leptos. This defaults to '.' for convenience when integrating with other
/// tools.
@ -112,6 +112,16 @@ impl LeptosOptions {
}
}
impl Default for LeptosOptions {
fn default() -> Self {
LeptosOptions::builder().build()
}
}
fn default_output_name() -> String {
env!("CARGO_CRATE_NAME").replace('-', "_")
}
fn default_site_root() -> String {
".".to_string()
}