| MissingH-1.1.0.3: Large utility library | Source code | Contents | Index

System.IO.HVFS.InstanceHelpers

Portability | portable
Stability | provisional
Maintainer | John Goerzen <jgoerzen@complete.org>

Contents

HVFSStat objects
HVFS objects & types
  MemoryVFS
Utilities

Description
Utilities for creating instances of the items defined in System.IO.HVFS. Copyright (c) 2004 John Goerzen, jgoerzen@complete.org
Synopsis

data SimpleStat = SimpleStat {

isFile :: Bool
fileSize :: FileOffset

}

data MemoryVFS
newMemoryVFS :: [MemoryNode] -> IO MemoryVFS
newMemoryVFSRef :: IORef [MemoryNode] -> IO MemoryVFS
type MemoryNode = (String, MemoryEntry)

data MemoryEntry

= MemoryDirectory [MemoryNode]
| MemoryFile String

nice_slice :: String -> [String]
getFullPath :: HVFS a => a -> String -> IO String
getFullSlice :: HVFS a => a -> String -> IO [String]

HVFSStat objects

data SimpleStat | Source

A simple System.IO.HVFS.HVFSStat class that assumes that everything is either a file or a directory.
Constructors

SimpleStat |

isFile :: Bool | True if file, False if directory
fileSize :: FileOffset | Set to 0 if unknown or a directory

Instances

Eq SimpleStat
Show SimpleStat
HVFSStat SimpleStat

HVFS objects & types
MemoryVFS

data MemoryVFS | Source

An in-memory read/write filesystem. Think of it as a dynamically resizable ramdisk written in Haskell.
Instances

Show MemoryVFS
HVFSOpenable MemoryVFS
HVFS MemoryVFS

newMemoryVFS :: [MemoryNode] -> IO MemoryVFS | Source

Create a new `MemoryVFS` object from an existing tree. An empty filesystem may be created by using `[]` for the parameter.

newMemoryVFSRef :: IORef [MemoryNode] -> IO MemoryVFS | Source

Create a new `MemoryVFS` object using an IORef to an existing tree.

type MemoryNode = (String, MemoryEntry) | Source

The basic node of a `MemoryVFS`. The String corresponds to the filename, and the entry to the contents.

data MemoryEntry | Source

The content of a file or directory in a `MemoryVFS`.
Constructors

MemoryDirectory [MemoryNode] |
MemoryFile String |

Instances

Eq MemoryEntry
Show MemoryEntry

Utilities

nice_slice :: String -> [String] | Source

Similar to System.Path.NameManip but the first element won't be `/`.

    nice_slice "/" -> []
    nice_slice "/foo/bar" -> ["foo", "bar"]

getFullPath :: HVFS a => a -> String -> IO String | Source

Gets a full path, after investigating the cwd.

getFullSlice :: HVFS a => a -> String -> IO [String] | Source

Gets the full path via `getFullPath`, then splits it via `nice_slice`.
Produced by Haddock version 2.4.2