Tunnel tui functions are now implemented on Tunnel

This commit is contained in:
Dreaded_X 2025-04-16 02:14:57 +02:00
parent 3ada40d4ae
commit 693df6817a
Signed by: Dreaded_X
GPG Key ID: FA5F485356B0D2D4
2 changed files with 39 additions and 37 deletions

View File

@ -12,7 +12,7 @@ use ratatui::{
};
use unicode_width::UnicodeWidthStr;
use crate::tunnel::{self, Tunnel};
use crate::tunnel::Tunnel;
#[derive(Default)]
pub struct Renderer {
@ -28,7 +28,7 @@ impl Renderer {
// NOTE: This needs to be a separate function as the render functions can not be async
pub async fn update(&mut self, tunnels: &[Tunnel], index: Option<usize>) {
self.table_rows = futures::stream::iter(tunnels)
.then(tunnel::tui::to_row)
.then(Tunnel::to_row)
.collect::<Vec<_>>()
.await;
@ -144,7 +144,7 @@ impl Renderer {
}
fn compute_widths(&mut self) -> Vec<Constraint> {
let table_header = tunnel::tui::header();
let table_header = Tunnel::header();
std::iter::once(&table_header)
.chain(&self.table_rows)
.map(|row| row.iter().map(|cell| cell.width() as u16))
@ -173,7 +173,7 @@ impl Renderer {
.height(1)
});
let header = tunnel::tui::header()
let header = Tunnel::header()
.iter()
.cloned()
.map(Cell::from)

View File

@ -5,6 +5,7 @@ use ratatui::text::Span;
use super::{Tunnel, TunnelAccess};
impl Tunnel {
pub fn header() -> Vec<Span<'static>> {
vec![
"Name".into(),
@ -39,3 +40,4 @@ pub async fn to_row(tunnel: &Tunnel) -> Vec<Span<'static>> {
tunnel.inner.stats.tx().to_string().into(),
]
}
}