| License | AGPL-3 |
|---|---|
| Maintainer | stu235271@mail.uni-kiel.de stu236925@mail.uni-kiel.de |
| Safe Haskell | None |
| Language | Haskell2010 |
Docs.TreeRevision
Description
This module contains definitions and related utility functions for revisions of the document structure tree.
Synopsis
- newtype TreeRevisionID = TreeRevisionID {}
- data TreeRevision a = TreeRevision TreeRevisionHeader (Node a)
- data TreeRevisionHeader = TreeRevisionHeader {}
- data TreeRevisionSelector
- data TreeRevisionHistory = TreeRevisionHistory DocumentID [TreeRevisionHeader]
- data TreeRevisionRef = TreeRevisionRef DocumentID TreeRevisionSelector
- prettyPrintTreeRevisionRef :: TreeRevisionRef -> String
- mapRoot :: (Node a -> Node b) -> TreeRevision a -> TreeRevision b
- mapMRoot :: Monad m => (Node a -> m (Node b)) -> TreeRevision a -> m (TreeRevision b)
- replaceRoot :: Node b -> TreeRevision a -> TreeRevision b
- withTextRevisions :: Monad m => (TextElementID -> m (Maybe TextRevision)) -> TreeRevision TextElement -> m (TreeRevision TextElementRevision)
- newTreeRevision :: Monad m => (DocumentID -> m (TextElementID -> Bool)) -> (UserID -> DocumentID -> Node TextElementID -> m (TreeRevision TextElementID)) -> UserID -> DocumentID -> Node TextElementID -> m (TreeRevision TextElementID)
- specificTreeRevision :: TreeRevisionSelector -> Maybe TreeRevisionID
- latestTreeRevisionAsOf :: TreeRevisionSelector -> Maybe UTCTime
Documentation
newtype TreeRevisionID Source #
An ID for a tree revision.
Constructors
| TreeRevisionID | |
Fields | |
Instances
| FromJSON TreeRevisionID Source # | |
Defined in Docs.TreeRevision | |
| ToJSON TreeRevisionID Source # | |
Defined in Docs.TreeRevision Methods toJSON :: TreeRevisionID -> Value toEncoding :: TreeRevisionID -> Encoding toJSONList :: [TreeRevisionID] -> Value toEncodingList :: [TreeRevisionID] -> Encoding omitField :: TreeRevisionID -> Bool | |
| Eq TreeRevisionID Source # | |
Defined in Docs.TreeRevision Methods (==) :: TreeRevisionID -> TreeRevisionID -> Bool # (/=) :: TreeRevisionID -> TreeRevisionID -> Bool # | |
| FromHttpApiData TreeRevisionID Source # | |
Defined in Docs.TreeRevision Methods parseUrlPiece :: Text -> Either Text TreeRevisionID | |
| ToParamSchema TreeRevisionID Source # | |
Defined in Docs.TreeRevision Methods toParamSchema :: Proxy TreeRevisionID -> Schema | |
| ToSchema TreeRevisionID Source # | |
Defined in Docs.TreeRevision Methods declareNamedSchema :: Proxy TreeRevisionID -> Declare (Definitions Schema) NamedSchema | |
data TreeRevision a Source #
A tree revision.
Constructors
| TreeRevision TreeRevisionHeader (Node a) |
Instances
| Functor TreeRevision Source # | |
Defined in Docs.TreeRevision Methods fmap :: (a -> b) -> TreeRevision a -> TreeRevision b # (<$) :: a -> TreeRevision b -> TreeRevision a # | |
| FromJSON a => FromJSON (TreeRevision a) Source # | |
Defined in Docs.TreeRevision Methods parseJSON :: Value -> Parser (TreeRevision a) parseJSONList :: Value -> Parser [TreeRevision a] omittedField :: Maybe (TreeRevision a) | |
| ToJSON a => ToJSON (TreeRevision a) Source # | |
Defined in Docs.TreeRevision Methods toJSON :: TreeRevision a -> Value toEncoding :: TreeRevision a -> Encoding toJSONList :: [TreeRevision a] -> Value toEncodingList :: [TreeRevision a] -> Encoding omitField :: TreeRevision a -> Bool | |
| ToSchema a => ToSchema (TreeRevision a) Source # | |
Defined in Docs.TreeRevision Methods declareNamedSchema :: Proxy (TreeRevision a) -> Declare (Definitions Schema) NamedSchema | |
data TreeRevisionHeader Source #
Contains metadata about a tree revision.
Constructors
| TreeRevisionHeader | |
Fields
| |
Instances
data TreeRevisionSelector Source #
Selector for a tree revision.
Constructors
| Latest | select the latest revision |
| LatestAsOf UTCTime | selects the latest revision at a given timestamp |
| Specific TreeRevisionID | selects a specific revision by its id |
Instances
| FromJSON TreeRevisionSelector Source # | |
Defined in Docs.TreeRevision Methods parseJSON :: Value -> Parser TreeRevisionSelector parseJSONList :: Value -> Parser [TreeRevisionSelector] | |
| ToJSON TreeRevisionSelector Source # | |
Defined in Docs.TreeRevision Methods toJSON :: TreeRevisionSelector -> Value toEncoding :: TreeRevisionSelector -> Encoding toJSONList :: [TreeRevisionSelector] -> Value toEncodingList :: [TreeRevisionSelector] -> Encoding | |
| FromHttpApiData TreeRevisionSelector Source # | |
Defined in Docs.TreeRevision Methods parseUrlPiece :: Text -> Either Text TreeRevisionSelector parseHeader :: ByteString -> Either Text TreeRevisionSelector | |
| ToParamSchema TreeRevisionSelector Source # | |
Defined in Docs.TreeRevision Methods toParamSchema :: Proxy TreeRevisionSelector -> Schema | |
| ToSchema TreeRevisionSelector Source # | |
Defined in Docs.TreeRevision Methods declareNamedSchema :: Proxy TreeRevisionSelector -> Declare (Definitions Schema) NamedSchema | |
data TreeRevisionHistory Source #
Sequence of revisions for a document tree.
Constructors
| TreeRevisionHistory DocumentID [TreeRevisionHeader] |
Instances
| FromJSON TreeRevisionHistory Source # | |
Defined in Docs.TreeRevision Methods parseJSON :: Value -> Parser TreeRevisionHistory parseJSONList :: Value -> Parser [TreeRevisionHistory] | |
| ToJSON TreeRevisionHistory Source # | |
Defined in Docs.TreeRevision Methods toJSON :: TreeRevisionHistory -> Value toEncoding :: TreeRevisionHistory -> Encoding toJSONList :: [TreeRevisionHistory] -> Value toEncodingList :: [TreeRevisionHistory] -> Encoding omitField :: TreeRevisionHistory -> Bool | |
| ToSchema TreeRevisionHistory Source # | |
Defined in Docs.TreeRevision Methods declareNamedSchema :: Proxy TreeRevisionHistory -> Declare (Definitions Schema) NamedSchema | |
data TreeRevisionRef Source #
References a TreeRevision
Constructors
| TreeRevisionRef DocumentID TreeRevisionSelector |
Instances
| FromJSON TreeRevisionRef Source # | |||||
Defined in Docs.TreeRevision Methods parseJSON :: Value -> Parser TreeRevisionRef parseJSONList :: Value -> Parser [TreeRevisionRef] | |||||
| ToJSON TreeRevisionRef Source # | |||||
Defined in Docs.TreeRevision Methods toJSON :: TreeRevisionRef -> Value toEncoding :: TreeRevisionRef -> Encoding toJSONList :: [TreeRevisionRef] -> Value toEncodingList :: [TreeRevisionRef] -> Encoding omitField :: TreeRevisionRef -> Bool | |||||
| Generic TreeRevisionRef Source # | |||||
Defined in Docs.TreeRevision Associated Types
Methods from :: TreeRevisionRef -> Rep TreeRevisionRef x # to :: Rep TreeRevisionRef x -> TreeRevisionRef # | |||||
| ToSchema TreeRevisionRef Source # | |||||
Defined in Docs.TreeRevision Methods declareNamedSchema :: Proxy TreeRevisionRef -> Declare (Definitions Schema) NamedSchema | |||||
| type Rep TreeRevisionRef Source # | |||||
Defined in Docs.TreeRevision type Rep TreeRevisionRef = D1 ('MetaData "TreeRevisionRef" "Docs.TreeRevision" "backend-0.1.0.0-2H73EnUlGVcEtlIi2XNQz3" 'False) (C1 ('MetaCons "TreeRevisionRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DocumentID) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TreeRevisionSelector))) | |||||
prettyPrintTreeRevisionRef :: TreeRevisionRef -> String Source #
Optisch ansprechende Darstellung der Baum-Revisions-Referenz.
mapRoot :: (Node a -> Node b) -> TreeRevision a -> TreeRevision b Source #
mapMRoot :: Monad m => (Node a -> m (Node b)) -> TreeRevision a -> m (TreeRevision b) Source #
replaceRoot :: Node b -> TreeRevision a -> TreeRevision b Source #
Arguments
| :: Monad m | |
| => (TextElementID -> m (Maybe TextRevision)) | (potentially effectful) function for obtaining a text revision |
| -> TreeRevision TextElement | document structre tree revision |
| -> m (TreeRevision TextElementRevision) | document structre tree revision with concrete text revision |
Takes a tree revision and emplaces concrecte text revisions. | The text revisions are obtained via the specified getter function.
Arguments
| :: Monad m | |
| => (DocumentID -> m (TextElementID -> Bool)) | for a given document, checks if a text element belongs to this document |
| -> (UserID -> DocumentID -> Node TextElementID -> m (TreeRevision TextElementID)) | create a new tree revision |
| -> UserID | authors user id |
| -> DocumentID | which document the revision belongs to |
| -> Node TextElementID | the root node of the revision |
| -> m (TreeRevision TextElementID) | newly created revision |
specificTreeRevision :: TreeRevisionSelector -> Maybe TreeRevisionID Source #
Obtain id if selects a specific revision.
latestTreeRevisionAsOf :: TreeRevisionSelector -> Maybe UTCTime Source #
Obtain timestamp if selects LatestAsOf.