strest 0.1.10

Blazing-fast async HTTP load tester in Rust - lock-free design, real-time stats, distributed runs, and optional chart exports for high-load API testing.
Documentation
use ratatui::{
    layout::{Constraint, Direction, Layout},
    prelude::{Backend, Frame},
    widgets::Block,
};

use crate::ui::model::UiRenderData;

use super::charts::render_charts;
use super::summary::render_summary;
use super::theme::{CHART_MIN_HEIGHT, SUMMARY_HEIGHT, UI_MARGIN, app_background_style};

pub fn draw_frame<B: Backend>(f: &mut Frame<'_, B>, data: &UiRenderData) {
    let size = f.size();
    f.render_widget(
        Block::default().style(app_background_style(data.no_color)),
        size,
    );

    let chunks = Layout::default()
        .direction(Direction::Vertical)
        .margin(UI_MARGIN)
        .constraints([
            Constraint::Length(SUMMARY_HEIGHT),
            Constraint::Min(CHART_MIN_HEIGHT),
        ])
        .split(size);

    let (summary_chunk, chart_chunk) = match chunks.as_ref() {
        [a, b] => (a, b),
        _ => return,
    };

    render_summary(f, data, *summary_chunk);
    render_charts(f, data, *chart_chunk);
}