iced-pancurses 0.1.2

Toy renderer for iced based on pancurses
Documentation
use crate::primitive::Primitive;
use crate::PancursesRenderer;

use iced_native::widget::slider;
use iced_native::{Point, Rectangle};

use std::ops::RangeInclusive;

impl slider::Renderer for PancursesRenderer {
    fn height(&self) -> u32 {
        1
    }

    fn draw(
        &mut self,
        bounds: Rectangle,
        _cursor_position: Point,
        range: RangeInclusive<f32>,
        value: f32,
        _is_dragging: bool,
    ) -> Primitive {
        let (range_start, range_end) = range.into_inner();
        let marker_offset =
            bounds.width * ((value - range_start) / (range_end - range_start).max(1.0));

        Primitive::Group(vec![
            Primitive::BoxDisplay(bounds),
            Primitive::Char(bounds.x as i32 + marker_offset as i32, bounds.y as i32, 'x'),
        ])
    }
}