|
Storage.Hashed.AnchoredPath |
|
|
|
|
Description |
This module implements relative paths within a Tree. All paths are
anchored at a certain root (this is usually the Tree root). They are
represented by a list of Names (these are just strict bytestrings).
|
|
Synopsis |
|
|
|
Documentation |
|
|
|
|
|
This is a type of sane file paths. These are always canonic in the sense
that there are no stray slashes, no .. components and similar. They are
usually used to refer to a location within a Tree, but a relative filesystem
path works just as well. These are either constructed from individual name
components (using appendPath, catPaths and makeName), or converted
from a FilePath (floatPath -- but take care when doing that) or .
| Constructors | |
|
|
|
|
|
Append an element to the end of a path.
|
|
|
Take a root directory and an anchored path and produce a full
FilePath. Moreover, you can use anchorPath "" to get a relative
FilePath.
|
|
|
Check whether a path is a prefix of another path.
|
|
|
Get parent (path) of a given path. foobarbaz -> foo/bar
|
|
|
List all parents of a given path. foobarbaz -> [foo, foo/bar]
|
|
|
Catenate two paths together. Not very safe, but sometimes useful
(e.g. when you are representing paths relative to a different point than a
Tree root).
|
|
|
|
|
|
Unsafe functions.
|
|
|
Unsafe. Only ever use on bytestrings that came from flatten on a
pre-existing AnchoredPath.
|
|
|
Take a relative FilePath and turn it into an AnchoredPath. The operation
is (relatively) unsafe. Basically, by using floatPath, you are testifying
that the argument is a path relative to some common root -- i.e. the root of
the associated Tree object. Also, there are certain invariants about
AnchoredPath that this function tries hard to preserve, but probably cannot
guarantee (i.e. this is a best-effort thing). You should sanitize any
FilePaths before you declare them good by converting into AnchoredPath
(using this function).
|
|
Produced by Haddock version 2.6.0 |