[librsvg: 18/19] Remove PathBuilder::new and just derive(Default) for it
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 18/19] Remove PathBuilder::new and just derive(Default) for it
- Date: Fri, 21 Aug 2020 18:30:17 +0000 (UTC)
commit a2abaea448ea5211d0b5107f0773244170acd13b
Author: Federico Mena Quintero <federico gnome org>
Date: Fri Aug 21 13:12:50 2020 -0500
Remove PathBuilder::new and just derive(Default) for it
rsvg_internals/benches/path_parser.rs | 2 +-
rsvg_internals/src/marker.rs | 16 ++++++++--------
rsvg_internals/src/path_builder.rs | 20 ++++----------------
rsvg_internals/src/path_parser.rs | 2 +-
rsvg_internals/src/shapes.rs | 10 +++++-----
5 files changed, 19 insertions(+), 31 deletions(-)
---
diff --git a/rsvg_internals/benches/path_parser.rs b/rsvg_internals/benches/path_parser.rs
index e0d0f6c12..d368e5b6b 100644
--- a/rsvg_internals/benches/path_parser.rs
+++ b/rsvg_internals/benches/path_parser.rs
@@ -37,7 +37,7 @@ fn lex_path(input: &str) {
fn path_parser(c: &mut Criterion) {
c.bench_function("parse path into builder", |b| {
let input = black_box(INPUT);
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
b.iter(|| {
let _ = parse_path_into_builder(&input, &mut builder);
diff --git a/rsvg_internals/src/marker.rs b/rsvg_internals/src/marker.rs
index eec6316f0..19f05f761 100644
--- a/rsvg_internals/src/marker.rs
+++ b/rsvg_internals/src/marker.rs
@@ -862,7 +862,7 @@ mod directionality_tests {
// Single open path; the easy case
fn setup_open_path() -> Segments {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(10.0, 10.0);
builder.line_to(20.0, 10.0);
@@ -882,7 +882,7 @@ mod directionality_tests {
}
fn setup_multiple_open_subpaths() -> Segments {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(10.0, 10.0);
builder.line_to(20.0, 10.0);
@@ -911,7 +911,7 @@ mod directionality_tests {
// Closed subpath; must have a line segment back to the first point
fn setup_closed_subpath() -> Segments {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(10.0, 10.0);
builder.line_to(20.0, 10.0);
@@ -935,7 +935,7 @@ mod directionality_tests {
// Multiple closed subpaths; each must have a line segment back to their
// initial points, with no degenerate segments between subpaths.
fn setup_multiple_closed_subpaths() -> Segments {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(10.0, 10.0);
builder.line_to(20.0, 10.0);
@@ -969,7 +969,7 @@ mod directionality_tests {
// A lineto follows the first closed subpath, with no moveto to start the second subpath.
// The lineto must start at the first point of the first subpath.
fn setup_no_moveto_after_closepath() -> Segments {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(10.0, 10.0);
builder.line_to(20.0, 10.0);
@@ -1005,7 +1005,7 @@ mod directionality_tests {
// only build a cairo_path_t for the final rendering step.
//
// fn setup_sequence_of_moveto () -> Segments {
- // let mut builder = PathBuilder::new ();
+ // let mut builder = PathBuilder::default ();
//
// builder.move_to (10.0, 10.0);
// builder.move_to (20.0, 20.0);
@@ -1111,7 +1111,7 @@ mod marker_tests {
#[test]
fn emits_for_open_subpath() {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(0.0, 0.0);
builder.line_to(1.0, 0.0);
builder.line_to(1.0, 1.0);
@@ -1146,7 +1146,7 @@ mod marker_tests {
#[test]
fn emits_for_closed_subpath() {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(0.0, 0.0);
builder.line_to(1.0, 0.0);
builder.line_to(1.0, 1.0);
diff --git a/rsvg_internals/src/path_builder.rs b/rsvg_internals/src/path_builder.rs
index 8c7dce992..e15baaff8 100644
--- a/rsvg_internals/src/path_builder.rs
+++ b/rsvg_internals/src/path_builder.rs
@@ -435,7 +435,7 @@ impl PathCommand {
///
/// When you are finished constructing a path builder, turn it into
/// a `Path` with `into_path`.
-#[derive(Clone)]
+#[derive(Clone, Default)]
pub struct PathBuilder {
path_commands: TinyVec<[PathCommand; 32]>,
}
@@ -473,12 +473,6 @@ enum PackedCommand {
}
impl PathBuilder {
- pub fn new() -> PathBuilder {
- PathBuilder {
- path_commands: TinyVec::new(),
- }
- }
-
pub fn into_path(self) -> Path {
let num_coords = self
.path_commands
@@ -544,12 +538,6 @@ impl PathBuilder {
}
}
-impl Default for PathBuilder {
- fn default() -> Self {
- Self::new()
- }
-}
-
/// An iterator over `SubPath` from a Path.
struct SubPathIter<'a> {
path: &'a Path,
@@ -714,7 +702,7 @@ mod tests {
#[test]
fn empty_builder() {
- let builder = PathBuilder::new();
+ let builder = PathBuilder::default();
let path = builder.into_path();
assert!(path.is_empty());
assert_eq!(path.iter().count(), 0);
@@ -722,7 +710,7 @@ mod tests {
#[test]
fn all_commands() {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(42.0, 43.0);
builder.line_to(42.0, 43.0);
builder.curve_to(42.0, 43.0, 44.0, 45.0, 46.0, 47.0);
@@ -761,7 +749,7 @@ mod tests {
#[test]
fn subpath_iter() {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
builder.move_to(42.0, 43.0);
builder.line_to(42.0, 43.0);
builder.close_path();
diff --git a/rsvg_internals/src/path_parser.rs b/rsvg_internals/src/path_parser.rs
index 3b491bd01..df0f43085 100644
--- a/rsvg_internals/src/path_parser.rs
+++ b/rsvg_internals/src/path_parser.rs
@@ -919,7 +919,7 @@ mod tests {
) {
let expected_result = make_parse_result(error_pos_str, expected_error_kind);
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
let result = parse_path_into_builder(path_str, &mut builder);
let path = builder.into_path();
diff --git a/rsvg_internals/src/shapes.rs b/rsvg_internals/src/shapes.rs
index ec3c18077..4bf57fc34 100644
--- a/rsvg_internals/src/shapes.rs
+++ b/rsvg_internals/src/shapes.rs
@@ -55,7 +55,7 @@ impl Shape {
}
fn make_ellipse(cx: f64, cy: f64, rx: f64, ry: f64) -> SvgPath {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
// Per the spec, rx and ry must be nonnegative
if rx <= 0.0 || ry <= 0.0 {
@@ -119,7 +119,7 @@ impl SetAttributes for Path {
fn set_attributes(&mut self, pbag: &PropertyBag<'_>) -> ElementResult {
for (attr, value) in pbag.iter() {
if attr.expanded() == expanded_name!("", "d") {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
if let Err(e) = path_parser::parse_path_into_builder(value, &mut builder) {
// FIXME: we don't propagate errors upstream, but creating a partial
// path is OK per the spec
@@ -197,7 +197,7 @@ impl Parse for Points {
}
fn make_poly(points: Option<&Points>, closed: bool) -> SvgPath {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
if let Some(points) = points {
for (i, &(x, y)) in points.iter().enumerate() {
@@ -334,7 +334,7 @@ impl Draw for Line {
impl Line {
fn make_path(&self, values: &ComputedValues, draw_ctx: &mut DrawingCtx) -> SvgPath {
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
let params = draw_ctx.get_view_params();
@@ -448,7 +448,7 @@ impl Rect {
}
}
- let mut builder = PathBuilder::new();
+ let mut builder = PathBuilder::default();
// Per the spec, w,h must be >= 0
if w <= 0.0 || h <= 0.0 {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]