summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcyqsimon <28627918+cyqsimon@users.noreply.github.com>2023-11-01 12:00:58 +0800
committerGitHub <noreply@github.com>2023-11-01 12:00:58 +0800
commit022eade156d0ee815a1f2200fb7ff3fac71087a8 (patch)
treec5ccc68293e5a3f8f755e04e39d5825eb801ff49
parent75a7b38e2ced46aca4b18379f07d77966dae5e9c (diff)
Bump ratatui to 0.24.0 (#327)
-rw-r--r--Cargo.lock62
-rw-r--r--Cargo.toml2
-rw-r--r--src/display/components/header_details.rs19
-rw-r--r--src/display/components/help_text.rs3
-rw-r--r--src/display/components/layout.rs3
-rw-r--r--src/display/components/table.rs3
-rw-r--r--src/display/raw_terminal_backend.rs13
-rw-r--r--src/tests/fakes/fake_output.rs16
8 files changed, 94 insertions, 27 deletions
diff --git a/Cargo.lock b/Cargo.lock
index d7e2316..816e39d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -29,6 +29,18 @@ dependencies = [
]
[[package]]
+name = "ahash"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
name = "aho-corasick"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -38,6 +50,12 @@ dependencies = [
]
[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -716,6 +734,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
+name = "hashbrown"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -925,6 +953,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
[[package]]
+name = "lru"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1efa59af2ddfad1854ae27d75009d538d0998b4b2fd47083e743ac1a10e46c60"
+dependencies = [
+ "hashbrown",
+]
+
+[[package]]
name = "lru-cache"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1392,15 +1429,16 @@ dependencies = [
[[package]]
name = "ratatui"
-version = "0.23.0"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96ad"
+checksum = "0ebc917cfb527a566c37ecb94c7e3fd098353516fb4eb6bea17015ade0182425"
dependencies = [
"bitflags 2.4.1",
"cassowary",
"crossterm",
"indoc",
"itertools",
+ "lru",
"paste",
"strum",
"unicode-segmentation",
@@ -2289,6 +2327,26 @@ dependencies = [
]
[[package]]
+name = "zerocopy"
+version = "0.7.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "686b7e407015242119c33dab17b8f61ba6843534de936d94368856528eae4dcc"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "020f3dfe25dfc38dfea49ce62d5d45ecdd7f0d8a724fa63eb36b6eba4ec76806"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.38",
+]
+
+[[package]]
name = "zip"
version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/Cargo.toml b/Cargo.toml
index 345f7b3..feb17b8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -34,7 +34,7 @@ log = "0.4.20"
once_cell = "1.18.0"
pnet = "0.34.0"
pnet_macros_support = "0.34.0"
-ratatui = "0.23.0"
+ratatui = "0.24.0"
resolv-conf = "0.7.0"
simplelog = "0.12.1"
thiserror = "1.0.50"
diff --git a/src/display/components/header_details.rs b/src/display/components/header_details.rs
index 3f68984..373f09e 100644
--- a/src/display/components/header_details.rs
+++ b/src/display/components/header_details.rs
@@ -1,7 +1,6 @@
use std::time::{Duration, Instant};
use ratatui::{
- backend::Backend,
layout::{Alignment, Rect},
style::{Color, Modifier, Style},
terminal::Frame,
@@ -42,7 +41,7 @@ pub struct HeaderDetails<'a> {
}
impl<'a> HeaderDetails<'a> {
- pub fn render(&self, frame: &mut Frame<impl Backend>, rect: Rect) {
+ pub fn render(&self, frame: &mut Frame, rect: Rect) {
let bandwidth = self.bandwidth_string();
let color = if self.paused {
Color::Yellow
@@ -63,13 +62,7 @@ impl<'a> HeaderDetails<'a> {
self.render_bandwidth(frame, rect, &bandwidth, color);
}
- fn render_bandwidth(
- &self,
- frame: &mut Frame<impl Backend>,
- rect: Rect,
- bandwidth: &str,
- color: Color,
- ) {
+ fn render_bandwidth(&self, frame: &mut Frame, rect: Rect, bandwidth: &str, color: Color) {
let bandwidth_text = Span::styled(
bandwidth,
Style::default().fg(color).add_modifier(Modifier::BOLD),
@@ -95,13 +88,7 @@ impl<'a> HeaderDetails<'a> {
format!(" Total {t} (Up / Down): {up} / {down}{paused}")
}
- fn render_elapsed_time(
- &self,
- frame: &mut Frame<impl Backend>,
- rect: Rect,
- elapsed_time: &str,
- color: Color,
- ) {
+ fn render_elapsed_time(&self, frame: &mut Frame, rect: Rect, elapsed_time: &str, color: Color) {
let elapsed_time_text = Span::styled(
elapsed_time,
Style::default().fg(color).add_modifier(Modifier::BOLD),
diff --git a/src/display/components/help_text.rs b/src/display/components/help_text.rs
index de7aa37..a186249 100644
--- a/src/display/components/help_text.rs
+++ b/src/display/components/help_text.rs
@@ -1,5 +1,4 @@
use ratatui::{
- backend::Backend,
layout::{Alignment, Rect},
style::{Modifier, Style},
terminal::Frame,
@@ -22,7 +21,7 @@ const TEXT_WHEN_DNS_SHOWN: &str = " (DNS queries shown).";
const TEXT_TAB_TIP: &str = " Use <TAB> to rearrange tables.";
impl HelpText {
- pub fn render(&self, frame: &mut Frame<impl Backend>, rect: Rect) {
+ pub fn render(&self, frame: &mut Frame, rect: Rect) {
let pause_content = if self.paused {
TEXT_WHEN_PAUSED
} else {
diff --git a/src/display/components/layout.rs b/src/display/components/layout.rs
index 60b7f23..90cca0b 100644
--- a/src/display/components/layout.rs
+++ b/src/display/components/layout.rs
@@ -1,5 +1,4 @@
use ratatui::{
- backend::Backend,
layout::{Constraint, Direction, Rect},
terminal::Frame,
};
@@ -100,7 +99,7 @@ impl<'a> Layout<'a> {
}
}
- pub fn render(&self, frame: &mut Frame<impl Backend>, rect: Rect, ui_offset: usize) {
+ pub fn render(&self, frame: &mut Frame, rect: Rect, ui_offset: usize) {
let (top, app, bottom) = top_app_and_bottom_split(rect);
let layout_slots = self.build_layout(app);
for i in 0..layout_slots.len() {
diff --git a/src/display/components/table.rs b/src/display/components/table.rs
index ed97349..a80142c 100644
--- a/src/display/components/table.rs
+++ b/src/display/components/table.rs
@@ -3,7 +3,6 @@ use std::{collections::HashMap, fmt, iter::FromIterator, net::IpAddr, ops::Index
use derivative::Derivative;
use itertools::Itertools;
use ratatui::{
- backend::Backend,
layout::{Constraint, Rect},
style::{Color, Style},
terminal::Frame,
@@ -326,7 +325,7 @@ impl Table {
}
/// See [`Table`] for layout rules.
- pub fn render(&self, frame: &mut Frame<impl Backend>, rect: Rect) {
+ pub fn render(&self, frame: &mut Frame, rect: Rect) {
let (computed_layout, spacer_width) = {
// pick the largest possible layout, constrained by the available width
let &(_, layout) = self
diff --git a/src/display/raw_terminal_backend.rs b/src/display/raw_terminal_backend.rs
index fc08abc..4be38bb 100644
--- a/src/display/raw_terminal_backend.rs
+++ b/src/display/raw_terminal_backend.rs
@@ -10,7 +10,11 @@
use std::io;
-use ratatui::{backend::Backend, buffer::Cell, layout::Rect};
+use ratatui::{
+ backend::{Backend, WindowSize},
+ buffer::Cell,
+ layout::{Rect, Size},
+};
pub struct RawTerminalBackend {}
@@ -46,6 +50,13 @@ impl Backend for RawTerminalBackend {
Ok(Rect::new(0, 0, 0, 0))
}
+ fn window_size(&mut self) -> io::Result<WindowSize> {
+ Ok(WindowSize {
+ columns_rows: Size::default(),
+ pixels: Size::default(),
+ })
+ }
+
fn flush(&mut self) -> io::Result<()> {
Ok(())
}
diff --git a/src/tests/fakes/fake_output.rs b/src/tests/fakes/fake_output.rs
index ac6f3cd..7741cc2 100644
--- a/src/tests/fakes/fake_output.rs
+++ b/src/tests/fakes/fake_output.rs
@@ -4,7 +4,11 @@ use std::{
sync::{Arc, Mutex},
};
-use ratatui::{backend::Backend, buffer::Cell, layout::Rect};
+use ratatui::{
+ backend::{Backend, WindowSize},
+ buffer::Cell,
+ layout::{Rect, Size},
+};
#[derive(Hash, Debug, PartialEq)]
pub enum TerminalEvent {
@@ -109,6 +113,16 @@ impl Backend for TestBackend {
Ok(Rect::new(0, 0, *terminal_width, *terminal_height))
}
+ fn window_size(&mut self) -> io::Result<WindowSize> {
+ let width = *self.terminal_width.lock().unwrap();
+ let height = *self.terminal_height.lock().unwrap();
+
+ Ok(WindowSize {
+ columns_rows: Size { width, height },
+ pixels: Size::default(),
+ })
+ }
+
fn flush(&mut self) -> io::Result<()> {
self.events.lock().unwrap().push(TerminalEvent::Flush);
Ok(())