#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(dead_code)]
use std::ffi::{CStr, CString};
use std::os::raw::c_char;
extern "C" {
pub fn __system_property_get(
__name: *const ::std::os::raw::c_char,
__value: *mut ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
pub fn to_string_safe(param: *mut c_char) -> String {
unsafe { CStr::from_ptr(param).to_string_lossy().into_owned() }
}
pub fn getprop<T>(name: T) -> Option<String>
where
T: ToString,
{
let name = name.to_string();
if !name.is_ascii() {
return None;
}
let __name: *const c_char = CString::new(name).unwrap().into_raw();
let mut __value: *mut c_char = CString::new("").unwrap().into_raw();
let ret = unsafe { __system_property_get(__name, __value) };
if ret == -1 {
None
} else {
Some(to_string_safe(__value))
}
}