From 5d61765a8469ccda09a5bf632e0e685bddb55f37 Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 7 Sep 2020 17:46:42 -0700 Subject: [PATCH] Move the Driver away from the builder pattern and use mutators instead --- examples/em_reflection.rs | 6 +++--- examples/ferromagnet.rs | 9 ++++----- src/driver.rs | 14 ++++++-------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/examples/em_reflection.rs b/examples/em_reflection.rs index fe2e896..3648a70 100644 --- a/examples/em_reflection.rs +++ b/examples/em_reflection.rs @@ -2,9 +2,9 @@ use coremem::{Driver, mat}; fn main() { let width = 201; - let mut driver = Driver::new(width, 101, 1e-3 /* feature size */) - .with_y4m_renderer("em_reflection.y4m") - .with_term_renderer(); + let mut driver = Driver::new(width, 101, 1e-3 /* feature size */); + driver.add_y4m_renderer("em_reflection.y4m"); + driver.add_term_renderer();; for inset in 0..20 { for x in 0..width { diff --git a/examples/ferromagnet.rs b/examples/ferromagnet.rs index 9916f4e..4274848 100644 --- a/examples/ferromagnet.rs +++ b/examples/ferromagnet.rs @@ -3,11 +3,10 @@ use coremem::{Driver, mat}; fn main() { let width = 1300; let height = 1000; - let mut driver = Driver::new(width, height, 1e-5 /* feature size */) - .with_y4m_renderer("ferromagnet.y4m") - .with_term_renderer() - .with_steps_per_frame(40) - ; + let mut driver = Driver::new(width, height, 1e-5 /* feature size */); + driver.set_steps_per_frame(40); + driver.add_y4m_renderer("ferromagnet.y4m"); + driver.add_term_renderer(); for y in 0..height { for x in 500..600 { diff --git a/src/driver.rs b/src/driver.rs index 571e9e7..ca07de5 100644 --- a/src/driver.rs +++ b/src/driver.rs @@ -22,22 +22,20 @@ impl Driver { } } - pub fn with_steps_per_frame(mut self, steps_per_frame: u64) -> Self { + pub fn set_steps_per_frame(&mut self, steps_per_frame: u64) { self.steps_per_frame = steps_per_frame; - self } - pub fn with_renderer(mut self, renderer: R) -> Self { + pub fn add_renderer(&mut self, renderer: R) { self.renderer.push(renderer); - self } - pub fn with_y4m_renderer>(self, output: S) -> Self { - self.with_renderer(render::Y4MRenderer::new(output)) + pub fn add_y4m_renderer>(&mut self, output: S) { + self.add_renderer(render::Y4MRenderer::new(output)); } - pub fn with_term_renderer(self) -> Self { - self.with_renderer(render::ColorTermRenderer) + pub fn add_term_renderer(&mut self) { + self.add_renderer(render::ColorTermRenderer); } pub fn add_boundary(&mut self, thickness: u32) {