Skip to content

Commit 7afc7d3

Browse files
committed
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.
2 parents 5793804 + 1026b06 commit 7afc7d3

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/doc/trpl/method-syntax.md

+16-8
Original file line numberDiff line numberDiff line change
@@ -181,17 +181,23 @@ impl Circle {
181181
}
182182
183183
struct CircleBuilder {
184-
coordinate: f64,
184+
x: f64,
185+
y: f64,
185186
radius: f64,
186187
}
187188
188189
impl CircleBuilder {
189190
fn new() -> CircleBuilder {
190-
CircleBuilder { coordinate: 0.0, radius: 0.0, }
191+
CircleBuilder { x: 0.0, y: 0.0, radius: 0.0, }
192+
}
193+
194+
fn x(&mut self, coordinate: f64) -> &mut CircleBuilder {
195+
self.x = coordinate;
196+
self
191197
}
192198
193-
fn coordinate(&mut self, coordinate: f64) -> &mut CircleBuilder {
194-
self.coordinate = coordinate;
199+
fn y(&mut self, coordinate: f64) -> &mut CircleBuilder {
200+
self.x = coordinate;
195201
self
196202
}
197203
@@ -201,18 +207,20 @@ impl CircleBuilder {
201207
}
202208
203209
fn finalize(&self) -> Circle {
204-
Circle { x: self.coordinate, y: self.coordinate, radius: self.radius }
210+
Circle { x: self.x, y: self.y, radius: self.radius }
205211
}
206212
}
207213
208214
fn main() {
209215
let c = CircleBuilder::new()
210-
.coordinate(10.0)
211-
.radius(5.0)
216+
.x(1.0)
217+
.y(2.0)
218+
.radius(2.0)
212219
.finalize();
213220
214-
215221
println!("area: {}", c.area());
222+
println!("x: {}", c.x);
223+
println!("y: {}", c.y);
216224
}
217225
```
218226

0 commit comments

Comments
 (0)