use std::{
io, panic,
time::{Duration, Instant},
};
use crossterm::event;
use ratatui::Terminal;
use mant_ui::{App, ReaderOptions, ReaderServices};
#[cfg(unix)]
use super::signals::TerminationSignals;
mod backend;
mod session;
const TERMINATION_POLL_INTERVAL: Duration = Duration::from_millis(50);
#[cfg(not(unix))]
struct TerminationSignals;
#[cfg(not(unix))]
#[allow(clippy::unnecessary_wraps, clippy::unused_self)]
impl TerminationSignals {
fn install() -> io::Result<Self> {
Ok(Self)
}
const fn take(&self) -> Option<i32> {
None
}
fn terminate(self, _signal: i32) -> io::Result<()> {
Ok(())
}
}
pub(crate) fn run_reader(
options: ReaderOptions,
services: &mut ReaderServices<'_>,
) -> io::Result<()> {
session::run(options, services)
}
#[cfg(all(test, unix))]
mod tests;