fix cli build

This commit is contained in:
Robin Appelman 2025-06-18 20:59:46 +02:00
commit 651f59cbea
4 changed files with 33 additions and 8 deletions

21
wasm/Cargo.lock generated
View file

@ -190,6 +190,7 @@ dependencies = [
"serde",
"serde-wasm-bindgen",
"tf-demo-parser",
"typed-builder",
"wasm-bindgen",
"wasm-bindgen-test",
"web-sys",
@ -973,6 +974,26 @@ dependencies = [
"winnow 0.7.10",
]
[[package]]
name = "typed-builder"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce63bcaf7e9806c206f7d7b9c1f38e0dce8bb165a80af0898161058b19248534"
dependencies = [
"typed-builder-macro",
]
[[package]]
name = "typed-builder-macro"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60d8d828da2a3d759d3519cdf29a5bac49c77d039ad36d0782edadbf9cd5415b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.101",
]
[[package]]
name = "unicode-ident"
version = "1.0.18"

View file

@ -14,7 +14,7 @@ required-features = ["cli"]
[features]
default = ["console_error_panic_hook"]
cli = ["clap", "env_logger"]
cli = ["clap", "env_logger", "typed-builder"]
[dependencies]
bitbuffer = "0.11.1"
@ -42,6 +42,7 @@ num_enum = "0.5.7"
parse-display = "0.5.5"
serde = { version = "1.0.139", features = ["derive"] }
log = { version = "0.4.17", features = [] }
typed-builder = { version = "0.21.0", optional = true }
[dev-dependencies]
wasm-bindgen-test = "0.3.13"

View file

@ -19,19 +19,17 @@ struct Args {
impl Args {
fn get_options(&self) -> EditOptions {
EditOptions {
unlock_pov: self.unlock_pov,
cut: if let (Some(from), Some(to)) = (self.from, self.to) {
EditOptions::builder()
.unlock_pov(self.unlock_pov)
.remove_invalid_deletes(self.remove_invalid_deletes)
.cut(if let (Some(from), Some(to)) = (self.from, self.to) {
Some(TickRange {
from: from.into(),
to: to.into(),
})
} else {
None
},
remove_invalid_deletes: self.remove_invalid_deletes,
..EditOptions::default()
}
}).build()
}
}

View file

@ -7,13 +7,18 @@ use tf_demo_parser::demo::message::Message;
#[derive(Debug, Serialize, Deserialize, Default)]
#[non_exhaustive]
#[cfg_attr(feature = "cli", derive(typed_builder::TypedBuilder))]
pub struct EditOptions {
#[cfg_attr(feature = "cli", builder(default))]
pub unlock_pov: bool,
#[serde(default)]
#[cfg_attr(feature = "cli", builder(default))]
pub remove_conditions: Vec<CondOptions>,
#[serde(default)]
#[cfg_attr(feature = "cli", builder(default))]
pub cut: Option<TickRange>,
#[serde(default)]
#[cfg_attr(feature = "cli", builder(default))]
pub remove_invalid_deletes: bool,
}