Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Path
- data From
- data PathSegment
- data FilePath a b
- data FilePathParseError
- data WeakFilePath a
- filePathParseError :: (String -> NonEmpty String -> a) -> FilePathParseError -> a
- weakFilePath :: (FilePath Root a -> b) -> (FilePath Relative a -> b) -> WeakFilePath a -> b
- rootFromWeak :: WeakFilePath a -> Maybe (FilePath Root a)
- relativeFromWeak :: WeakFilePath a -> Maybe (FilePath Relative a)
- segString :: PathSegment -> String
- mkPathSegment :: String -> Maybe PathSegment
- (</>) :: FilePath a Directory -> FilePath Relative b -> FilePath a b
- rootPath :: FilePath Root Directory
- relativePath :: FilePath Relative Directory
- parseDirectory :: String -> Either FilePathParseError (WeakFilePath Directory)
- parseFilePath :: String -> Either FilePathParseError (WeakFilePath File)
- mkDirPath :: String -> Maybe (FilePath Relative Directory)
- mkDirPathSeg :: PathSegment -> FilePath Relative Directory
- mkFilePath :: String -> Maybe (FilePath Relative File)
- mkFilePathSeg :: PathSegment -> FilePath Relative File
- dirname :: FilePath a File -> FilePath a Directory
- basename :: FilePath a File -> String
- basenameSeg :: FilePath a File -> PathSegment
- showp :: FilePath a b -> String
- segQ :: QuasiQuoter
- dirpathQ :: QuasiQuoter
- filepathQ :: QuasiQuoter
Types
data PathSegment Source
A PathSegment is any single element of a path...i.e. the stuff between two '/' characters. Valid path segments cannot contain '/' or control characters. PathSegments are also semigroups to allow concatenating with prefixes/suffixes.
data WeakFilePath a Source
For cases where you dont know during compile time what kind of path you will get, for instance when you are parsing a path from the command line
Eq (WeakFilePath a) | |
Show (WeakFilePath a) |
Functions
:: (String -> NonEmpty String -> a) | A function to handle the case where the some path segments contained invalid characters |
-> FilePathParseError | |
-> a |
:: (FilePath Root a -> b) | The handler for when a Root filepath was found |
-> (FilePath Relative a -> b) | The handler for when a Relative filepath was found |
-> WeakFilePath a | |
-> b |
rootFromWeak :: WeakFilePath a -> Maybe (FilePath Root a) Source
relativeFromWeak :: WeakFilePath a -> Maybe (FilePath Relative a) Source
segString :: PathSegment -> String Source
Every PathSegment
is a valid string
mkPathSegment :: String -> Maybe PathSegment Source
Smart constructor for valid PathSegments. Valid path segments cannot contain front slashes or control characters. This function performs all the checks up front.
- Is the string non-empty?
- Does the string contain forward slashes or control characters?
parseDirectory :: String -> Either FilePathParseError (WeakFilePath Directory) Source
Takes in a string that is intended to represent a relative path or a root path down the filesystem tree
splits on /
parseFilePath :: String -> Either FilePathParseError (WeakFilePath File) Source
Takes in a string that is intended to represent a relative path or a root path down the filesystem tree
splits on /
mkDirPath :: String -> Maybe (FilePath Relative Directory) Source
Deprecated: Please use `fmap mkDirPathSeg . mkPathSegment` instead
Smart constructor for directories. Valid directories must be valid PathSegments and also cannot be empty strings.
mkDirPathSeg :: PathSegment -> FilePath Relative Directory Source
This function basically defines what the PathSegment
type is semantically.
It is string like thing which you can safely create a path from.
See mkPathSegment
, mkFilePathSeg
mkFilePath :: String -> Maybe (FilePath Relative File) Source
Deprecated: Please use `fmap mkFilePathSeg . mkPathSegment` instead
Smart constructor for files. Valid files must be valid PathSegments and also cannot be empty strings.
basenameSeg :: FilePath a File -> PathSegment Source