simplify rectangles
This commit is contained in:
parent
a9f1134556
commit
f9727d3117
1
clippy.toml
Normal file
1
clippy.toml
Normal file
@ -0,0 +1 @@
|
||||
cognitive-complexity-threshold = 3
|
@ -1,6 +1,8 @@
|
||||
//! # RADN
|
||||
//! Rainbow something something Network.
|
||||
|
||||
#![warn(clippy::cognitive_complexity)]
|
||||
|
||||
pub mod atomic;
|
||||
pub mod flow;
|
||||
pub mod func;
|
||||
|
@ -207,6 +207,20 @@ impl WithLengthAndWidth<RenderedAny> {
|
||||
match self.value {
|
||||
RenderedAny::Common(common) => common.rectangles(vec, t, c),
|
||||
RenderedAny::Wide(rendereds) => {
|
||||
Self::wide_rectangles(c, rendereds, vec, t);
|
||||
}
|
||||
RenderedAny::Long(rendereds) => {
|
||||
Self::long_rectangles(t, rendereds, vec, c, self.width);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn wide_rectangles(
|
||||
c: usize,
|
||||
rendereds: Vec<WithLengthAndWidth<RenderedLong>>,
|
||||
vec: &mut Vec<(usize, usize)>,
|
||||
t: usize,
|
||||
) {
|
||||
let mut c = c;
|
||||
for rendered in rendereds.into_iter().map(|x| x.map(RenderedLong::any)) {
|
||||
let rw = rendered.width;
|
||||
@ -214,17 +228,22 @@ impl WithLengthAndWidth<RenderedAny> {
|
||||
c += 2 * rw;
|
||||
}
|
||||
}
|
||||
RenderedAny::Long(rendereds) => {
|
||||
|
||||
fn long_rectangles(
|
||||
t: usize,
|
||||
rendereds: Vec<WithLengthAndWidth<RenderedWide>>,
|
||||
vec: &mut Vec<(usize, usize)>,
|
||||
c: usize,
|
||||
width: usize,
|
||||
) {
|
||||
let mut t = t;
|
||||
for rendered in rendereds.into_iter().map(|x| x.map(RenderedWide::any)) {
|
||||
let rl = rendered.length;
|
||||
let rw = rendered.width;
|
||||
rendered.rectangles(vec, t, c + (self.width - rw) / 2);
|
||||
rendered.rectangles(vec, t, c + (width - rw) / 2);
|
||||
t += rl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn to_vec(self) -> Vec<(usize, usize)> {
|
||||
let mut vec = Vec::new();
|
||||
|
Loading…
Reference in New Issue
Block a user