-
Notifications
You must be signed in to change notification settings - Fork 255
/
bars.rs
86 lines (82 loc) · 2.63 KB
/
bars.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
use ratatui::{prelude::*, widgets::*};
pub fn render(area: Rect, buf: &mut Buffer) {
let area = Layout::default()
.direction(Direction::Horizontal)
.constraints(vec![Constraint::Ratio(1, 3), Constraint::Ratio(2, 3)])
.split(area);
render_simple_barchart(area[0], buf);
render_horizontal_barchart(area[1], buf);
}
fn render_simple_barchart(area: Rect, buf: &mut Buffer) {
let data = vec![
("Jan", 10),
("Feb", 20),
("Mar", 30),
("Apr", 40),
("May", 50),
("Jun", 60),
("Jul", 70),
];
let block = Block::default()
.title("BarChart")
.borders(Borders::ALL)
.border_type(BorderType::Rounded);
BarChart::default()
.data(&data)
.block(block)
.bar_width(3)
.bar_gap(1)
.value_style(
Style::default()
.fg(Color::Black)
.bg(Color::Green)
.add_modifier(Modifier::ITALIC),
)
.label_style(Style::default().fg(Color::Yellow))
.bar_style(Style::default().fg(Color::Green))
.render(area, buf);
}
fn render_horizontal_barchart(area: Rect, buf: &mut Buffer) {
// https://www.videocardbenchmark.net/high_end_gpus.html
let nvidia = Style::new().bg(Color::Green);
let amd = Style::new().bg(Color::Red);
let data = [
Bar::default()
.text_value("GeForce RTX 4090 (38,978)".into())
.value_style(nvidia)
.value(38978),
Bar::default()
.text_value("GeForce RTX 4080 (34,879)".into())
.value_style(nvidia)
.value(34879),
Bar::default()
.text_value("Radeon PRO W7800 (32,146)".into())
.value_style(amd)
.value(32146),
Bar::default()
.text_value("GeForce RTX 4070 Ti (31,659)".into())
.value_style(nvidia)
.value(31659),
Bar::default()
.text_value("Radeon RX 7900 XTX (31,180)".into())
.value_style(amd)
.value(31180),
];
let group = BarGroup::default().label("GPU".into()).bars(&data);
let block = Block::default()
.title("Passmark")
.borders(Borders::ALL)
.border_type(BorderType::Rounded);
BarChart::default()
.direction(Direction::Horizontal)
.block(block)
.data(group)
.value_style(
Style::default()
.fg(Color::Black)
.add_modifier(Modifier::ITALIC),
)
.label_style(Style::default().fg(Color::Yellow))
.bar_style(Style::default().light_blue())
.render(area, buf);
}