komichi 2.2.0

Application tools for working with file-system paths
Documentation
use camino::{Utf8Path, Utf8PathBuf};
use komichi::utf8_path_buf;
use std::ffi::{OsStr, OsString};
use std::path::{Path, PathBuf};

#[test]
fn utf8_path_buf_from_str() {
    let input = "/a/b/c";
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&input);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_from_string() {
    let input = "/a/b/c".to_string();
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&input);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_from_osstr() {
    let path = "/a/b/c";
    let input = OsStr::new(path);
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&path);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_from_osstring() {
    let path = "/a/b/c";
    let input = OsString::from(path);
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&path);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_from_path() {
    let path = "/a/b/c";
    let input = Path::new(path);
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&path);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_from_pathbuf() {
    let path = "/a/b/c";
    let input = PathBuf::from(path);
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&path);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_from_utf8path() {
    let path = "/a/b/c";
    let input = Utf8Path::new(path);
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&path);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_from_utf8pathbuf() {
    let path = "/a/b/c";
    let input = Utf8PathBuf::from(path);
    let result = utf8_path_buf(&input).unwrap();
    let expect = Utf8PathBuf::from(&path);
    assert_eq!(expect, result);
}

#[test]
fn utf8_path_buf_invalid_bytes() {
    let input = unsafe { OsStr::from_encoded_bytes_unchecked(b"\xFF\xFF\xFF") };
    let result = utf8_path_buf(&input);
    assert!(result.is_err());
}