os-ver 0.2.1

Detect version number of operating system (Windows, macOS, iOS, Linux)
Documentation
use std::{ffi::CStr, mem};

use libc::utsname;

use crate::Version;

pub(crate) fn get_version() -> Version {
    let ver_str = unsafe {
        let mut buf: utsname = mem::zeroed();
        libc::uname(&mut buf);
        CStr::from_ptr(buf.release.as_ptr())
    };
    let ver_str = ver_str.to_str();
    let ver_str = match ver_str {
        Ok(s) => s,
        Err(_) => return Version::default(),
    };
    let ver_parts: Vec<&str> = ver_str.split('-').collect();
    let ver_str = match ver_parts.get(0) {
        Some(s) => s,
        None => return Version::default(),
    };
    let mut ver_numbers = ver_str.split('.').map(|s| s.parse().unwrap_or(0));
    let major = ver_numbers.next().unwrap_or(0);
    let minor = ver_numbers.next().unwrap_or(0);
    let patch = ver_numbers.next().unwrap_or(0);
    let build = ver_numbers.next().unwrap_or(0);
    Version::new(major, minor, patch, build)
}