infoterm 0.1.1

ncurses-compatible terminfo parsing library
Documentation
impl_enum! {
    /// Boolean capabilities.
    #[derive(Copy, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
    #[repr(usize)]
    #[non_exhaustive]
    pub enum Boolean {
        /// `bw`: `cub1` wraps from column 0 to last column
        AutoLeftMargin => ("bw", "auto_left_margin"),
        /// `am`: Terminal has automatic margins
        AutoRightMargin => ("am", "auto_right_margin"),
        /// `xsb`: Beehive (F1 = Escape, F2 = Ctrl-C)
        NoEscCtlc => ("xsb", "no_esc_ctlc"),
        /// `xhp`: Standout not erased by overwriting (hp)
        CeolStandoutGlitch => ("xhp", "ceol_standout_glitch"),
        /// `xenl`: Newline ignored after 80 columns (Concept)
        EatNewlineGlitch => ("xenl", "eat_newline_glitch"),
        /// `eo`: Can erase overstrikes with a \<blank\>
        EraseOverstrike => ("eo", "erase_overstrike"),
        /// `gn`: Generic line type (e.g. dialup, switch)
        GenericType => ("gn", "generic_type"),
        /// `hc`: Hardcopy terminal
        HardCopy => ("hc", "hard_copy"),
        /// `km`: Has a meta key (shift, sets parity bit)
        HasMetaKey => ("km", "has_meta_key"),
        /// `hs`: Has extra "status line"
        HasStatusLine => ("hs", "has_status_line"),
        /// `in`: Insert mode distinguishes nulls
        InsertNullGlitch => ("in", "insert_null_glitch"),
        /// `da`: Display may be retained above the screen
        MemoryAbove => ("da", "memory_above"),
        /// `db`: Display may be retained below the screen
        MemoryBelow => ("db", "memory_below"),
        /// `mir`: Safe to move while in insert mode
        MoveInsertMode => ("mir", "move_insert_mode"),
        /// `msgr`: Safe to move in standout modes
        MoveStandoutMode => ("msgr", "move_standout_mode"),
        /// `os`: Terminal overstrikes on hard-copy terminal
        OverStrike => ("os", "over_strike"),
        /// `eslok`: Escape can be used on the status line
        StatusLineEscOk => ("eslok", "status_line_esc_ok"),
        /// `xt`: Destructive tabs, magic `smso` char (t1061)
        DestTabsMagicSmso => ("xt", "dest_tabs_magic_smso"),
        /// `hz`: Hazeltine; can't print tilde (~)
        TildeGlitch => ("hz", "tilde_glitch"),
        /// `ul`: Underline character overstrikes
        TransparentUnderline => ("ul", "transparent_underline"),
        /// `xon`: Terminal uses xon/xoff handshaking
        XonXoff => ("xon", "xon_xoff"),
        /// `nxon`: Padding won' work, xon/xoff required
        NeedsXonXoff => ("nxon", "needs_xon_xoff"),
        /// `mc5i`: Printer won't echo on screen
        PrtrSilent => ("mc5i", "prtr_silent"),
        /// `chts`: Cursor is hard to see
        HardCursor => ("chts", "hard_cursor"),
        /// `nrrmc`: `smcup` does not reverse `rmcup`
        NonRevRmcup => ("nrrmc", "non_rev_rmcup"),
        /// `npc`: Pad character doesn' exist
        NoPadChar => ("npc", "no_pad_char"),
        /// `ndscr`: Scrolling region is non-destructive
        NonDestScrollRegion => ("ndscr", "non_dest_scroll_region"),
        /// `ccc`: Terminal can redefine existing color
        CanChange => ("ccc", "can_change"),
        /// `bce`: Screen erased with background color
        BackColorErase => ("bce", "back_color_erase"),
        /// `hls`: Terminal uses only HLS color notation (Tektronix)
        HueLightnessSaturation => ("hls", "hue_lightness_saturation"),
        /// `xhpa`: Only positive motion for `hpa`/`mhpa` caps
        ColAddrGlitch => ("xhpa", "col_addr_glitch"),
        /// `crxm`: Using `cr` turns off micro mode
        CrCancelsMicroMode => ("crxm", "cr_cancels_micro_mode"),
        /// `daisy`: Printer needs operator to change character set
        HasPrintWheel => ("daisy", "has_print_wheel"),
        /// `xvpa`: Only positive motion for `vpa`/`mvpa` caps
        RowAddrGlitch => ("xvpa", "row_addr_glitch"),
        /// `sam`: Printing in last column causes `cr`
        SemiAutoRightMargin => ("sam", "semi_auto_right_margin"),
        /// `cpix`: Changing character pitch changes resolution
        CpiChangesRes => ("cpix", "cpi_changes_res"),
        /// `lpix`: Changing line pitch changes resolution
        LpiChangesRes => ("lpix", "lpi_changes_res"),
    }
}