termint 0.8.1

Library for colored printing and Terminal User Interfaces
Documentation
use std::time::Duration;

use crate::{prelude::Vec2, term::backend::Backend};

#[derive(Debug, Clone)]
pub struct TestBackend {
    size: Vec2,
}

impl TestBackend {
    pub fn new(size: impl Into<Vec2>) -> Self {
        Self { size: size.into() }
    }
}

impl Default for TestBackend {
    fn default() -> Self {
        Self {
            size: Vec2::new(80, 24),
        }
    }
}

impl Backend for TestBackend {
    fn read_event(
        &mut self,
        _timeout: Duration,
    ) -> Result<Option<super::Event>, crate::Error> {
        Ok(None)
    }

    fn enable_raw_mode() -> Result<(), crate::Error> {
        Ok(())
    }

    fn disable_raw_mode() -> Result<(), crate::Error> {
        Ok(())
    }

    fn is_raw_mode_enabled() -> bool {
        false
    }

    fn get_size(&self) -> Result<(usize, usize), crate::Error> {
        Ok((self.size.x, self.size.y))
    }
}