ron-storage-0.11: RON Storage

Safe HaskellNone
LanguageHaskell2010

RON.Storage.FS

Contents

Description

A real-world file storage.

Typical usage:

import RON.Storage.FS as Storage

main = do
    let dataDir = "./data/"
    h <- Storage.newHandle dataDir
    runStorage h $ do
        obj <- newObjectState Note{active = True, text = "Write an example"}
        createDocument obj
Synopsis

Documentation

Handle

data Handle Source #

Storage handle (uses the “Handle pattern”).

newHandle :: FilePath -> IO Handle Source #

Create new storage handle. Uses MAC address for replica id or generates a random one.

Storage

data Storage a Source #

Environment is the dataDir

Instances
Monad Storage Source # 
Instance details

Defined in RON.Storage.FS

Methods

(>>=) :: Storage a -> (a -> Storage b) -> Storage b #

(>>) :: Storage a -> Storage b -> Storage b #

return :: a -> Storage a #

fail :: String -> Storage a #

Functor Storage Source # 
Instance details

Defined in RON.Storage.FS

Methods

fmap :: (a -> b) -> Storage a -> Storage b #

(<$) :: a -> Storage b -> Storage a #

Applicative Storage Source # 
Instance details

Defined in RON.Storage.FS

Methods

pure :: a -> Storage a #

(<*>) :: Storage (a -> b) -> Storage a -> Storage b #

liftA2 :: (a -> b -> c) -> Storage a -> Storage b -> Storage c #

(*>) :: Storage a -> Storage b -> Storage b #

(<*) :: Storage a -> Storage b -> Storage a #

MonadIO Storage Source # 
Instance details

Defined in RON.Storage.FS

Methods

liftIO :: IO a -> Storage a #

ReplicaClock Storage Source # 
Instance details

Defined in RON.Storage.FS

MonadStorage Storage Source # 
Instance details

Defined in RON.Storage.FS

MonadError Error Storage Source # 
Instance details

Defined in RON.Storage.FS

Methods

throwError :: Error -> Storage a #

catchError :: Storage a -> (Error -> Storage a) -> Storage a #

runStorage :: Handle -> Storage a -> IO a Source #

Run a Storage action

Listening to changes

type StopListening = IO () #

An action that cancels a watching/listening job