Portability | portable |
---|---|
Stability | provisional |
Maintainer | John Goerzen <jgoerzen@complete.org> |
Safe Haskell | None |
Utilities for creating instances of the items defined in System.IO.HVFS.
- 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.
SimpleStat | |
|
Eq SimpleStat | |
Show SimpleStat | |
HVFSStat SimpleStat |
HVFS objects & types
MemoryVFS
An in-memory read/write filesystem. Think of it as a dynamically resizable ramdisk written in Haskell.
newMemoryVFS :: [MemoryNode] -> IO MemoryVFSSource
Create a new MemoryVFS
object from an existing tree.
An empty filesystem may be created by using []
for the parameter.
newMemoryVFSRef :: IORef [MemoryNode] -> IO MemoryVFSSource
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
.
MemoryDirectory [MemoryNode] | |
MemoryFile String |
Eq MemoryEntry | |
Show MemoryEntry |
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 StringSource
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
.