hoodle-types 0.2 → 0.2.1
raw patch · 5 files changed
+40/−6 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Data.Hoodle.Generic: ghoodle_revisions :: GHoodle cntnr pg -> [Revision]
+ Data.Hoodle.Generic: grevisions :: Simple Lens (GHoodle cntnr pg) [Revision]
+ Data.Hoodle.Select: gselRevisions :: Simple Lens (GSelect a b) [Revision]
+ Data.Hoodle.Select: gselect_revisions :: GSelect a b -> [Revision]
+ Data.Hoodle.Simple: Revision :: !ByteString -> !ByteString -> Revision
+ Data.Hoodle.Simple: _revmd5 :: Revision -> !ByteString
+ Data.Hoodle.Simple: _revtxt :: Revision -> !ByteString
+ Data.Hoodle.Simple: data Revision
+ Data.Hoodle.Simple: hoodle_revisions :: Hoodle -> [Revision]
+ Data.Hoodle.Simple: instance Show Revision
+ Data.Hoodle.Simple: revisions :: Simple Lens Hoodle [Revision]
+ Data.Hoodle.Simple: revmd5 :: Simple Lens Revision ByteString
+ Data.Hoodle.Simple: revtxt :: Simple Lens Revision ByteString
- Data.Hoodle.Generic: GHoodle :: ByteString -> ByteString -> Maybe ByteString -> cntnr pg -> GHoodle cntnr pg
+ Data.Hoodle.Generic: GHoodle :: ByteString -> ByteString -> [Revision] -> Maybe ByteString -> cntnr pg -> GHoodle cntnr pg
- Data.Hoodle.Select: GSelect :: ByteString -> ByteString -> Maybe ByteString -> a -> b -> GSelect a b
+ Data.Hoodle.Select: GSelect :: ByteString -> ByteString -> [Revision] -> Maybe ByteString -> a -> b -> GSelect a b
- Data.Hoodle.Simple: Hoodle :: ByteString -> !Title -> Maybe ByteString -> ![Page] -> Hoodle
+ Data.Hoodle.Simple: Hoodle :: ByteString -> !Title -> [Revision] -> Maybe ByteString -> ![Page] -> Hoodle
Files
- hoodle-types.cabal +1/−2
- src/Data/Hoodle/Generic.hs +7/−2
- src/Data/Hoodle/Generic/Simple.hs +2/−1
- src/Data/Hoodle/Select.hs +8/−0
- src/Data/Hoodle/Simple.hs +22/−1
hoodle-types.cabal view
@@ -1,5 +1,5 @@ Name: hoodle-types-Version: 0.2+Version: 0.2.1 Synopsis: Data types for programs for hoodle file format Description: Hoodle file format data type including generic interface License: BSD3@@ -37,7 +37,6 @@ Data.Hoodle.Select Data.Hoodle.Simple Data.Hoodle.Simple.V0_1_1- -- Data.Hoodle.Simple.V0_1_999 Data.Hoodle.Util Data.Hoodle.Zipper
src/Data/Hoodle/Generic.hs view
@@ -36,6 +36,7 @@ data GHoodle cntnr pg = GHoodle { ghoodle_id :: ByteString , ghoodle_ttl :: ByteString + , ghoodle_revisions :: [Revision] , ghoodle_embeddedpdf :: Maybe ByteString , ghoodle_pgs :: cntnr pg } @@ -72,7 +73,7 @@ -- | instance (Functor cntnr) => Functor (GHoodle cntnr) where- fmap f (GHoodle hid ttl pdf pgs) = GHoodle hid ttl pdf (fmap f pgs)+ fmap f (GHoodle hid ttl revs pdf pgs) = GHoodle hid ttl revs pdf (fmap f pgs) ------------------------------ -- lenses for Generic types --@@ -87,6 +88,10 @@ gtitle = lens ghoodle_ttl (\f a -> f { ghoodle_ttl = a } ) -- | +grevisions :: Simple Lens (GHoodle cntnr pg) [Revision]+grevisions = lens ghoodle_revisions (\f a -> f { ghoodle_revisions = a } )++-- | gembeddedpdf :: Simple Lens (GHoodle cntnr pg) (Maybe ByteString) gembeddedpdf = lens ghoodle_embeddedpdf (\f a -> f { ghoodle_embeddedpdf = a } ) @@ -141,7 +146,7 @@ emptyGHoodle :: (Listable m) => IO (GHoodle m a) emptyGHoodle = do uuid <- nextRandom- return $ GHoodle ((pack.show) uuid) "" Nothing (fromList [])+ return $ GHoodle ((pack.show) uuid) "" [] Nothing (fromList []) -- | emptyGPage :: (Listable cntnr) => Dimension -> bkg -> GPage bkg cntnr a
src/Data/Hoodle/Generic/Simple.hs view
@@ -47,6 +47,7 @@ mkSHoodle = GHoodle <$> view hoodleID <*> view title + <*> view revisions <*> view embeddedPdf <*> map mkSPage . view pages @@ -60,5 +61,5 @@ -- | shoodle2Hoodle :: SHoodle -> Hoodle-shoodle2Hoodle (GHoodle hid ttl pdf pgs) = Hoodle hid ttl pdf (map spage2Page pgs)+shoodle2Hoodle (GHoodle hid ttl revs pdf pgs) = Hoodle hid ttl revs pdf (map spage2Page pgs)
src/Data/Hoodle/Select.hs view
@@ -20,10 +20,12 @@ import Data.ByteString -- import Data.Hoodle.Generic +import Data.Hoodle.Simple -- | data GSelect a b = GSelect { gselect_id :: ByteString , gselect_ttl :: ByteString + , gselect_revisions :: [Revision] , gselect_embeddedpdf :: Maybe ByteString , gselect_all :: a , gselect_selected :: b@@ -36,6 +38,10 @@ gselTitle :: Simple Lens (GSelect a b) ByteString gselTitle = lens gselect_ttl (\f a -> f {gselect_ttl = a}) +-- | +gselRevisions :: Simple Lens (GSelect a b) [Revision]+gselRevisions = lens gselect_revisions (\f a -> f {gselect_revisions = a } )+ -- | gselEmbeddedPdf :: Simple Lens (GSelect a b) (Maybe ByteString) gselEmbeddedPdf = lens gselect_embeddedpdf (\f a -> f {gselect_embeddedpdf = a})@@ -52,6 +58,7 @@ gSelect2GHoodle :: GSelect (m a) b -> GHoodle m a gSelect2GHoodle = GHoodle <$> view gselHoodleID <*> view gselTitle + <*> view gselRevisions <*> view gselEmbeddedPdf <*> view gselAll @@ -59,6 +66,7 @@ gHoodle2GSelect :: GHoodle m a -> GSelect (m a) (Maybe b) gHoodle2GSelect = GSelect <$> view ghoodleID <*> view gtitle + <*> view grevisions <*> view gembeddedpdf <*> view gpages <*> pure Nothing
src/Data/Hoodle/Simple.hs view
@@ -198,10 +198,17 @@ | BackgroundEmbedPdf { bkg_type :: ByteString , bkg_pageno :: Int } deriving Show +-- | +data Revision = Revision { _revmd5 :: !ByteString + , _revtxt :: !ByteString + } + deriving Show + -- | data Hoodle = Hoodle { hoodle_id :: ByteString , hoodle_title :: !Title+ , hoodle_revisions :: [Revision] , hoodle_embeddedpdf :: Maybe ByteString , hoodle_pages :: ![Page] } deriving Show @@ -243,6 +250,18 @@ title = lens hoodle_title (\f a -> f { hoodle_title = a } ) -- | +revisions :: Simple Lens Hoodle [Revision]+revisions = lens hoodle_revisions (\f a -> f { hoodle_revisions = a } )++-- | +revmd5 :: Simple Lens Revision ByteString+revmd5 = lens _revmd5 (\f a -> f { _revmd5 = a } )++-- | +revtxt :: Simple Lens Revision ByteString+revtxt = lens _revtxt (\f a -> f { _revtxt = a } )++-- | embeddedPdf :: Simple Lens Hoodle (Maybe ByteString) embeddedPdf = lens hoodle_embeddedpdf (\f a -> f { hoodle_embeddedpdf = a} ) @@ -250,6 +269,7 @@ pages :: Simple Lens Hoodle [Page] pages = lens hoodle_pages (\f a -> f { hoodle_pages = a } ) + -- | dimension :: Simple Lens Page Dimension dimension = lens page_dim (\f a -> f { page_dim = a } )@@ -275,7 +295,7 @@ emptyHoodle :: IO Hoodle emptyHoodle = do uuid <- nextRandom- return $ Hoodle ((pack.show) uuid) "" Nothing [] + return $ Hoodle ((pack.show) uuid) "" [] Nothing [] -- | emptyLayer :: Layer @@ -304,6 +324,7 @@ defaultHoodle = (set title "untitled".set embeddedPdf Nothing . set pages [defaultPage]) <$> emptyHoodle + -- | newPageFromOld :: Page -> Page newPageFromOld page =