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};
fn main() {
let options = EditOptions {
unlock_pov: true,
cut: Some(TickRange {
from: 1000.into(),
to: 2000.into(),
}),
..EditOptions::default()
};
let options = EditOptions::builder()
.unlock_pov(true)
.remove_invalid_deletes(self.remove_invalid_deletes)
.cut(TickRange {
from: from.into(),
to: to.into(),
}).build();
let input = fs::read("in.demo").unwrap();
let output = edit(&input, options);
fs::write("out.dem", output).unwrap();

View file

@ -19,17 +19,17 @@ struct Args {
impl Args {
fn get_options(&self) -> EditOptions {
EditOptions::builder()
let builder = 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);
if let (Some(from), Some(to)) = (self.from, self.to) {
builder.cut(TickRange {
from: from.into(),
to: to.into(),
}).build()
} else {
builder.build()
}
}
}

View file

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