Skip to content

Commit 0ffa56a

Browse files
committed
Bump version
1 parent 385a18f commit 0ffa56a

5 files changed

Lines changed: 110 additions & 20 deletions

File tree

Cargo.lock

Lines changed: 85 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "termint"
3-
version = "0.5.1"
3+
version = "0.5.2"
44
authors = ["Martin Slezák (github.com/Martan03)"]
55
description = "Library for colored printing and Terminal User Interfaces"
66
keywords = ["tui", "terminal", "termint", "ansi-codes", "color-printing"]
@@ -17,7 +17,8 @@ term_size = "0.3.2"
1717

1818
[dev-dependencies]
1919
criterion = "0.5.1"
20+
rand = "0.8.5"
2021

2122
[[bench]]
22-
name = "buffer"
23+
name = "main"
2324
harness = false

benches/buffer.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use criterion::{black_box, criterion_group, criterion_main, Criterion};
1+
use criterion::{black_box, criterion_group, Criterion};
22
use termint::{buffer::Buffer, geometry::Rect};
33

44
fn benchmark_merge(c: &mut Criterion) {
@@ -11,4 +11,3 @@ fn benchmark_merge(c: &mut Criterion) {
1111
}
1212

1313
criterion_group!(benches, benchmark_merge);
14-
criterion_main!(benches);

benches/main.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
use criterion::criterion_main;
2+
3+
pub mod buffer;
4+
5+
criterion_main!(buffer::benches);

src/widgets/grid.rs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -157,33 +157,34 @@ impl Grid {
157157
/// Gets sizes and positions of given units
158158
fn get_size(units: &[Unit], size: usize) -> Vec<Vec2> {
159159
let mut total = 0;
160-
let mut fills = 0;
160+
let mut fills_total = 0;
161161

162162
let mut sizes = Vec::new();
163+
let mut fills = Vec::new();
163164
for unit in units {
164-
match unit {
165-
Unit::Length(len) => {
166-
sizes.push(Vec2::new(*len, 0));
167-
total += len;
168-
}
169-
Unit::Percent(p) => {
170-
let len = size * p / 100;
171-
sizes.push(Vec2::new(len, 0));
172-
total += len;
173-
}
165+
let len = match unit {
166+
Unit::Length(len) => *len,
167+
Unit::Percent(p) => size * p / 100,
174168
Unit::Fill(f) => {
175-
sizes.push(Vec2::new(0, 0));
176-
fills += f;
169+
fills_total += f;
170+
fills.push(sizes.len());
171+
*f
177172
}
178-
}
173+
};
174+
sizes.push(Vec2::new(len, total));
175+
total += len;
176+
}
177+
178+
if fills_total == 0 {
179+
return sizes;
179180
}
180181

181182
let mut pos = 0;
182183
let remain = size.saturating_sub(total);
183184
for (i, row) in units.iter().enumerate() {
184185
match row {
185186
Unit::Fill(f) => {
186-
sizes[i].x = remain * f / fills;
187+
sizes[i].x = remain * f / fills_total;
187188
sizes[i].y = pos;
188189
pos += sizes[i].x;
189190
}

0 commit comments

Comments
 (0)