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",
"serde-wasm-bindgen", "serde-wasm-bindgen",
"tf-demo-parser", "tf-demo-parser",
"typed-builder",
"wasm-bindgen", "wasm-bindgen",
"wasm-bindgen-test", "wasm-bindgen-test",
"web-sys", "web-sys",
@ -973,6 +974,26 @@ dependencies = [
"winnow 0.7.10", "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]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.18" version = "1.0.18"

View file

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

View file

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

View file

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