module Sqel.Text.DbIdentifier where import Data.List (dropWhileEnd) import Sqel.SOP.Constraint (symbolString) import Sqel.Text.Case (unCamelCase) import Sqel.Text.Quote (dquote) dbIdentifier :: String -> Text dbIdentifier :: String -> Text dbIdentifier = Char -> String -> Text unCamelCase Char '_' forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. (a -> Bool) -> [a] -> [a] dropWhile (Char '_' forall a. Eq a => a -> a -> Bool ==) forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. (a -> Bool) -> [a] -> [a] dropWhileEnd (Char '_' forall a. Eq a => a -> a -> Bool ==) dbIdentifierT :: Text -> Text dbIdentifierT :: Text -> Text dbIdentifierT = String -> Text dbIdentifier forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. ToString a => a -> String toString quotedDbId :: Text -> Text quotedDbId :: Text -> Text quotedDbId = forall a. Exon a => a -> a dquote forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> Text dbIdentifierT dbSymbol :: ∀ name . KnownSymbol name => Text dbSymbol :: forall (name :: Symbol). KnownSymbol name => Text dbSymbol = String -> Text dbIdentifier (forall (name :: Symbol). KnownSymbol name => String symbolString @name)