foundation-0.0.30: Alternative prelude with batteries and no dependencies
LicenseBSD-style
Maintainerfoundation
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Foundation.VFS.FilePath

Description

# Opaque implementation for FilePath

The underlying type of a FilePath is a ByteArray. It is indeed like this because for some systems (Unix systems) a FilePath is a null terminated array of bytes.

# FilePath and FileName for type checking validation

In order to add some constraint at compile time, it is not possible to append (</>) a FilePath to another FilePath. You can only append (</>) a FileName to a given FilePath.

Synopsis

Documentation

data FilePath Source #

FilePath is a collection of FileName

TODO: Eq and Ord are implemented using Show This is not very efficient and would need to be improved Also, it is possible the ordering is not necessary what we want in this case.

A FilePath is one of the following:

  • An Absolute:
  • starts with one of the follwing "/"
  • A relative:
  • don't start with a "/"
  • authorised:
  • "/"
  • "filepath"
  • "."
  • ".."
  • "workhaskellhs-foundation"
  • unauthorised
  • "path//"

Instances

Instances details
IsString FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

Show FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

Path FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

Eq FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

Ord FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

type PathEnt FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

type PathPrefix FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

type PathSuffix FilePath Source # 
Instance details

Defined in Foundation.VFS.FilePath

data Relativity Source #

information about type of FilePath

A file path being only Relative or Absolute.

Constructors

Absolute 
Relative 

Instances

Instances details
Show Relativity Source # 
Instance details

Defined in Foundation.VFS.FilePath

Eq Relativity Source # 
Instance details

Defined in Foundation.VFS.FilePath

data FileName Source #

A filename (or path entity) in the FilePath

  • Authorised
  • ""
  • "."
  • ".."
  • "foundation"
  • Unauthorised
  • "/"
  • "file/"
  • "/file"
  • "file/path"

Instances

Instances details
IsString FileName Source # 
Instance details

Defined in Foundation.VFS.FilePath

Monoid FileName Source # 
Instance details

Defined in Foundation.VFS.FilePath

Semigroup FileName Source # 
Instance details

Defined in Foundation.VFS.FilePath

Show FileName Source # 
Instance details

Defined in Foundation.VFS.FilePath

Eq FileName Source # 
Instance details

Defined in Foundation.VFS.FilePath

conversion

filePathToLString :: FilePath -> [Char] Source #

conversion of a FilePath into a list of Char

this function may throw exceptions

unsafe

unsafeFilePath :: Relativity -> [FileName] -> FilePath Source #

build a file path from a given list of filename

this is unsafe and is mainly needed for testing purpose

unsafeFileName :: UArray Word8 -> FileName Source #

build a file name from a given ByteArray

this is unsafe and is mainly needed for testing purpose