{-# LANGUAGE BangPatterns, DeriveDataTypeable, DeriveGeneric, FlexibleInstances, MultiParamTypeClasses, OverloadedStrings #-}
{-# OPTIONS_GHC  -w #-}
module Text.DescriptorProtos.UninterpretedOption.NamePart (NamePart(..)) where
import Prelude ((+), (/), (++), (.))
import qualified Prelude as Prelude'
import qualified Data.List as Prelude'
import qualified Data.Typeable as Prelude'
import qualified GHC.Generics as Prelude'
import qualified Data.Data as Prelude'
import qualified Text.ProtocolBuffers.Header as P'

data NamePart = NamePart{NamePart -> Utf8
name_part :: !(P'.Utf8), NamePart -> Bool
is_extension :: !(P'.Bool), NamePart -> UnknownField
unknown'field :: !(P'.UnknownField)}
                deriving (Int -> NamePart -> ShowS
[NamePart] -> ShowS
NamePart -> String
(Int -> NamePart -> ShowS)
-> (NamePart -> String) -> ([NamePart] -> ShowS) -> Show NamePart
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [NamePart] -> ShowS
$cshowList :: [NamePart] -> ShowS
show :: NamePart -> String
$cshow :: NamePart -> String
showsPrec :: Int -> NamePart -> ShowS
$cshowsPrec :: Int -> NamePart -> ShowS
Prelude'.Show, NamePart -> NamePart -> Bool
(NamePart -> NamePart -> Bool)
-> (NamePart -> NamePart -> Bool) -> Eq NamePart
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NamePart -> NamePart -> Bool
$c/= :: NamePart -> NamePart -> Bool
== :: NamePart -> NamePart -> Bool
$c== :: NamePart -> NamePart -> Bool
Prelude'.Eq, Eq NamePart
Eq NamePart
-> (NamePart -> NamePart -> Ordering)
-> (NamePart -> NamePart -> Bool)
-> (NamePart -> NamePart -> Bool)
-> (NamePart -> NamePart -> Bool)
-> (NamePart -> NamePart -> Bool)
-> (NamePart -> NamePart -> NamePart)
-> (NamePart -> NamePart -> NamePart)
-> Ord NamePart
NamePart -> NamePart -> Bool
NamePart -> NamePart -> Ordering
NamePart -> NamePart -> NamePart
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 :: NamePart -> NamePart -> NamePart
$cmin :: NamePart -> NamePart -> NamePart
max :: NamePart -> NamePart -> NamePart
$cmax :: NamePart -> NamePart -> NamePart
>= :: NamePart -> NamePart -> Bool
$c>= :: NamePart -> NamePart -> Bool
> :: NamePart -> NamePart -> Bool
$c> :: NamePart -> NamePart -> Bool
<= :: NamePart -> NamePart -> Bool
$c<= :: NamePart -> NamePart -> Bool
< :: NamePart -> NamePart -> Bool
$c< :: NamePart -> NamePart -> Bool
compare :: NamePart -> NamePart -> Ordering
$ccompare :: NamePart -> NamePart -> Ordering
$cp1Ord :: Eq NamePart
Prelude'.Ord, Prelude'.Typeable, Typeable NamePart
DataType
Constr
Typeable NamePart
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> NamePart -> c NamePart)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c NamePart)
-> (NamePart -> Constr)
-> (NamePart -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c NamePart))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamePart))
-> ((forall b. Data b => b -> b) -> NamePart -> NamePart)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> NamePart -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> NamePart -> r)
-> (forall u. (forall d. Data d => d -> u) -> NamePart -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> NamePart -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> NamePart -> m NamePart)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> NamePart -> m NamePart)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> NamePart -> m NamePart)
-> Data NamePart
NamePart -> DataType
NamePart -> Constr
(forall b. Data b => b -> b) -> NamePart -> NamePart
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> NamePart -> c NamePart
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c NamePart
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> NamePart -> u
forall u. (forall d. Data d => d -> u) -> NamePart -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> NamePart -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> NamePart -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> NamePart -> m NamePart
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NamePart -> m NamePart
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c NamePart
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> NamePart -> c NamePart
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c NamePart)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamePart)
$cNamePart :: Constr
$tNamePart :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> NamePart -> m NamePart
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NamePart -> m NamePart
gmapMp :: (forall d. Data d => d -> m d) -> NamePart -> m NamePart
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NamePart -> m NamePart
gmapM :: (forall d. Data d => d -> m d) -> NamePart -> m NamePart
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> NamePart -> m NamePart
gmapQi :: Int -> (forall d. Data d => d -> u) -> NamePart -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> NamePart -> u
gmapQ :: (forall d. Data d => d -> u) -> NamePart -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> NamePart -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> NamePart -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> NamePart -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> NamePart -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> NamePart -> r
gmapT :: (forall b. Data b => b -> b) -> NamePart -> NamePart
$cgmapT :: (forall b. Data b => b -> b) -> NamePart -> NamePart
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamePart)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamePart)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c NamePart)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c NamePart)
dataTypeOf :: NamePart -> DataType
$cdataTypeOf :: NamePart -> DataType
toConstr :: NamePart -> Constr
$ctoConstr :: NamePart -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c NamePart
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c NamePart
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> NamePart -> c NamePart
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> NamePart -> c NamePart
$cp1Data :: Typeable NamePart
Prelude'.Data, (forall x. NamePart -> Rep NamePart x)
-> (forall x. Rep NamePart x -> NamePart) -> Generic NamePart
forall x. Rep NamePart x -> NamePart
forall x. NamePart -> Rep NamePart x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep NamePart x -> NamePart
$cfrom :: forall x. NamePart -> Rep NamePart x
Prelude'.Generic)

instance P'.UnknownMessage NamePart where
  getUnknownField :: NamePart -> UnknownField
getUnknownField = NamePart -> UnknownField
unknown'field
  putUnknownField :: UnknownField -> NamePart -> NamePart
putUnknownField UnknownField
u'f NamePart
msg = NamePart
msg{unknown'field :: UnknownField
unknown'field = UnknownField
u'f}

instance P'.Mergeable NamePart where
  mergeAppend :: NamePart -> NamePart -> NamePart
mergeAppend (NamePart Utf8
x'1 Bool
x'2 UnknownField
x'3) (NamePart Utf8
y'1 Bool
y'2 UnknownField
y'3)
   = let !z'1 :: Utf8
z'1 = Utf8 -> Utf8 -> Utf8
forall a. Mergeable a => a -> a -> a
P'.mergeAppend Utf8
x'1 Utf8
y'1
         !z'2 :: Bool
z'2 = Bool -> Bool -> Bool
forall a. Mergeable a => a -> a -> a
P'.mergeAppend Bool
x'2 Bool
y'2
         !z'3 :: UnknownField
z'3 = UnknownField -> UnknownField -> UnknownField
forall a. Mergeable a => a -> a -> a
P'.mergeAppend UnknownField
x'3 UnknownField
y'3
      in Utf8 -> Bool -> UnknownField -> NamePart
NamePart Utf8
z'1 Bool
z'2 UnknownField
z'3

instance P'.Default NamePart where
  defaultValue :: NamePart
defaultValue = Utf8 -> Bool -> UnknownField -> NamePart
NamePart Utf8
forall a. Default a => a
P'.defaultValue Bool
forall a. Default a => a
P'.defaultValue UnknownField
forall a. Default a => a
P'.defaultValue

instance P'.Wire NamePart where
  wireSize :: FieldType -> NamePart -> WireSize
wireSize FieldType
ft' self' :: NamePart
self'@(NamePart Utf8
x'1 Bool
x'2 UnknownField
x'3)
   = case FieldType
ft' of
       FieldType
10 -> WireSize
calc'Size
       FieldType
11 -> WireSize -> WireSize
P'.prependMessageSize WireSize
calc'Size
       FieldType
_ -> FieldType -> NamePart -> WireSize
forall a. Typeable a => FieldType -> a -> WireSize
P'.wireSizeErr FieldType
ft' NamePart
self'
    where
        calc'Size :: WireSize
calc'Size = (WireSize -> FieldType -> Utf8 -> WireSize
forall v. Wire v => WireSize -> FieldType -> v -> WireSize
P'.wireSizeReq WireSize
1 FieldType
9 Utf8
x'1 WireSize -> WireSize -> WireSize
forall a. Num a => a -> a -> a
+ WireSize -> FieldType -> Bool -> WireSize
forall v. Wire v => WireSize -> FieldType -> v -> WireSize
P'.wireSizeReq WireSize
1 FieldType
8 Bool
x'2 WireSize -> WireSize -> WireSize
forall a. Num a => a -> a -> a
+ UnknownField -> WireSize
P'.wireSizeUnknownField UnknownField
x'3)
  wirePutWithSize :: FieldType -> NamePart -> PutM WireSize
wirePutWithSize FieldType
ft' self' :: NamePart
self'@(NamePart Utf8
x'1 Bool
x'2 UnknownField
x'3)
   = case FieldType
ft' of
       FieldType
10 -> PutM WireSize
put'Fields
       FieldType
11 -> PutM WireSize
put'FieldsSized
       FieldType
_ -> FieldType -> NamePart -> PutM WireSize
forall a b. Typeable a => FieldType -> a -> PutM b
P'.wirePutErr FieldType
ft' NamePart
self'
    where
        put'Fields :: PutM WireSize
put'Fields
         = [PutM WireSize] -> PutM WireSize
forall (f :: * -> *).
Foldable f =>
f (PutM WireSize) -> PutM WireSize
P'.sequencePutWithSize
            [WireTag -> FieldType -> Utf8 -> PutM WireSize
forall v. Wire v => WireTag -> FieldType -> v -> PutM WireSize
P'.wirePutReqWithSize WireTag
10 FieldType
9 Utf8
x'1, WireTag -> FieldType -> Bool -> PutM WireSize
forall v. Wire v => WireTag -> FieldType -> v -> PutM WireSize
P'.wirePutReqWithSize WireTag
16 FieldType
8 Bool
x'2, UnknownField -> PutM WireSize
P'.wirePutUnknownFieldWithSize UnknownField
x'3]
        put'FieldsSized :: PutM WireSize
put'FieldsSized
         = let size' :: WireSize
size' = (WireSize, ByteString) -> WireSize
forall a b. (a, b) -> a
Prelude'.fst (PutM WireSize -> (WireSize, ByteString)
forall a. PutM a -> (a, ByteString)
P'.runPutM PutM WireSize
put'Fields)
               put'Size :: PutM WireSize
put'Size
                = do
                    WireSize -> Put
P'.putSize WireSize
size'
                    WireSize -> PutM WireSize
forall (m :: * -> *) a. Monad m => a -> m a
Prelude'.return (WireSize -> WireSize
P'.size'WireSize WireSize
size')
            in [PutM WireSize] -> PutM WireSize
forall (f :: * -> *).
Foldable f =>
f (PutM WireSize) -> PutM WireSize
P'.sequencePutWithSize [PutM WireSize
put'Size, PutM WireSize
put'Fields]
  wireGet :: FieldType -> Get NamePart
wireGet FieldType
ft'
   = case FieldType
ft' of
       FieldType
10 -> (WireTag -> NamePart -> Get NamePart) -> Get NamePart
forall message.
(Default message, ReflectDescriptor message) =>
(WireTag -> message -> Get message) -> Get message
P'.getBareMessageWith ((WireTag -> NamePart -> Get NamePart)
-> (WireTag -> NamePart -> Get NamePart)
-> WireTag
-> NamePart
-> Get NamePart
forall a.
(WireTag -> a -> Get a)
-> (WireTag -> a -> Get a) -> WireTag -> a -> Get a
P'.catch'Unknown' WireTag -> NamePart -> Get NamePart
forall a. UnknownMessage a => WireTag -> a -> Get a
P'.loadUnknown WireTag -> NamePart -> Get NamePart
update'Self)
       FieldType
11 -> (WireTag -> NamePart -> Get NamePart) -> Get NamePart
forall message.
(Default message, ReflectDescriptor message) =>
(WireTag -> message -> Get message) -> Get message
P'.getMessageWith ((WireTag -> NamePart -> Get NamePart)
-> (WireTag -> NamePart -> Get NamePart)
-> WireTag
-> NamePart
-> Get NamePart
forall a.
(WireTag -> a -> Get a)
-> (WireTag -> a -> Get a) -> WireTag -> a -> Get a
P'.catch'Unknown' WireTag -> NamePart -> Get NamePart
forall a. UnknownMessage a => WireTag -> a -> Get a
P'.loadUnknown WireTag -> NamePart -> Get NamePart
update'Self)
       FieldType
_ -> FieldType -> Get NamePart
forall a. Typeable a => FieldType -> Get a
P'.wireGetErr FieldType
ft'
    where
        update'Self :: WireTag -> NamePart -> Get NamePart
update'Self WireTag
wire'Tag NamePart
old'Self
         = case WireTag
wire'Tag of
             WireTag
10 -> (Utf8 -> NamePart) -> Get Utf8 -> Get NamePart
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude'.fmap (\ !Utf8
new'Field -> NamePart
old'Self{name_part :: Utf8
name_part = Utf8
new'Field}) (FieldType -> Get Utf8
forall b. Wire b => FieldType -> Get b
P'.wireGet FieldType
9)
             WireTag
16 -> (Bool -> NamePart) -> Get Bool -> Get NamePart
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude'.fmap (\ !Bool
new'Field -> NamePart
old'Self{is_extension :: Bool
is_extension = Bool
new'Field}) (FieldType -> Get Bool
forall b. Wire b => FieldType -> Get b
P'.wireGet FieldType
8)
             WireTag
_ -> let (FieldId
field'Number, WireType
wire'Type) = WireTag -> (FieldId, WireType)
P'.splitWireTag WireTag
wire'Tag in FieldId -> WireType -> NamePart -> Get NamePart
forall a.
(Typeable a, ReflectDescriptor a) =>
FieldId -> WireType -> a -> Get a
P'.unknown FieldId
field'Number WireType
wire'Type NamePart
old'Self

instance P'.MessageAPI msg' (msg' -> NamePart) NamePart where
  getVal :: msg' -> (msg' -> NamePart) -> NamePart
getVal msg'
m' msg' -> NamePart
f' = msg' -> NamePart
f' msg'
m'

instance P'.GPB NamePart

instance P'.ReflectDescriptor NamePart where
  getMessageInfo :: NamePart -> GetMessageInfo
getMessageInfo NamePart
_ = Set WireTag -> Set WireTag -> GetMessageInfo
P'.GetMessageInfo ([WireTag] -> Set WireTag
forall a. [a] -> Set a
P'.fromDistinctAscList [WireTag
10, WireTag
16]) ([WireTag] -> Set WireTag
forall a. [a] -> Set a
P'.fromDistinctAscList [WireTag
10, WireTag
16])
  reflectDescriptorInfo :: NamePart -> DescriptorInfo
reflectDescriptorInfo NamePart
_
   = String -> DescriptorInfo
forall a. Read a => String -> a
Prelude'.read
      String
"DescriptorInfo {descName = ProtoName {protobufName = FIName \".google.protobuf.UninterpretedOption.NamePart\", haskellPrefix = [MName \"Text\"], parentModule = [MName \"DescriptorProtos\",MName \"UninterpretedOption\"], baseName = MName \"NamePart\"}, descFilePath = [\"Text\",\"DescriptorProtos\",\"UninterpretedOption\",\"NamePart.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".google.protobuf.UninterpretedOption.NamePart.name_part\", haskellPrefix' = [MName \"Text\"], parentModule' = [MName \"DescriptorProtos\",MName \"UninterpretedOption\",MName \"NamePart\"], baseName' = FName \"name_part\", baseNamePrefix' = \"\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 10}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".google.protobuf.UninterpretedOption.NamePart.is_extension\", haskellPrefix' = [MName \"Text\"], parentModule' = [MName \"DescriptorProtos\",MName \"UninterpretedOption\",MName \"NamePart\"], baseName' = FName \"is_extension\", baseNamePrefix' = \"\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 16}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = True, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 8}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], descOneofs = fromList [], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = True, lazyFields = False, makeLenses = False, jsonInstances = False}"

instance P'.TextType NamePart where
  tellT :: String -> NamePart -> Output
tellT = String -> NamePart -> Output
forall a. TextMsg a => String -> a -> Output
P'.tellSubMessage
  getT :: String -> Parsec s () NamePart
getT = String -> Parsec s () NamePart
forall s a.
(Stream s Identity Char, TextMsg a) =>
String -> Parsec s () a
P'.getSubMessage

instance P'.TextMsg NamePart where
  textPut :: NamePart -> Output
textPut NamePart
msg
   = do
       String -> Utf8 -> Output
forall a. TextType a => String -> a -> Output
P'.tellT String
"name_part" (NamePart -> Utf8
name_part NamePart
msg)
       String -> Bool -> Output
forall a. TextType a => String -> a -> Output
P'.tellT String
"is_extension" (NamePart -> Bool
is_extension NamePart
msg)
  textGet :: Parsec s () NamePart
textGet
   = do
       [NamePart -> NamePart]
mods <- ParsecT s () Identity (NamePart -> NamePart)
-> ParsecT s () Identity ()
-> ParsecT s () Identity [NamePart -> NamePart]
forall s (m :: * -> *) t u a sep.
Stream s m t =>
ParsecT s u m a -> ParsecT s u m sep -> ParsecT s u m [a]
P'.sepEndBy ([ParsecT s () Identity (NamePart -> NamePart)]
-> ParsecT s () Identity (NamePart -> NamePart)
forall s (m :: * -> *) t u a.
Stream s m t =>
[ParsecT s u m a] -> ParsecT s u m a
P'.choice [ParsecT s () Identity (NamePart -> NamePart)
parse'name_part, ParsecT s () Identity (NamePart -> NamePart)
parse'is_extension]) ParsecT s () Identity ()
forall s (m :: * -> *) u. Stream s m Char => ParsecT s u m ()
P'.spaces
       NamePart -> Parsec s () NamePart
forall (m :: * -> *) a. Monad m => a -> m a
Prelude'.return ((NamePart -> (NamePart -> NamePart) -> NamePart)
-> NamePart -> [NamePart -> NamePart] -> NamePart
forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
Prelude'.foldl' (\ NamePart
v NamePart -> NamePart
f -> NamePart -> NamePart
f NamePart
v) NamePart
forall a. Default a => a
P'.defaultValue [NamePart -> NamePart]
mods)
    where
        parse'name_part :: ParsecT s () Identity (NamePart -> NamePart)
parse'name_part = (Utf8 -> NamePart -> NamePart)
-> ParsecT s () Identity Utf8
-> ParsecT s () Identity (NamePart -> NamePart)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude'.fmap (\ Utf8
v NamePart
o -> NamePart
o{name_part :: Utf8
name_part = Utf8
v}) (ParsecT s () Identity Utf8 -> ParsecT s () Identity Utf8
forall s u (m :: * -> *) a. ParsecT s u m a -> ParsecT s u m a
P'.try (String -> ParsecT s () Identity Utf8
forall a s.
(TextType a, Stream s Identity Char) =>
String -> Parsec s () a
P'.getT String
"name_part"))
        parse'is_extension :: ParsecT s () Identity (NamePart -> NamePart)
parse'is_extension = (Bool -> NamePart -> NamePart)
-> ParsecT s () Identity Bool
-> ParsecT s () Identity (NamePart -> NamePart)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude'.fmap (\ Bool
v NamePart
o -> NamePart
o{is_extension :: Bool
is_extension = Bool
v}) (ParsecT s () Identity Bool -> ParsecT s () Identity Bool
forall s u (m :: * -> *) a. ParsecT s u m a -> ParsecT s u m a
P'.try (String -> ParsecT s () Identity Bool
forall a s.
(TextType a, Stream s Identity Char) =>
String -> Parsec s () a
P'.getT String
"is_extension"))