{-# language LambdaCase #-}

module Rel8.Schema.Escape
  ( escape
  )
where

-- base
import Prelude

-- pretty
import Text.PrettyPrint (Doc, doubleQuotes, text)


escape :: String -> Doc
escape :: String -> Doc
escape = Doc -> Doc
doubleQuotes (Doc -> Doc) -> (String -> Doc) -> String -> Doc
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Doc
text (String -> Doc) -> (String -> String) -> String -> Doc
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Char -> String) -> String -> String
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap Char -> String
go
  where
    go :: Char -> String
go = \case
      Char
'"' -> String
"\"\""
      Char
c -> [Char
c]