Crate unix_path[][src]

Unix path manipulation.

This crate provides two types, PathBuf and Path (akin to String and str), for working with paths abstractly. These types are thin wrappers around UnixString and UnixStr respectively, meaning that they work directly on strings independently from the local platform’s path syntax.

Paths can be parsed into Components by iterating over the structure returned by the components method on Path. Components roughly correspond to the substrings between path separators (/). You can reconstruct an equivalent path from components with the push method on PathBuf; note that the paths may differ syntactically by the normalization described in the documentation for the components method.

Simple usage

Path manipulation includes both parsing components from slices and building new owned paths.

To parse a path, you can create a Path slice from a str slice and start asking questions:

use unix_path::Path;
use unix_str::UnixStr;

let path = Path::new("/tmp/foo/bar.txt");

let parent = path.parent();
assert_eq!(parent, Some(Path::new("/tmp/foo")));

let file_stem = path.file_stem();
assert_eq!(file_stem, Some(UnixStr::new("bar")));

let extension = path.extension();
assert_eq!(extension, Some(UnixStr::new("txt")));

To build or modify paths, use PathBuf:

use unix_path::PathBuf;

// This way works...
let mut path = PathBuf::from("/");

path.push("feel");
path.push("the");

path.set_extension("force");

// ... but push is best used if you don't know everything up
// front. If you do, this way is better:
let path: PathBuf = ["/", "feel", "the.force"].iter().collect();

Structs

Ancestors

An iterator over Path and its ancestors.

Components

An iterator over the Components of a Path.

Display
Iter

An iterator over the Components of a Path, as UnixStr slices.

Path

A slice of a path (akin to str).

PathBuf

An owned, mutable path (akin to String).

StripPrefixError

An error returned from Path::strip_prefix if the prefix was not found.

Enums

Component

A single component of a path.

Constants

MAIN_SEPARATOR

The separator of path components for Unix, /.

Functions

is_separator

Determines whether the character is the permitted path separator for Unix, /.