mirror of
https://github.com/byteverse/colonnade.git
synced 2024-10-26 08:03:25 +03:00
add more functions for tweaking headedness
This commit is contained in:
parent
e0a0f66a43
commit
c646c467c9
@ -1,4 +1,5 @@
|
||||
{-# LANGUAGE DataKinds #-}
|
||||
{-# LANGUAGE RankNTypes #-}
|
||||
|
||||
{-# OPTIONS_GHC -Wall -fno-warn-unused-imports -fno-warn-unticked-promoted-constructors -Werror #-}
|
||||
|
||||
@ -16,12 +17,16 @@ module Colonnade
|
||||
, headless
|
||||
, singleton
|
||||
-- * Transform
|
||||
, mapHeaderContent
|
||||
-- ** Body
|
||||
, fromMaybe
|
||||
, columns
|
||||
, bool
|
||||
, replaceWhen
|
||||
, modifyWhen
|
||||
-- ** Header
|
||||
, mapHeaderContent
|
||||
, mapHeadedness
|
||||
, toHeadless
|
||||
-- * Cornice
|
||||
-- ** Types
|
||||
, Cornice
|
||||
@ -118,6 +123,16 @@ mapHeaderContent :: Functor h => (c -> c) -> Colonnade h a c -> Colonnade h a c
|
||||
mapHeaderContent f (E.Colonnade v) =
|
||||
E.Colonnade (Vector.map (\(E.OneColonnade h e) -> E.OneColonnade (fmap f h) e) v)
|
||||
|
||||
-- | Map over the header type of a 'Colonnade'.
|
||||
mapHeadedness :: (forall x. h x -> h' x) -> Colonnade h a c -> Colonnade h' a c
|
||||
mapHeadedness f (E.Colonnade v) =
|
||||
E.Colonnade (Vector.map (\(E.OneColonnade h e) -> E.OneColonnade (f h) e) v)
|
||||
|
||||
-- | Remove the heading from a 'Colonnade'.
|
||||
toHeadless :: Colonnade h a c -> Colonnade Headless a c
|
||||
toHeadless = mapHeadedness (const Headless)
|
||||
|
||||
|
||||
-- | Lift a column over a 'Maybe'. For example, if some people
|
||||
-- have houses and some do not, the data that pairs them together
|
||||
-- could be represented as:
|
||||
|
Loading…
Reference in New Issue
Block a user