diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-03-31 09:04:39 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-03-31 09:04:39 +0530 |
| commit | 7afc7d3e3566c1e1f8b770cf34ec7e50e045eb69 (patch) | |
| tree | 0973970d927974f87fe9debdeacf169708d17e0a /src | |
| parent | 57938041c18ee1c1bef362e60f24f5b2d3a46213 (diff) | |
| parent | 1026b064429f81ed5358abf501098e3aef21d07d (diff) | |
| download | rust-7afc7d3e3566c1e1f8b770cf34ec7e50e045eb69.tar.gz rust-7afc7d3e3566c1e1f8b770cf34ec7e50e045eb69.zip | |
Rollup merge of #23869 - tshepang:more-complete-builder-pattern-example, r=alexcrichton
This makes some use of `x` and `y`, instead of setting them to the same value.
Diffstat (limited to 'src')
| -rw-r--r-- | src/doc/trpl/method-syntax.md | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/doc/trpl/method-syntax.md b/src/doc/trpl/method-syntax.md index 85114b40a90..18542e58bbf 100644 --- a/src/doc/trpl/method-syntax.md +++ b/src/doc/trpl/method-syntax.md @@ -181,17 +181,23 @@ impl Circle { } struct CircleBuilder { - coordinate: f64, + x: f64, + y: f64, radius: f64, } impl CircleBuilder { fn new() -> CircleBuilder { - CircleBuilder { coordinate: 0.0, radius: 0.0, } + CircleBuilder { x: 0.0, y: 0.0, radius: 0.0, } + } + + fn x(&mut self, coordinate: f64) -> &mut CircleBuilder { + self.x = coordinate; + self } - fn coordinate(&mut self, coordinate: f64) -> &mut CircleBuilder { - self.coordinate = coordinate; + fn y(&mut self, coordinate: f64) -> &mut CircleBuilder { + self.x = coordinate; self } @@ -201,18 +207,20 @@ impl CircleBuilder { } fn finalize(&self) -> Circle { - Circle { x: self.coordinate, y: self.coordinate, radius: self.radius } + Circle { x: self.x, y: self.y, radius: self.radius } } } fn main() { let c = CircleBuilder::new() - .coordinate(10.0) - .radius(5.0) + .x(1.0) + .y(2.0) + .radius(2.0) .finalize(); - println!("area: {}", c.area()); + println!("x: {}", c.x); + println!("y: {}", c.y); } ``` |
