ede-0.2.5: src/Text/EDE/Filters.hs
-- Module : Text.EDE.Filters
-- Copyright : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
-- License : This Source Code Form is subject to the terms of
-- the Mozilla Public License, v. 2.0.
-- A copy of the MPL can be found in the LICENSE file or
-- you can obtain it at http://mozilla.org/MPL/2.0/.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
-- | The means to construct your own filters.
module Text.EDE.Filters
(
-- * Prelude
-- $prelude
-- ** Boolean
-- $boolean
-- ** Equality
-- $equality
-- ** Relational
-- $relational
-- ** Numeric
-- $numeric
-- ** Fractional
-- $fractional
-- ** Textual
-- $textual
-- ** Collection
-- $collection
-- ** Polymorphic
-- $polymorphic
-- * Constructing filters
Term (..)
-- ** Classes
, Quote (..)
, Unquote (..)
-- ** Restricted quoters
, (@:)
, qapply
, qpoly2
, qnum1
, qnum2
, qcol1
-- ** Errors
, typeErr
, argumentErr
) where
import Text.EDE.Internal.Quoting
import Text.EDE.Internal.Filters
-- $prelude
--
-- The default filters available to a template are documented by the subsequent categories.
--
-- These filters cannot be overriden and attempting to supply your own filters to
-- 'Text.EDE.renderWith' will cause the similarly named filters to disappear when
-- they are merged with the prelude during evaluation. (/See:/ 'Data.HashMap.Strict.union')
-- $boolean
--
-- * @!@ @:: Bool -> Bool@ (/See:/ 'not')
--
-- * '&&' @:: Bool -> Bool -> Bool@
--
-- * '||' @:: Bool -> Bool -> Bool@
-- $equality
--
-- * '==' @:: a -> a -> Bool@
--
-- * @!=@ @:: a -> a -> Bool@ (/See/: '/=')
-- $relational
--
-- * '>' @:: a -> a -> Bool@
--
-- * '>=' @:: a -> a -> Bool@
--
-- * '<=' @:: a -> a -> Bool@
--
-- * '<=' @:: a -> a -> Bool@
-- $numeric
--
-- * '+' @:: Scientific -> Scientific -> Scientific@
--
-- * '-' @:: Scientific -> Scientific -> Scientific@
--
-- * '*' @:: Scientific -> Scientific -> Scientific@
--
-- * 'abs' @:: Scientific -> Scientific@
--
-- * 'signum' @:: Scientific -> Scientific@
--
-- * 'negate' @:: Scientific -> Scientific@
-- $fractional
--
-- * 'truncate' @:: Scientific -> Scientific@
--
-- * 'round' @:: Scientific -> Scientific@
--
-- * 'ceiling' @:: Scientific -> Scientific@
--
-- * 'floor' @:: Scientific -> Scientific@
-- $textual
--
-- * 'Data.Text.Manipulate.takeWord' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.dropWord' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.lowerHead' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.upperHead' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.toTitle' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.toCamel' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.toPascal' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.toSnake' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.toSpinal' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.toTrain' @:: Text -> Text@
--
-- * 'Data.Text.toLower' @:: Text -> Text@
--
-- * 'Data.Text.toUpper' @:: Text -> Text@
--
-- * 'Data.Text.Manipulate.toOrdinal' @:: Scientific -> Text@
-- $collection
--
-- * @length@ @:: Collection -> Scientific@ (/See/: Text.'Data.Text.length', Vector.'Data.Vector.length', HashMap.'Data.HashMap.Strict.size')
--
-- * @empty@ @:: Collection -> Bool@ (/See/: Text:'Data.Text.null', Vector.'Data.Vector.null', HashMap.'Data.HashMap.Strict.null')
-- $polymorphic
--
-- * 'show' @:: a -> Text@