module Polysemy.Hasql.Data.ConnectionTag where import Exon (ToSegment (toSegment)) data ConnectionTag = GlobalTag | NamedTag Text | SerialTag Integer deriving stock (ConnectionTag -> ConnectionTag -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ConnectionTag -> ConnectionTag -> Bool $c/= :: ConnectionTag -> ConnectionTag -> Bool == :: ConnectionTag -> ConnectionTag -> Bool $c== :: ConnectionTag -> ConnectionTag -> Bool Eq, Int -> ConnectionTag -> ShowS [ConnectionTag] -> ShowS ConnectionTag -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ConnectionTag] -> ShowS $cshowList :: [ConnectionTag] -> ShowS show :: ConnectionTag -> String $cshow :: ConnectionTag -> String showsPrec :: Int -> ConnectionTag -> ShowS $cshowsPrec :: Int -> ConnectionTag -> ShowS Show, Eq ConnectionTag ConnectionTag -> ConnectionTag -> Bool ConnectionTag -> ConnectionTag -> Ordering ConnectionTag -> ConnectionTag -> ConnectionTag forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: ConnectionTag -> ConnectionTag -> ConnectionTag $cmin :: ConnectionTag -> ConnectionTag -> ConnectionTag max :: ConnectionTag -> ConnectionTag -> ConnectionTag $cmax :: ConnectionTag -> ConnectionTag -> ConnectionTag >= :: ConnectionTag -> ConnectionTag -> Bool $c>= :: ConnectionTag -> ConnectionTag -> Bool > :: ConnectionTag -> ConnectionTag -> Bool $c> :: ConnectionTag -> ConnectionTag -> Bool <= :: ConnectionTag -> ConnectionTag -> Bool $c<= :: ConnectionTag -> ConnectionTag -> Bool < :: ConnectionTag -> ConnectionTag -> Bool $c< :: ConnectionTag -> ConnectionTag -> Bool compare :: ConnectionTag -> ConnectionTag -> Ordering $ccompare :: ConnectionTag -> ConnectionTag -> Ordering Ord, forall x. Rep ConnectionTag x -> ConnectionTag forall x. ConnectionTag -> Rep ConnectionTag x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep ConnectionTag x -> ConnectionTag $cfrom :: forall x. ConnectionTag -> Rep ConnectionTag x Generic) instance IsString ConnectionTag where fromString :: String -> ConnectionTag fromString = Text -> ConnectionTag NamedTag forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. IsString a => String -> a fromString instance ( IsString a ) => ToSegment ConnectionTag a where toSegment :: ConnectionTag -> a toSegment = \case ConnectionTag GlobalTag -> a "global" NamedTag Text n -> forall a. IsString a => Text -> a fromText Text n SerialTag Integer n -> forall b a. (Show a, IsString b) => a -> b show Integer n