bare-types 0.3.0

A zero-cost foundation for type-safe domain modeling in Rust. Implements the 'Parse, don't validate' philosophy to eliminate primitive obsession and ensure data integrity at the system boundary.
Documentation
//! Example demonstrating the sys module types
#![allow(unused_crate_dependencies)]

use bare_types::sys::{Arch, KernelVersion, OsType, OsVersion};

fn main() {
    println!("=== bare-types sys module demo ===\n");

    // Architecture
    let arch = Arch::current();
    println!("Current architecture: {}", arch);
    println!("  - 64-bit: {}", arch.is_64_bit());
    println!("  - 32-bit: {}", arch.is_32_bit());
    println!("  - Pointer width: {} bits\n", arch.pointer_width());

    // Operating System
    let os = OsType::current();
    println!("Current operating system: {}", os);
    println!("  - Unix-like: {}", os.is_unix());
    println!("  - BSD: {}", os.is_bsd());
    println!("  - Desktop: {}\n", os.is_desktop());

    // OS Version
    let os_ver: OsVersion = "22.04".parse().expect("valid OS version");
    println!("OS Version example: {}", os_ver);
    println!("  - Major: {}", os_ver.major());
    println!("  - Minor: {}", os_ver.minor());
    println!("  - Patch: {:?}\n", os_ver.patch());

    // Kernel Version
    let kernel: KernelVersion = "6.8.0-40-generic".parse().expect("valid kernel version");
    println!("Kernel Version example: {}", kernel);
    println!("  - Major: {}", kernel.major());
    println!("  - Minor: {}", kernel.minor());
    println!("  - Patch: {}", kernel.patch());
    println!("  - Release: {:?}", kernel.release());
    println!("  - Is stable: {}", kernel.is_stable());
    println!("  - Is development: {}\n", kernel.is_development());

    println!("All types are:");
    println!("  - Compile-time constants for current() methods");
    println!("  - Zero-cost abstractions");
    println!("  - Fully no_std compatible");
    println!("  - Type-safe with validation at construction");
}