fc-gpui-macos 0.13.0

macOS platform and Metal renderer backend for fc-gpui
Documentation
use crate::OsInfo;
use objc2_foundation::{NSLocale, NSProcessInfo};
use std::ffi::CStr;

pub fn get_os_info() -> OsInfo {
    let process_info = NSProcessInfo::processInfo();
    let version = process_info.operatingSystemVersionString().to_string();
    let locale = NSLocale::currentLocale().localeIdentifier().to_string();

    let mut hostname_buf = [0u8; 256];
    let hostname = if unsafe {
        libc::gethostname(
            hostname_buf.as_mut_ptr() as *mut libc::c_char,
            hostname_buf.len(),
        )
    } == 0
    {
        hostname_buf[hostname_buf.len() - 1] = 0;
        unsafe { CStr::from_ptr(hostname_buf.as_ptr() as *const libc::c_char) }
            .to_string_lossy()
            .to_string()
    } else {
        String::new()
    };

    OsInfo {
        name: "macOS".into(),
        version: version.into(),
        arch: std::env::consts::ARCH.into(),
        locale: locale.into(),
        hostname: hostname.into(),
    }
}