mod methods;
pub(crate) mod helpers;
pub(crate) mod reimplemented;
#[cfg(test)]
mod test;
pub type Nc = crate::c_api::ffi::notcurses;
pub type NcOptions = crate::c_api::ffi::notcurses_options;
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct NcFlag(pub c_api::NcFlag_u64);
impl NcFlag {
pub const None: Self = Self(0);
pub const DrainInput: Self = Self(c_api::NCOPTION_DRAIN_INPUT);
pub const InhibitSetLocale: Self = Self(c_api::NCOPTION_INHIBIT_SETLOCALE);
pub const NoAlternateScreen: Self = Self(c_api::NCOPTION_NO_ALTERNATE_SCREEN);
pub const NoClearBitmaps: Self = Self(c_api::NCOPTION_NO_CLEAR_BITMAPS);
pub const NoFontChanges: Self = Self(c_api::NCOPTION_NO_FONT_CHANGES);
pub const NoQuitSigHandlers: Self = Self(c_api::NCOPTION_NO_QUIT_SIGHANDLERS);
pub const NoWinchSigHandler: Self = Self(c_api::NCOPTION_NO_WINCH_SIGHANDLER);
pub const PreserveCursor: Self = Self(c_api::NCOPTION_PRESERVE_CURSOR);
pub const Scrolling: Self = Self(c_api::NCOPTION_SCROLLING);
pub const CliMode: Self = Self(
c_api::NCOPTION_NO_ALTERNATE_SCREEN
| c_api::NCOPTION_NO_CLEAR_BITMAPS
| c_api::NCOPTION_PRESERVE_CURSOR
| c_api::NCOPTION_SCROLLING,
);
pub const SuppressBanners: Self = Self(c_api::NCOPTION_SUPPRESS_BANNERS);
}
mod std_impls {
use super::{c_api::NcFlag_u64, NcFlag};
impl Default for NcFlag {
fn default() -> Self {
Self::None
}
}
crate::from_primitive![NcFlag, NcFlag_u64];
crate::unit_impl_from![NcFlag, NcFlag_u64];
crate::unit_impl_ops![bitwise; NcFlag, NcFlag_u64];
crate::unit_impl_fmt![bases+display; NcFlag];
}
pub(crate) mod c_api {
use crate::c_api::ffi;
pub type NcFlag_u64 = u64;
pub const NCOPTION_DRAIN_INPUT: NcFlag_u64 = ffi::NCOPTION_DRAIN_INPUT as NcFlag_u64;
pub const NCOPTION_INHIBIT_SETLOCALE: NcFlag_u64 =
ffi::NCOPTION_INHIBIT_SETLOCALE as NcFlag_u64;
pub const NCOPTION_NO_ALTERNATE_SCREEN: NcFlag_u64 =
ffi::NCOPTION_NO_ALTERNATE_SCREEN as NcFlag_u64;
pub const NCOPTION_NO_CLEAR_BITMAPS: NcFlag_u64 = ffi::NCOPTION_NO_CLEAR_BITMAPS as NcFlag_u64;
pub const NCOPTION_NO_FONT_CHANGES: NcFlag_u64 = ffi::NCOPTION_NO_FONT_CHANGES as NcFlag_u64;
pub const NCOPTION_NO_QUIT_SIGHANDLERS: NcFlag_u64 =
ffi::NCOPTION_NO_QUIT_SIGHANDLERS as NcFlag_u64;
pub const NCOPTION_NO_WINCH_SIGHANDLER: NcFlag_u64 =
ffi::NCOPTION_NO_WINCH_SIGHANDLER as NcFlag_u64;
pub const NCOPTION_PRESERVE_CURSOR: NcFlag_u64 = ffi::NCOPTION_PRESERVE_CURSOR as NcFlag_u64;
pub const NCOPTION_SCROLLING: NcFlag_u64 = ffi::NCOPTION_SCROLLING as NcFlag_u64;
pub const NCOPTION_CLI_MODE: NcFlag_u64 = NCOPTION_NO_ALTERNATE_SCREEN
| NCOPTION_NO_CLEAR_BITMAPS
| NCOPTION_PRESERVE_CURSOR
| NCOPTION_SCROLLING;
pub const NCOPTION_SUPPRESS_BANNERS: NcFlag_u64 = ffi::NCOPTION_SUPPRESS_BANNERS as NcFlag_u64;
}