Safe Haskell | None |
---|---|
Language | Haskell2010 |
RON Storage interface. For usage, see RON.Storage.FS.
Synopsis
- class (ReplicatedAsObject a, Typeable a) => Collection a where
- collectionName :: CollectionName
- fallbackParse :: MonadE m => UUID -> ByteStringL -> m (ObjectFrame a)
- type CollectionName = FilePath
- data DocId a
- createDocument :: (Collection a, MonadStorage m) => ObjectFrame a -> m ()
- decodeDocId :: DocId a -> Maybe (Bool, UUID)
- docIdFromUuid :: UUID -> DocId a
- loadDocument :: (Collection a, MonadStorage m) => DocId a -> m (Document a)
- modify :: (Collection a, MonadStorage m) => DocId a -> ObjectStateT a m b -> m b
Documentation
class (ReplicatedAsObject a, Typeable a) => Collection a where Source #
A type that intended to be put in a separate collection must define a Collection instance.
collectionName :: CollectionName Source #
fallbackParse :: MonadE m => UUID -> ByteStringL -> m (ObjectFrame a) Source #
Called when RON parser fails.
type CollectionName = FilePath Source #
Collection (directory name)
createDocument :: (Collection a, MonadStorage m) => ObjectFrame a -> m () Source #
Create document assuming it doesn't exist yet.
Try decode UUID from a file name
docIdFromUuid :: UUID -> DocId a Source #
loadDocument :: (Collection a, MonadStorage m) => DocId a -> m (Document a) Source #
Load all versions of a document
modify :: (Collection a, MonadStorage m) => DocId a -> ObjectStateT a m b -> m b Source #
Load document, apply changes and put it back to storage