rm-lisa 0.3.2

A logging library for rem-verse, with support for inputs, tasks, and more.
Documentation
//! OS Specific APIs for STDIN input all live under this module.
//!
//! These are not custom terminal handling commands, or things like that.
//! Instead this is for things like reading from standard in without blocking
//! for input.
//!
//! The following OS specific APIs should be implemented:
//!
//! - [`crate::input::stdin::os_specific_apis::CACHED_MODE_TYPE`]
//!   - a type used to save the console mode between enable/disable raw mode.
//! - [`crate::input::stdin::os_specific_apis::default_cached_mode`]
//!   - the default value to set for cached modes.
//! - [`crate::input::stdin::os_specific_apis::enable_raw_mode`]
//!   - enable terminal 'raw mode', echo should be disabled, ctrl-c/etc. should
//!     not trigger signals, and instead be passed directly to the process.
//! - [`crate::input::stdin::os_specific_apis::disable_raw_mode`]
//!   - disable terminal 'raw mode', this should leave the terminal back in
//!     it's raw state.
//! - [`crate::input::stdin::os_specific_apis::raise_sigint`]
//!   - raise a SIGINT signal to the current process.
//! - [`crate::input::stdin::os_specific_apis::os_pre_reqs`]
//!   - perform any pre-requisites necessary to successfully load the stdin input provider.
//! - [`crate::input::stdin::os_specific_apis::read_non_blocking_stdin`]
//!   - Read without blocking from STDIN.

#[cfg(any(
	target_os = "linux",
	target_os = "android",
	target_os = "macos",
	target_os = "ios",
	target_os = "freebsd",
	target_os = "openbsd",
	target_os = "netbsd",
	target_os = "dragonfly",
	target_os = "solaris",
	target_os = "illumos",
	target_os = "aix",
	target_os = "haiku",
))]
mod libc;
#[cfg(target_os = "windows")]
mod windows;

#[cfg(any(
	target_os = "linux",
	target_os = "android",
	target_os = "macos",
	target_os = "ios",
	target_os = "freebsd",
	target_os = "openbsd",
	target_os = "netbsd",
	target_os = "dragonfly",
	target_os = "solaris",
	target_os = "illumos",
	target_os = "aix",
	target_os = "haiku",
))]
pub(super) use libc::{
	CachedModeType, default_cached_mode, disable_raw_mode, enable_raw_mode, os_pre_reqs,
	raise_sigint, read_non_blocking_stdin,
};

#[cfg(target_os = "windows")]
pub(super) use windows::{
	CachedModeType, default_cached_mode, disable_raw_mode, enable_raw_mode, os_pre_reqs,
	raise_sigint, read_non_blocking_stdin,
};