1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
//! Information about the jemalloc compile-time configuration use std::io; use {name_to_mib, get_str}; /// A type providing access to the embedded configure-time-specified run-time options config. /// /// The string will be empty unless `--with-malloc-conf` was specified during build configuration. /// /// # Examples /// /// ``` /// use jemalloc_ctl::config::MallocConf; /// /// let malloc_conf = MallocConf::new().unwrap(); /// /// println!("default malloc conf: {}", malloc_conf.get().unwrap()); /// ``` #[derive(Copy, Clone)] pub struct MallocConf([usize; 2]); impl MallocConf { /// Returns a new `MallocConf`. pub fn new() -> io::Result<MallocConf> { unsafe { let mut mib = [0; 2]; name_to_mib("config.malloc_conf\0", &mut mib)?; Ok(MallocConf(mib)) } } /// Returns the embedded configure-time-specified run-time options config. pub fn get(&self) -> io::Result<&'static str> { unsafe { get_str(&self.0) } } }