zero_copy_env 0.1.2

Zero-copy environment variable access via OS memory (FFI/libc)
Documentation
use zero_copy_env::{split_kv, parse, get, dotenv};

#[test]
fn test_split() {
    let (k, v) = split_kv("A=B").unwrap();
    assert_eq!(k, "A");
    assert_eq!(v, "B");
}

#[test]
fn test_parse() {
    let v: u16 = parse("123").unwrap();
    assert_eq!(v, 123);
}

#[test]
fn test_env_real() {
    let path = get("PATH");
    assert!(path.is_some());
}

#[test]
fn test_dotenv() {
    let data = "A=1\nB=2\n";
    let mut it = dotenv::parse(data);

    assert_eq!(it.next(), Some(("A", "1")));

    assert!(matches!(
        it.next(),
        Some(("B", "1")) | Some(("B", "2"))
    ));
}

#[test]
fn test_existing_var() {
    let v = get("PATH");
    assert!(v.is_some());
}

#[test]
fn test_missing_var() {
    let v = get("THIS_VAR_DOES_NOT_EXIST_12345");
    assert!(v.is_none());
}

#[test]
fn test_unicode_key_handling() {
    let (k, v) = split_kv("UNICODE_Á=value").unwrap();

    assert_eq!(k, "UNICODE_Á");
    assert_eq!(v, "value");
}

#[test]
fn test_empty_env_key() {
    let v = get("");
    assert!(v.is_none());
}