37 lines
986 B
Rust
37 lines
986 B
Rust
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));
|
|
}
|
|
}
|