builder updates

This commit is contained in:
Robin Appelman 2025-06-18 22:24:11 +02:00
commit 01b74e3f7b
3 changed files with 17 additions and 18 deletions

View file

@ -25,14 +25,13 @@ See `edit --help` for the available options.
use edit::{edit, EditOptions, TickRange}; use edit::{edit, EditOptions, TickRange};
fn main() { fn main() {
let options = EditOptions { let options = EditOptions::builder()
unlock_pov: true, .unlock_pov(true)
cut: Some(TickRange { .remove_invalid_deletes(self.remove_invalid_deletes)
from: 1000.into(), .cut(TickRange {
to: 2000.into(), from: from.into(),
}), to: to.into(),
..EditOptions::default() }).build();
};
let input = fs::read("in.demo").unwrap(); let input = fs::read("in.demo").unwrap();
let output = edit(&input, options); let output = edit(&input, options);
fs::write("out.dem", output).unwrap(); fs::write("out.dem", output).unwrap();

View file

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

View file

@ -15,7 +15,7 @@ pub struct EditOptions {
#[cfg_attr(feature = "cli", builder(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))] #[cfg_attr(feature = "cli", builder(default, setter(strip_option)))]
pub cut: Option<TickRange>, pub cut: Option<TickRange>,
#[serde(default)] #[serde(default)]
#[cfg_attr(feature = "cli", builder(default))] #[cfg_attr(feature = "cli", builder(default))]