use std::net::Ipv4Addr; use std::time::SystemTime; use ratatui::buffer::Buffer; use ratatui::layout::Rect; use ratatui::prelude::{StatefulWidget, Style}; use ratatui::style::Color; use ratatui::widgets::Widget; #[derive(Clone, Debug)] pub struct TargetState { pub name: String, pub target: Ipv4Addr, pub alive: bool, pub last_rtt: u32, pub last_alive_change: SystemTime } impl Default for TargetState { fn default() -> Self { TargetState { name: "Unknown Host".to_string(), target: Ipv4Addr::new(127, 0, 0, 1), alive: false, last_rtt: 0, last_alive_change: SystemTime::now() } } } struct TargetStateWidget; impl StatefulWidget for TargetStateWidget { type State = TargetStateWidget; fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { buf.set_string(area.left(),area.top(),"This is the string set ", Style::default().fg(Color::Red)); } }