libnotcurses_sys/widgets/tree/methods/
mod.rs

1//! `NcTree*` methods and associated functions.
2
3mod options;
4mod tree;
5
6pub use options::*;
7pub use tree::*;
8
9#[cfg(not(feature = "std"))]
10use alloc::ffi::CString;
11
12#[cfg(feature = "std")]
13use std::ffi::CString;
14
15use core::{ffi::c_void, ptr::null_mut};
16
17use super::NcTreeItem;
18
19/// # `NcTreeItem` constructor
20impl NcTreeItem {
21    /// Creates an [`NcTreeItem`].
22    pub fn new(curry: &str, subs: Option<&mut [NcTreeItem]>, subcount: usize) -> Self {
23        if let Some(subs) = subs {
24            Self {
25                curry: CString::new(curry).unwrap().into_raw() as *mut _ as *mut c_void,
26                subs: subs.as_mut_ptr(),
27                subcount: subcount as u32,
28            }
29        } else {
30            Self {
31                curry: CString::new(curry).unwrap().into_raw() as *mut _ as *mut c_void,
32                subs: null_mut(),
33                subcount: subcount as u32,
34            }
35        }
36    }
37}