unixstring 0.2.7

An FFI-friendly null-terminated byte string
Documentation
use unixstring::{Result, UnixString};

#[test]
pub fn starts_with() -> Result<()> {
    let mut unix_string = UnixString::new();
    unix_string.push("/home/")?;
    unix_string.push("user")?;

    assert!(unix_string.starts_with("/home"));
    assert!(unix_string.starts_with("/home/user"));
    assert!(!unix_string.starts_with("/home/user/"));
    assert!(!unix_string.starts_with("/home/other-user"));

    Ok(())
}

#[test]
pub fn starts_with_boundaries() -> Result<()> {
    let mut unix_string = UnixString::new();
    unix_string.push("lorem ipsum")?;

    assert!(unix_string.starts_with("lorem"));
    assert!(unix_string.starts_with("lorem ipsum"));

    assert!(!unix_string.starts_with("lorem ipsun"));
    assert!(!unix_string.starts_with("lorem ipsum "));
    assert!(!unix_string.starts_with("lorem ipsumm"));

    Ok(())
}

#[test]
pub fn starts_with_empty() -> Result<()> {
    let mut unix_string = UnixString::new();
    unix_string.push("/home/")?;

    assert!(unix_string.starts_with(""));

    Ok(())
}