{-# LANGUAGE BangPatterns, DeriveDataTypeable, DeriveGeneric, FlexibleInstances, MultiParamTypeClasses #-}
{-# OPTIONS_GHC  -fno-warn-unused-imports #-}
module Text.DescriptorProtos.UninterpretedOption.NamePart (NamePart(..)) where
import Prelude ((+), (/))
import qualified Prelude 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)
   = Utf8 -> Bool -> UnknownField -> NamePart
NamePart (Utf8 -> Utf8 -> Utf8
forall a. Mergeable a => a -> a -> a
P'.mergeAppend Utf8
x'1 Utf8
y'1) (Bool -> Bool -> Bool
forall a. Mergeable a => a -> a -> a
P'.mergeAppend Bool
x'2 Bool
y'2) (UnknownField -> UnknownField -> UnknownField
forall a. Mergeable a => a -> a -> a
P'.mergeAppend UnknownField
x'3 UnknownField
y'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
forall a.
UnknownMessage a =>
(WireTag -> a -> Get a) -> WireTag -> a -> Get a
P'.catch'Unknown 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
forall a.
UnknownMessage a =>
(WireTag -> a -> Get a) -> WireTag -> a -> Get a
P'.catch'Unknown 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}"

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
         = ParsecT s () Identity (NamePart -> NamePart)
-> ParsecT s () Identity (NamePart -> NamePart)
forall s u (m :: * -> *) a. ParsecT s u m a -> ParsecT s u m a
P'.try
            (do
               Utf8
v <- String -> Parsec s () Utf8
forall a s.
(TextType a, Stream s Identity Char) =>
String -> Parsec s () a
P'.getT String
"name_part"
               (NamePart -> NamePart)
-> ParsecT s () Identity (NamePart -> NamePart)
forall (m :: * -> *) a. Monad m => a -> m a
Prelude'.return (\ NamePart
o -> NamePart
o{name_part :: Utf8
name_part = Utf8
v}))
        parse'is_extension :: ParsecT s () Identity (NamePart -> NamePart)
parse'is_extension
         = ParsecT s () Identity (NamePart -> NamePart)
-> ParsecT s () Identity (NamePart -> NamePart)
forall s u (m :: * -> *) a. ParsecT s u m a -> ParsecT s u m a
P'.try
            (do
               Bool
v <- String -> Parsec s () Bool
forall a s.
(TextType a, Stream s Identity Char) =>
String -> Parsec s () a
P'.getT String
"is_extension"
               (NamePart -> NamePart)
-> ParsecT s () Identity (NamePart -> NamePart)
forall (m :: * -> *) a. Monad m => a -> m a
Prelude'.return (\ NamePart
o -> NamePart
o{is_extension :: Bool
is_extension = Bool
v}))