netscanner 0.6.43

Network Scanner
use ratatui::{prelude::*, widgets::*};

const VERTICAL_TOP_PERCENT: u16 = 40;
const VERTICAL_BOTTOM_PERCENT: u16 = 60;

const HORIZONTAL_SPLIT: u16 = 50;

const VERTICAL_CONSTRAINTS: [Constraint; 3] = [
    Constraint::Percentage(VERTICAL_TOP_PERCENT),
    Constraint::Length(3),
    Constraint::Percentage(VERTICAL_BOTTOM_PERCENT),
];

pub const HORIZONTAL_CONSTRAINTS: [Constraint; 2] = [
    Constraint::Percentage(HORIZONTAL_SPLIT),
    Constraint::Percentage(HORIZONTAL_SPLIT),
];

pub struct VerticalLayoutRects {
    pub top: Rect,
    pub tabs: Rect,
    pub bottom: Rect,
}

pub struct HorizontalLayoutRects {
    pub left: Rect,
    pub right: Rect,
}

pub fn get_vertical_layout(area: Rect) -> VerticalLayoutRects {
    let layout = Layout::vertical(VERTICAL_CONSTRAINTS).split(area);
    VerticalLayoutRects {
        top: layout[0],
        tabs: layout[1],
        bottom: layout[2],
    }
}

pub fn get_horizontal_layout(area: Rect) -> HorizontalLayoutRects {
    let layout = Layout::horizontal(HORIZONTAL_CONSTRAINTS).split(area);
    HorizontalLayoutRects {
        left: layout[0],
        right: layout[1],
    }
}