| Copyright | Copyright (C) 2004-2011 John Goerzen | 
|---|---|
| License | BSD3 | 
| Maintainer | John Goerzen <jgoerzen@complete.org> | 
| Stability | provisional | 
| Portability | portable | 
| Safe Haskell | None | 
| Language | Haskell98 | 
System.IO.HVFS.InstanceHelpers
Description
Utilities for creating instances of the items defined in System.IO.HVFS.
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
 - 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 | |
Fields 
  | |
Instances
HVFS objects & types
MemoryVFS
An in-memory read/write filesystem. Think of it as a dynamically resizable ramdisk written in Haskell.
Instances
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 Source # | |
Defined in System.IO.HVFS.InstanceHelpers  | |
| Show MemoryEntry Source # | |
Defined in System.IO.HVFS.InstanceHelpers Methods showsPrec :: Int -> MemoryEntry -> ShowS # show :: MemoryEntry -> String # showList :: [MemoryEntry] -> ShowS #  | |
Utilities
nice_slice :: String -> [String] Source #
Similar to 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.