table-layout-0.9.0.0: src/Text/Layout/Table/Spec/CutMark.hs
-- TODO rename cut marks (they are too long)
module Text.Layout.Table.Spec.CutMark
( CutMark
, doubleCutMark
, singleCutMark
, noCutMark
, leftMark
, rightMark
) where
import Data.Default.Class
-- | Specifies how the place looks where a 'String' has been cut. Note that the
-- cut mark may be cut itself to fit into a column.
data CutMark
= CutMark
{ leftMark :: String
, rightMark :: String
}
-- | A single ellipsis unicode character is used to show cut marks.
instance Default CutMark where
def = singleCutMark "…"
-- | Specify two different cut marks, one for cuts on the left and one for cuts
-- on the right.
doubleCutMark :: String -> String -> CutMark
doubleCutMark = CutMark
-- | Use the cut mark on both sides by reversing it on the other.
singleCutMark :: String -> CutMark
singleCutMark l = doubleCutMark l (reverse l)
-- | Don't show any cut mark when text is cut.
noCutMark :: CutMark
noCutMark = singleCutMark ""