module Text.Regex.Do.Pad
    (pad,pad') where


{- | pad String with Char to total length of Int

    pad on left

 >>> pad '-' 5 "abc"

 "--abc"    -}

pad::Char -> Int -> String -> String
pad :: Char -> Int -> String -> String
pad c0 :: Char
c0 tot0 :: Int
tot0 txt0 :: String
txt0 = String
p1 String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
txt0
    where p1 :: String
p1 = Char -> Int -> String -> String
pad_ Char
c0 Int
tot0 String
txt0


{- | pad on right

    >>> pad' '-' 5 "abc"

     "abc--"        -}
pad'::Char -> Int -> String -> String
pad' :: Char -> Int -> String -> String
pad' c0 :: Char
c0 tot0 :: Int
tot0 txt0 :: String
txt0 = String
txt0 String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
p1
    where p1 :: String
p1 = Char -> Int -> String -> String
pad_ Char
c0 Int
tot0 String
txt0


pad_::Char -> Int -> String -> String
pad_ :: Char -> Int -> String -> String
pad_ c0 :: Char
c0 tot0 :: Int
tot0 txt0 :: String
txt0 = [Char -> Int -> Char
forall a b. a -> b -> a
const Char
c0 Int
p1 | Int
p1 <- [1..(Int
tot0 Int -> Int -> Int
forall a. Num a => a -> a -> a
- (String -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length String
txt0))]]