libnotcurses-sys 3.7.1

Low-level Rust bindings for the notcurses C library.
Documentation
//! `NcCapabilities`

use crate::Nc;

/// Capabilities, derived from terminfo, environment variables, and queries.
pub type NcCapabilities = crate::c_api::ffi::nccapabilities;

impl NcCapabilities {
    ///
    pub fn from_nc(nc: &mut Nc) -> Self {
        nc.capabilities()
    }
}

pub(crate) mod reimplemented {
    use crate::{NcCapabilities, NcPalette};
    use core::mem::size_of;

    /// Can we set the "hardware" palette?
    ///
    /// Requires the "ccc" terminfo capability, and that the number of colors
    /// supported is at least the size of our `NcPalette` structure.
    #[inline]
    pub fn nccapability_canchangecolor(caps: &NcCapabilities) -> bool {
        if !caps.can_change_colors {
            return false;
        }
        // CHECK this does the same as:
        // if(caps.colors < sizeof(p->chans) / sizeof(*p->chans)){
        //
        if (caps.colors as usize) < size_of::<NcPalette>() / size_of::<u32>() {
            return false;
        }
        true
    }
}