module Data.Registry.Aeson.TH.ThOptions where
import Data.Text qualified as T
import Protolude
newtype ThOptions = ThOptions
{ ThOptions -> Text -> Text
modifyTypeName :: Text -> Text
}
defaultThOptions :: ThOptions
defaultThOptions :: ThOptions
defaultThOptions = (Text -> Text) -> ThOptions
ThOptions Text -> Text
dropQualifier
dropQualifier :: Text -> Text
dropQualifier :: Text -> Text
dropQualifier Text
t = forall a. a -> Maybe a -> a
fromMaybe Text
t forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. [a] -> Maybe a
lastMay forall a b. (a -> b) -> a -> b
$ Text -> Text -> [Text]
T.splitOn Text
"." Text
t
qualified :: Text -> Text
qualified :: Text -> Text
qualified = forall a. a -> a
identity
qualifyAs :: Text -> Text -> Text
qualifyAs :: Text -> Text -> Text
qualifyAs Text
qualifier Text
t = Text
qualifier forall a. Semigroup a => a -> a -> a
<> Text
"." forall a. Semigroup a => a -> a -> a
<> Text -> Text
dropQualifier Text
t
qualifyWithLastName :: Text -> Text
qualifyWithLastName :: Text -> Text
qualifyWithLastName Text
t =
case forall a. [a] -> [a]
reverse forall a b. (a -> b) -> a -> b
$ Text -> Text -> [Text]
T.splitOn Text
"." Text
t of
Text
t1 : Text
t2 : [Text]
_ -> Text
t2 forall a. Semigroup a => a -> a -> a
<> Text
"." forall a. Semigroup a => a -> a -> a
<> Text
t1
[Text]
_ -> Text
t