From f56c8a7361ceb215bce68e88bd6ce402e2694693 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 3 Feb 2022 17:18:05 +0700 Subject: Ask for a slice of segments instead of ownership in `LineDash` --- graphics/src/widget/canvas/path.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'graphics/src/widget/canvas/path.rs') diff --git a/graphics/src/widget/canvas/path.rs b/graphics/src/widget/canvas/path.rs index bc258b67..cb7e5035 100644 --- a/graphics/src/widget/canvas/path.rs +++ b/graphics/src/widget/canvas/path.rs @@ -71,15 +71,11 @@ impl Path { } } -pub(super) fn dashed(path: &Path, line_dash: LineDash) -> Path { +pub(super) fn dashed(path: &Path, line_dash: LineDash<'_>) -> Path { Path::new(|builder| { - let segments_odd = line_dash.segments.len() % 2 == 1; - - let segments = segments_odd - .then(|| { - [&line_dash.segments[..], &line_dash.segments[..]].concat() - }) - .unwrap_or(line_dash.segments); + let segments_odd = (line_dash.segments.len() % 2 == 1).then(|| { + [&line_dash.segments[..], &line_dash.segments[..]].concat() + }); let mut draw_line = false; @@ -106,7 +102,10 @@ pub(super) fn dashed(path: &Path, line_dash: LineDash) -> Path { true }, index: line_dash.offset, - intervals: &segments, + intervals: segments_odd + .as_ref() + .map(Vec::as_slice) + .unwrap_or(line_dash.segments), }, ); }) -- cgit