{-| Description: Middleware to filter entries according to a predicate. This middleware allows to filter the directory entries according to a predicate. The predicate is a function @Entry -> Bool@. Some pre-built predicate builders are also exported. Example: @ import Follow import Follow.Middlewares.Filter -- Suppose we have a `Directory` d apply (eTitle `equalP` "Some title") d @ -} module Follow.Middlewares.Filter ( apply , Predicate , equalP , lessP , greaterP , infixP , prefixP , suffixP , andP , orP , notP ) where import Follow.Middlewares.Filter.Internal import Follow.Types (Directory (..), Middleware) -- | Middleware to filter a directory according to a given predicate. apply :: Predicate -> Middleware apply p directory = directory {dEntries = filter p (dEntries directory)}