tagsoup-navigate 0.1.0.4 → 0.1.0.5
raw patch · 3 files changed
+26/−18 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Text.HTML.TagSoup.Navigate.Types.TagTreePosState: breadthFirstFindTree :: (TagTree str -> Bool) -> TagTreePosState str ()
+ Text.HTML.TagSoup.Navigate.Types.TagTreePosState: breadthFirstFindTree :: (TagTree str -> Maybe x) -> TagTreePosState str x
- Text.HTML.TagSoup.Navigate.Types.TagTreePosState: breadthFirstFindTreeT :: Monad f => (TagTree str -> f Bool) -> TagTreePosStateT str f ()
+ Text.HTML.TagSoup.Navigate.Types.TagTreePosState: breadthFirstFindTreeT :: Monad f => (TagTree str -> f (Maybe x)) -> TagTreePosStateT str f x
- Text.HTML.TagSoup.Navigate.Types.TagTreePosState: depthFirstFindTree :: (TagTree str -> Bool) -> TagTreePosState str ()
+ Text.HTML.TagSoup.Navigate.Types.TagTreePosState: depthFirstFindTree :: (TagTree str -> Maybe x) -> TagTreePosState str x
- Text.HTML.TagSoup.Navigate.Types.TagTreePosState: depthFirstFindTreeT :: Monad f => (TagTree str -> f Bool) -> TagTreePosStateT str f ()
+ Text.HTML.TagSoup.Navigate.Types.TagTreePosState: depthFirstFindTreeT :: Monad f => (TagTree str -> f (Maybe x)) -> TagTreePosStateT str f x
- Text.HTML.TagSoup.Navigate.Types.TagTreePosState: findTree :: TagTreePosState str () -> TagTreePosState str () -> (TagTree str -> Bool) -> TagTreePosState str ()
+ Text.HTML.TagSoup.Navigate.Types.TagTreePosState: findTree :: TagTreePosState str a -> TagTreePosState str b -> (TagTree str -> Maybe x) -> TagTreePosState str x
- Text.HTML.TagSoup.Navigate.Types.TagTreePosState: findTreeT :: Monad f => TagTreePosStateT str f a -> TagTreePosStateT str f b -> (TagTree str -> f Bool) -> TagTreePosStateT str f ()
+ Text.HTML.TagSoup.Navigate.Types.TagTreePosState: findTreeT :: Monad f => TagTreePosStateT str f a -> TagTreePosStateT str f b -> (TagTree str -> f (Maybe x)) -> TagTreePosStateT str f x
Files
- changelog.md +4/−0
- src/Text/HTML/TagSoup/Navigate/Types/TagTreePosState.hs +21/−17
- tagsoup-navigate.cabal +1/−1
changelog.md view
@@ -1,3 +1,7 @@+0.1.0.5++* change the search functions in `TagTreePosStateT` to use `Maybe` instead of `Bool`+ 0.1.0.4 * fix bug in breadth/depth first search.
@@ -51,7 +51,7 @@ import Control.Applicative(Applicative((<*>), pure), Alternative((<|>), empty), liftA2, (*>)) import Control.Category((.)) import Control.Lens(Rewrapped, Wrapped, Unwrapped, _Wrapped', _Wrapped, iso, view, preview, over, from, _head, _1, _2, _3)-import Control.Monad(Monad(return, (>>=)), unless)+import Control.Monad(Monad(return, (>>=))) import Control.Monad.Morph(MFunctor(hoist)) import Control.Monad.Reader.Class(MonadReader(ask, local, reader)) import Control.Monad.State.Class(MonadState(state, get, put), gets, modify)@@ -361,44 +361,48 @@ Monad f => TagTreePosStateT str f a -> TagTreePosStateT str f b- -> (TagTree str -> f Bool)- -> TagTreePosStateT str f ()+ -> (TagTree str -> f (Maybe x))+ -> TagTreePosStateT str f x findTreeT s1 s2 pr = do c <- liftTagTreePosState content z <- lift (pr c)- unless z ((s1 *> breadthFirstFindTreeT pr) <|> (s2 *> breadthFirstFindTreeT pr))-+ case z of+ Nothing ->+ (s1 *> breadthFirstFindTreeT pr) <|> (s2 *> breadthFirstFindTreeT pr)+ Just x ->+ pure x+ findTree ::- TagTreePosState str ()- -> TagTreePosState str ()- -> (TagTree str -> Bool)- -> TagTreePosState str ()+ TagTreePosState str a+ -> TagTreePosState str b+ -> (TagTree str -> Maybe x)+ -> TagTreePosState str x findTree s1 s2 pr = findTreeT s1 s2 (Identity . pr) depthFirstFindTreeT :: Monad f =>- (TagTree str -> f Bool)- -> TagTreePosStateT str f ()+ (TagTree str -> f (Maybe x))+ -> TagTreePosStateT str f x depthFirstFindTreeT = findTreeT (liftTagTreePosState firstChild) (liftTagTreePosState nextSibling) depthFirstFindTree ::- (TagTree str -> Bool)- -> TagTreePosState str ()+ (TagTree str -> Maybe x)+ -> TagTreePosState str x depthFirstFindTree pr = depthFirstFindTreeT (Identity . pr) breadthFirstFindTreeT :: Monad f =>- (TagTree str -> f Bool)- -> TagTreePosStateT str f ()+ (TagTree str -> f (Maybe x))+ -> TagTreePosStateT str f x breadthFirstFindTreeT = findTreeT (liftTagTreePosState nextSibling) (liftTagTreePosState firstChild) breadthFirstFindTree ::- (TagTree str -> Bool)- -> TagTreePosState str ()+ (TagTree str -> Maybe x)+ -> TagTreePosState str x breadthFirstFindTree pr = breadthFirstFindTreeT (Identity . pr)
@@ -1,5 +1,5 @@ name: tagsoup-navigate-version: 0.1.0.4+version: 0.1.0.5 synopsis: Tagsoup Navigate description: Lenses and data types for navigating tagsoup license: BSD3