proto3-suite-0.5.1: A higher-level API to the proto3-wire library
Safe HaskellNone
LanguageHaskell2010

Proto3.Suite

Description

Protocol Buffers v3 for Haskell

This package defines tools for working with protocol buffers version 3 in Haskell.

Specifically, it provides:

  • Low-level functions for encoding and decoding messages
  • Type classes for encoding and decoding messages, and instances for all wire formats identified in the specification
  • A higher-level approach to encoding and decoding, based on GHC.Generics
  • A way of creating .proto files from Haskell types.

See the Proto3.Suite.Tutorial module for more details.

Synopsis

Message Encoding/Decoding

toLazyByteString :: Message a => a -> ByteString Source #

Serialize a message as a lazy ByteString.

fromByteString :: Message a => ByteString -> Either ParseError a Source #

Parse any message that can be decoded.

fromB64 :: Message a => ByteString -> Either ParseError a Source #

As fromByteString, except the input bytestring is base64-encoded.

class Message a where Source #

This class captures those types which correspond to protocol buffer messages.

Minimal complete definition

Nothing

Methods

encodeMessage :: FieldNumber -> a -> MessageBuilder Source #

Encode a message

decodeMessage :: FieldNumber -> Parser RawMessage a Source #

Decode a message

dotProto :: Proxy# a -> [DotProtoField] Source #

Generate a .proto message from the type information.

Instances

Instances details
Message Bool Source # 
Instance details

Defined in Proto3.Suite.Class

Message Double Source # 
Instance details

Defined in Proto3.Suite.Class

Message Float Source # 
Instance details

Defined in Proto3.Suite.Class

Message Int32 Source # 
Instance details

Defined in Proto3.Suite.Class

Message Int64 Source # 
Instance details

Defined in Proto3.Suite.Class

Message Word32 Source # 
Instance details

Defined in Proto3.Suite.Class

Message Word64 Source # 
Instance details

Defined in Proto3.Suite.Class

Message ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

Message ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

Message Text Source # 
Instance details

Defined in Proto3.Suite.Class

Message Text Source # 
Instance details

Defined in Proto3.Suite.Class

Message Bar Source # 
Instance details

Defined in Proto3.Suite.Tutorial

Message Foo Source # 
Instance details

Defined in Proto3.Suite.Tutorial

Message Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

(MessageField k, MessageField v) => Message (k, v) Source # 
Instance details

Defined in Proto3.Suite.Class

class MessageField a where Source #

This class captures those types which can appear as message fields in the protocol buffers specification, i.e. Primitive types, or lists of Primitive types

Minimal complete definition

Nothing

Methods

encodeMessageField :: FieldNumber -> a -> MessageBuilder Source #

Encode a message field

decodeMessageField :: Parser RawField a Source #

Decode a message field

protoType :: Proxy# a -> DotProtoField Source #

Get the type which represents this type inside another message.

Instances

Instances details
MessageField Bool Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Double Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Float Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Int32 Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Int64 Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Word32 Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Word64 Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Text Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField Text Source # 
Instance details

Defined in Proto3.Suite.Class

(HasDefault a, Primitive a) => MessageField (ForceEmit a) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named a, Message a) => MessageField (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named a, Message a) => MessageField (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive a => MessageField (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Bool) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Double) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Float) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named e, ProtoEnum e) => MessageField (PackedVec (Enumerated e)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed (Fixed Int32))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed (Fixed Int64))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Fixed Word32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Fixed Word64)) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named e, ProtoEnum e) => MessageField (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

(Ord k, Primitive k, Named v, Message v, MessageField k) => MessageField (Map k (Nested v)) Source # 
Instance details

Defined in Proto3.Suite.Class

(Ord k, Primitive k, MessageField k, Primitive v, MessageField v) => MessageField (Map k v) Source # 
Instance details

Defined in Proto3.Suite.Class

(MessageField e, KnownSymbol comments) => MessageField (e // comments) Source # 
Instance details

Defined in Proto3.Suite.Class

class Primitive a where Source #

This class captures those types which correspond to primitives in the protocol buffers specification.

It should be possible to fully reconstruct values of these types from a single RawPrimitive. Notably, then, Nested is not Primitive even though it can be embedded, since a nested message may by split up over multiple embedded fields.

Minimal complete definition

encodePrimitive, decodePrimitive

Methods

encodePrimitive :: FieldNumber -> a -> MessageBuilder Source #

Encode a primitive value

decodePrimitive :: Parser RawPrimitive a Source #

Decode a primitive value

primType :: Proxy# a -> DotProtoPrimType Source #

Get the type which represents this type inside another message.

Instances

Instances details
Primitive Bool Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Double Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Float Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Int32 Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Int64 Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Word32 Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Word64 Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Text Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive Text Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive a => Primitive (ForceEmit a) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named e, ProtoEnum e) => Primitive (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

class HasDefault a where Source #

A class for types with default values per the protocol buffers spec.

Minimal complete definition

Nothing

Methods

def :: a Source #

The default value for this type.

default def :: (Generic a, GenericHasDefault (Rep a)) => a Source #

isDefault :: a -> Bool Source #

default isDefault :: Eq a => a -> Bool Source #

Instances

Instances details
HasDefault Bool Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Double Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Float Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Int Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Int32 Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Int64 Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Integer Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Word32 Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Word64 Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault ByteString Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Text Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Encoding Source #
>>> isDefault (def @E.Encoding)
True
Instance details

Defined in Proto3.Suite.JSONPB.Class

HasDefault Value Source #
>>> isDefault (def @A.Value)
True
Instance details

Defined in Proto3.Suite.JSONPB.Class

HasDefault Text Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

HasDefault (Maybe a) Source #

Used in generated records to represent an unwrapped Nested

Instance details

Defined in Proto3.Suite.Class

Methods

def :: Maybe a Source #

isDefault :: Maybe a -> Bool Source #

HasDefault (Vector a) Source #

Used in fields of generated records to represent an unwrapped PackedVec/UnpackedVec

Instance details

Defined in Proto3.Suite.Class

HasDefault a => HasDefault (ForceEmit a) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

ProtoEnum e => HasDefault (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Int32) Source #

Used in generated records to represent sfixed32

Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Int64) Source #

Used in generated records to represent sfixed64

Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Map k v) Source # 
Instance details

Defined in Proto3.Suite.Class

Methods

def :: Map k v Source #

isDefault :: Map k v -> Bool Source #

newtype FieldNumber #

A FieldNumber identifies a field inside a protobufs message.

This library makes no attempt to generate these automatically, or even make sure that field numbers are provided in increasing order. Such things are left to other, higher-level libraries.

Constructors

FieldNumber 

Instances

Instances details
Enum FieldNumber 
Instance details

Defined in Proto3.Wire.Types

Eq FieldNumber 
Instance details

Defined in Proto3.Wire.Types

Num FieldNumber 
Instance details

Defined in Proto3.Wire.Types

Ord FieldNumber 
Instance details

Defined in Proto3.Wire.Types

Show FieldNumber 
Instance details

Defined in Proto3.Wire.Types

Arbitrary FieldNumber 
Instance details

Defined in Proto3.Wire.Types

Hashable FieldNumber 
Instance details

Defined in Proto3.Wire.Types

NFData FieldNumber 
Instance details

Defined in Proto3.Wire.Types

Methods

rnf :: FieldNumber -> () #

Pretty FieldNumber Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

fieldNumber :: Word64 -> FieldNumber #

Create a FieldNumber given the (one-based) integer which would label the field in the corresponding .proto file.

Documentation

message :: (Message a, Named a) => Proxy# a -> DotProtoDefinition Source #

Generate metadata for a message type.

enum :: (Finite e, Named e) => Proxy# e -> DotProtoDefinition Source #

Generate metadata for an enum type.

data RenderingOptions Source #

Options for rendering a .proto file.

Constructors

RenderingOptions 

Fields

class Named a where Source #

This class captures those types whose names need to appear in .proto files.

It has a default implementation for any data type which is an instance of the Generic class, which will extract the name of the type constructor.

Minimal complete definition

Nothing

Methods

nameOf :: IsString string => Proxy# a -> string Source #

Get the name of a type constructor

default nameOf :: (IsString string, GenericNamed (Rep a)) => Proxy# a -> string Source #

Instances

Instances details
Named Shape Source # 
Instance details

Defined in Proto3.Suite.Tutorial

Methods

nameOf :: IsString string => Proxy# Shape -> string Source #

Named Bar Source # 
Instance details

Defined in Proto3.Suite.Tutorial

Methods

nameOf :: IsString string => Proxy# Bar -> string Source #

Named Foo Source # 
Instance details

Defined in Proto3.Suite.Tutorial

Methods

nameOf :: IsString string => Proxy# Foo -> string Source #

Named Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

Methods

nameOf :: IsString string => Proxy# Timestamp -> string Source #

class ProtoEnum a => Finite a where Source #

Enumerable types with finitely many values.

This class can be derived whenever a sum type is an instance of Generic, and only consists of zero-argument constructors. The derived instance should be compatible with ProtoEnum instances, in the sense that

map (fromJust . toProtoEnumMay . snd) enumerate

should enumerate all values of the type without runtime errors.

Minimal complete definition

Nothing

Methods

enumerate :: IsString string => Proxy# a -> [(string, Int32)] Source #

Enumerate values of a finite type, along with names of constructors.

default enumerate :: (IsString string, Generic a, GenericFinite (Rep a)) => Proxy# a -> [(string, Int32)] Source #

Instances

Instances details
Finite Shape Source # 
Instance details

Defined in Proto3.Suite.Tutorial

Methods

enumerate :: IsString string => Proxy# Shape -> [(string, Int32)] Source #

Wire Formats

newtype Fixed a Source #

Fixed provides a way to encode integers in the fixed-width wire formats.

Constructors

Fixed 

Fields

Instances

Instances details
Functor Fixed Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> Fixed a -> Fixed b #

(<$) :: a -> Fixed b -> Fixed a #

Foldable Fixed Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => Fixed m -> m #

foldMap :: Monoid m => (a -> m) -> Fixed a -> m #

foldMap' :: Monoid m => (a -> m) -> Fixed a -> m #

foldr :: (a -> b -> b) -> b -> Fixed a -> b #

foldr' :: (a -> b -> b) -> b -> Fixed a -> b #

foldl :: (b -> a -> b) -> b -> Fixed a -> b #

foldl' :: (b -> a -> b) -> b -> Fixed a -> b #

foldr1 :: (a -> a -> a) -> Fixed a -> a #

foldl1 :: (a -> a -> a) -> Fixed a -> a #

toList :: Fixed a -> [a] #

null :: Fixed a -> Bool #

length :: Fixed a -> Int #

elem :: Eq a => a -> Fixed a -> Bool #

maximum :: Ord a => Fixed a -> a #

minimum :: Ord a => Fixed a -> a #

sum :: Num a => Fixed a -> a #

product :: Num a => Fixed a -> a #

Traversable Fixed Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> Fixed a -> f (Fixed b) #

sequenceA :: Applicative f => Fixed (f a) -> f (Fixed a) #

mapM :: Monad m => (a -> m b) -> Fixed a -> m (Fixed b) #

sequence :: Monad m => Fixed (m a) -> m (Fixed a) #

Bounded a => Bounded (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

minBound :: Fixed a #

maxBound :: Fixed a #

Enum a => Enum (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

succ :: Fixed a -> Fixed a #

pred :: Fixed a -> Fixed a #

toEnum :: Int -> Fixed a #

fromEnum :: Fixed a -> Int #

enumFrom :: Fixed a -> [Fixed a] #

enumFromThen :: Fixed a -> Fixed a -> [Fixed a] #

enumFromTo :: Fixed a -> Fixed a -> [Fixed a] #

enumFromThenTo :: Fixed a -> Fixed a -> Fixed a -> [Fixed a] #

Eq a => Eq (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(==) :: Fixed a -> Fixed a -> Bool #

(/=) :: Fixed a -> Fixed a -> Bool #

Num a => Num (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(+) :: Fixed a -> Fixed a -> Fixed a #

(-) :: Fixed a -> Fixed a -> Fixed a #

(*) :: Fixed a -> Fixed a -> Fixed a #

negate :: Fixed a -> Fixed a #

abs :: Fixed a -> Fixed a #

signum :: Fixed a -> Fixed a #

fromInteger :: Integer -> Fixed a #

Ord a => Ord (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

compare :: Fixed a -> Fixed a -> Ordering #

(<) :: Fixed a -> Fixed a -> Bool #

(<=) :: Fixed a -> Fixed a -> Bool #

(>) :: Fixed a -> Fixed a -> Bool #

(>=) :: Fixed a -> Fixed a -> Bool #

max :: Fixed a -> Fixed a -> Fixed a #

min :: Fixed a -> Fixed a -> Fixed a #

Show a => Show (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

showsPrec :: Int -> Fixed a -> ShowS #

show :: Fixed a -> String #

showList :: [Fixed a] -> ShowS #

Generic (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Rep (Fixed a) :: Type -> Type #

Methods

from :: Fixed a -> Rep (Fixed a) x #

to :: Rep (Fixed a) x -> Fixed a #

Arbitrary a => Arbitrary (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

arbitrary :: Gen (Fixed a) #

shrink :: Fixed a -> [Fixed a] #

NFData a => NFData (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: Fixed a -> () #

ToSchema (Fixed Int32) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (Fixed Int64) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

MessageField (PackedVec (Signed (Fixed Int32))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed (Fixed Int64))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Fixed Word32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Fixed Word64)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Int32) Source #

Used in generated records to represent sfixed32

Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Int64) Source #

Used in generated records to represent sfixed64

Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

FromJSONPB (Fixed Int32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB (Fixed Int64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Int32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Int64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

type Rep (Fixed a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Rep (Fixed a) = D1 ('MetaData "Fixed" "Proto3.Suite.Types" "proto3-suite-0.5.1-KgIMs0pOzZ0CPM0GxpZWzf" 'True) (C1 ('MetaCons "Fixed" 'PrefixI 'True) (S1 ('MetaSel ('Just "fixed") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype Signed a Source #

Signed provides a way to encode integers in the signed wire formats.

Constructors

Signed 

Fields

Instances

Instances details
Functor Signed Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> Signed a -> Signed b #

(<$) :: a -> Signed b -> Signed a #

Foldable Signed Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => Signed m -> m #

foldMap :: Monoid m => (a -> m) -> Signed a -> m #

foldMap' :: Monoid m => (a -> m) -> Signed a -> m #

foldr :: (a -> b -> b) -> b -> Signed a -> b #

foldr' :: (a -> b -> b) -> b -> Signed a -> b #

foldl :: (b -> a -> b) -> b -> Signed a -> b #

foldl' :: (b -> a -> b) -> b -> Signed a -> b #

foldr1 :: (a -> a -> a) -> Signed a -> a #

foldl1 :: (a -> a -> a) -> Signed a -> a #

toList :: Signed a -> [a] #

null :: Signed a -> Bool #

length :: Signed a -> Int #

elem :: Eq a => a -> Signed a -> Bool #

maximum :: Ord a => Signed a -> a #

minimum :: Ord a => Signed a -> a #

sum :: Num a => Signed a -> a #

product :: Num a => Signed a -> a #

Traversable Signed Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> Signed a -> f (Signed b) #

sequenceA :: Applicative f => Signed (f a) -> f (Signed a) #

mapM :: Monad m => (a -> m b) -> Signed a -> m (Signed b) #

sequence :: Monad m => Signed (m a) -> m (Signed a) #

Bounded a => Bounded (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

minBound :: Signed a #

maxBound :: Signed a #

Eq a => Eq (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(==) :: Signed a -> Signed a -> Bool #

(/=) :: Signed a -> Signed a -> Bool #

Num a => Num (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(+) :: Signed a -> Signed a -> Signed a #

(-) :: Signed a -> Signed a -> Signed a #

(*) :: Signed a -> Signed a -> Signed a #

negate :: Signed a -> Signed a #

abs :: Signed a -> Signed a #

signum :: Signed a -> Signed a #

fromInteger :: Integer -> Signed a #

Ord a => Ord (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

compare :: Signed a -> Signed a -> Ordering #

(<) :: Signed a -> Signed a -> Bool #

(<=) :: Signed a -> Signed a -> Bool #

(>) :: Signed a -> Signed a -> Bool #

(>=) :: Signed a -> Signed a -> Bool #

max :: Signed a -> Signed a -> Signed a #

min :: Signed a -> Signed a -> Signed a #

Show a => Show (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

showsPrec :: Int -> Signed a -> ShowS #

show :: Signed a -> String #

showList :: [Signed a] -> ShowS #

Generic (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Rep (Signed a) :: Type -> Type #

Methods

from :: Signed a -> Rep (Signed a) x #

to :: Rep (Signed a) x -> Signed a #

Arbitrary a => Arbitrary (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

arbitrary :: Gen (Signed a) #

shrink :: Signed a -> [Signed a] #

NFData a => NFData (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: Signed a -> () #

MessageField (PackedVec (Signed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed (Fixed Int32))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed (Fixed Int64))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

Primitive (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed (Fixed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Signed (Fixed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

type Rep (Signed a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Rep (Signed a) = D1 ('MetaData "Signed" "Proto3.Suite.Types" "proto3-suite-0.5.1-KgIMs0pOzZ0CPM0GxpZWzf" 'True) (C1 ('MetaCons "Signed" 'PrefixI 'True) (S1 ('MetaSel ('Just "signed") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

newtype Enumerated a Source #

Enumerated lifts any type with an IsEnum instance so that it can be encoded with HasEncoding.

Constructors

Enumerated 

Fields

Instances

Instances details
Functor Enumerated Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> Enumerated a -> Enumerated b #

(<$) :: a -> Enumerated b -> Enumerated a #

Foldable Enumerated Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => Enumerated m -> m #

foldMap :: Monoid m => (a -> m) -> Enumerated a -> m #

foldMap' :: Monoid m => (a -> m) -> Enumerated a -> m #

foldr :: (a -> b -> b) -> b -> Enumerated a -> b #

foldr' :: (a -> b -> b) -> b -> Enumerated a -> b #

foldl :: (b -> a -> b) -> b -> Enumerated a -> b #

foldl' :: (b -> a -> b) -> b -> Enumerated a -> b #

foldr1 :: (a -> a -> a) -> Enumerated a -> a #

foldl1 :: (a -> a -> a) -> Enumerated a -> a #

toList :: Enumerated a -> [a] #

null :: Enumerated a -> Bool #

length :: Enumerated a -> Int #

elem :: Eq a => a -> Enumerated a -> Bool #

maximum :: Ord a => Enumerated a -> a #

minimum :: Ord a => Enumerated a -> a #

sum :: Num a => Enumerated a -> a #

product :: Num a => Enumerated a -> a #

Traversable Enumerated Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> Enumerated a -> f (Enumerated b) #

sequenceA :: Applicative f => Enumerated (f a) -> f (Enumerated a) #

mapM :: Monad m => (a -> m b) -> Enumerated a -> m (Enumerated b) #

sequence :: Monad m => Enumerated (m a) -> m (Enumerated a) #

Eq a => Eq (Enumerated a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(==) :: Enumerated a -> Enumerated a -> Bool #

(/=) :: Enumerated a -> Enumerated a -> Bool #

Ord a => Ord (Enumerated a) Source # 
Instance details

Defined in Proto3.Suite.Types

Show a => Show (Enumerated a) Source # 
Instance details

Defined in Proto3.Suite.Types

Generic (Enumerated a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Rep (Enumerated a) :: Type -> Type #

Methods

from :: Enumerated a -> Rep (Enumerated a) x #

to :: Rep (Enumerated a) x -> Enumerated a #

ProtoEnum a => Arbitrary (Enumerated a) Source # 
Instance details

Defined in Proto3.Suite.Types

NFData a => NFData (Enumerated a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: Enumerated a -> () #

(Finite e, Named e) => ToSchema (Enumerated e) Source #

JSONPB schemas for protobuf enumerations

Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

(Named e, ProtoEnum e) => MessageField (PackedVec (Enumerated e)) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named e, ProtoEnum e) => MessageField (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named e, ProtoEnum e) => Primitive (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.Class

ProtoEnum e => HasDefault (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.Class

(ProtoEnum e, FromJSONPB e) => FromJSONPB (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB e => ToJSONPB (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

type Rep (Enumerated a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Rep (Enumerated a) = D1 ('MetaData "Enumerated" "Proto3.Suite.Types" "proto3-suite-0.5.1-KgIMs0pOzZ0CPM0GxpZWzf" 'True) (C1 ('MetaCons "Enumerated" 'PrefixI 'True) (S1 ('MetaSel ('Just "enumerated") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either Int32 a))))

newtype Nested a Source #

Nested provides a way to nest protobuf messages within protobuf messages.

Constructors

Nested 

Fields

Instances

Instances details
Monad Nested Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(>>=) :: Nested a -> (a -> Nested b) -> Nested b #

(>>) :: Nested a -> Nested b -> Nested b #

return :: a -> Nested a #

Functor Nested Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> Nested a -> Nested b #

(<$) :: a -> Nested b -> Nested a #

Applicative Nested Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

pure :: a -> Nested a #

(<*>) :: Nested (a -> b) -> Nested a -> Nested b #

liftA2 :: (a -> b -> c) -> Nested a -> Nested b -> Nested c #

(*>) :: Nested a -> Nested b -> Nested b #

(<*) :: Nested a -> Nested b -> Nested a #

Foldable Nested Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => Nested m -> m #

foldMap :: Monoid m => (a -> m) -> Nested a -> m #

foldMap' :: Monoid m => (a -> m) -> Nested a -> m #

foldr :: (a -> b -> b) -> b -> Nested a -> b #

foldr' :: (a -> b -> b) -> b -> Nested a -> b #

foldl :: (b -> a -> b) -> b -> Nested a -> b #

foldl' :: (b -> a -> b) -> b -> Nested a -> b #

foldr1 :: (a -> a -> a) -> Nested a -> a #

foldl1 :: (a -> a -> a) -> Nested a -> a #

toList :: Nested a -> [a] #

null :: Nested a -> Bool #

length :: Nested a -> Int #

elem :: Eq a => a -> Nested a -> Bool #

maximum :: Ord a => Nested a -> a #

minimum :: Ord a => Nested a -> a #

sum :: Num a => Nested a -> a #

product :: Num a => Nested a -> a #

Traversable Nested Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> Nested a -> f (Nested b) #

sequenceA :: Applicative f => Nested (f a) -> f (Nested a) #

mapM :: Monad m => (a -> m b) -> Nested a -> m (Nested b) #

sequence :: Monad m => Nested (m a) -> m (Nested a) #

Alternative Nested Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

empty :: Nested a #

(<|>) :: Nested a -> Nested a -> Nested a #

some :: Nested a -> Nested [a] #

many :: Nested a -> Nested [a] #

Eq a => Eq (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(==) :: Nested a -> Nested a -> Bool #

(/=) :: Nested a -> Nested a -> Bool #

Ord a => Ord (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

compare :: Nested a -> Nested a -> Ordering #

(<) :: Nested a -> Nested a -> Bool #

(<=) :: Nested a -> Nested a -> Bool #

(>) :: Nested a -> Nested a -> Bool #

(>=) :: Nested a -> Nested a -> Bool #

max :: Nested a -> Nested a -> Nested a #

min :: Nested a -> Nested a -> Nested a #

Show a => Show (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

showsPrec :: Int -> Nested a -> ShowS #

show :: Nested a -> String #

showList :: [Nested a] -> ShowS #

Generic (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Rep (Nested a) :: Type -> Type #

Methods

from :: Nested a -> Rep (Nested a) x #

to :: Rep (Nested a) x -> Nested a #

Semigroup a => Semigroup (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(<>) :: Nested a -> Nested a -> Nested a #

sconcat :: NonEmpty (Nested a) -> Nested a #

stimes :: Integral b => b -> Nested a -> Nested a #

Semigroup a => Monoid (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

mempty :: Nested a #

mappend :: Nested a -> Nested a -> Nested a #

mconcat :: [Nested a] -> Nested a #

Arbitrary a => Arbitrary (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

arbitrary :: Gen (Nested a) #

shrink :: Nested a -> [Nested a] #

NFData a => NFData (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: Nested a -> () #

(Named a, Message a) => MessageField (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Class

(Ord k, Primitive k, Named v, Message v, MessageField k) => MessageField (Map k (Nested v)) Source # 
Instance details

Defined in Proto3.Suite.Class

type Rep (Nested a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Rep (Nested a) = D1 ('MetaData "Nested" "Proto3.Suite.Types" "proto3-suite-0.5.1-KgIMs0pOzZ0CPM0GxpZWzf" 'True) (C1 ('MetaCons "Nested" 'PrefixI 'True) (S1 ('MetaSel ('Just "nested") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe a))))

newtype UnpackedVec a Source #

Constructors

UnpackedVec 

Fields

Instances

Instances details
Functor UnpackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> UnpackedVec a -> UnpackedVec b #

(<$) :: a -> UnpackedVec b -> UnpackedVec a #

Applicative UnpackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

pure :: a -> UnpackedVec a #

(<*>) :: UnpackedVec (a -> b) -> UnpackedVec a -> UnpackedVec b #

liftA2 :: (a -> b -> c) -> UnpackedVec a -> UnpackedVec b -> UnpackedVec c #

(*>) :: UnpackedVec a -> UnpackedVec b -> UnpackedVec b #

(<*) :: UnpackedVec a -> UnpackedVec b -> UnpackedVec a #

Foldable UnpackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => UnpackedVec m -> m #

foldMap :: Monoid m => (a -> m) -> UnpackedVec a -> m #

foldMap' :: Monoid m => (a -> m) -> UnpackedVec a -> m #

foldr :: (a -> b -> b) -> b -> UnpackedVec a -> b #

foldr' :: (a -> b -> b) -> b -> UnpackedVec a -> b #

foldl :: (b -> a -> b) -> b -> UnpackedVec a -> b #

foldl' :: (b -> a -> b) -> b -> UnpackedVec a -> b #

foldr1 :: (a -> a -> a) -> UnpackedVec a -> a #

foldl1 :: (a -> a -> a) -> UnpackedVec a -> a #

toList :: UnpackedVec a -> [a] #

null :: UnpackedVec a -> Bool #

length :: UnpackedVec a -> Int #

elem :: Eq a => a -> UnpackedVec a -> Bool #

maximum :: Ord a => UnpackedVec a -> a #

minimum :: Ord a => UnpackedVec a -> a #

sum :: Num a => UnpackedVec a -> a #

product :: Num a => UnpackedVec a -> a #

Traversable UnpackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> UnpackedVec a -> f (UnpackedVec b) #

sequenceA :: Applicative f => UnpackedVec (f a) -> f (UnpackedVec a) #

mapM :: Monad m => (a -> m b) -> UnpackedVec a -> m (UnpackedVec b) #

sequence :: Monad m => UnpackedVec (m a) -> m (UnpackedVec a) #

Alternative UnpackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

IsList (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Item (UnpackedVec a) #

Eq a => Eq (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Ord a => Ord (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Show a => Show (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Semigroup (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Monoid (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Arbitrary a => Arbitrary (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

NFData a => NFData (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: UnpackedVec a -> () #

Primitive a => MessageField (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

type Item (UnpackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Item (UnpackedVec a) = a

newtype PackedVec a Source #

PackedVec provides a way to encode packed lists of basic protobuf types into the wire format.

Constructors

PackedVec 

Fields

Instances

Instances details
Functor PackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> PackedVec a -> PackedVec b #

(<$) :: a -> PackedVec b -> PackedVec a #

Applicative PackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

pure :: a -> PackedVec a #

(<*>) :: PackedVec (a -> b) -> PackedVec a -> PackedVec b #

liftA2 :: (a -> b -> c) -> PackedVec a -> PackedVec b -> PackedVec c #

(*>) :: PackedVec a -> PackedVec b -> PackedVec b #

(<*) :: PackedVec a -> PackedVec b -> PackedVec a #

Foldable PackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => PackedVec m -> m #

foldMap :: Monoid m => (a -> m) -> PackedVec a -> m #

foldMap' :: Monoid m => (a -> m) -> PackedVec a -> m #

foldr :: (a -> b -> b) -> b -> PackedVec a -> b #

foldr' :: (a -> b -> b) -> b -> PackedVec a -> b #

foldl :: (b -> a -> b) -> b -> PackedVec a -> b #

foldl' :: (b -> a -> b) -> b -> PackedVec a -> b #

foldr1 :: (a -> a -> a) -> PackedVec a -> a #

foldl1 :: (a -> a -> a) -> PackedVec a -> a #

toList :: PackedVec a -> [a] #

null :: PackedVec a -> Bool #

length :: PackedVec a -> Int #

elem :: Eq a => a -> PackedVec a -> Bool #

maximum :: Ord a => PackedVec a -> a #

minimum :: Ord a => PackedVec a -> a #

sum :: Num a => PackedVec a -> a #

product :: Num a => PackedVec a -> a #

Traversable PackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> PackedVec a -> f (PackedVec b) #

sequenceA :: Applicative f => PackedVec (f a) -> f (PackedVec a) #

mapM :: Monad m => (a -> m b) -> PackedVec a -> m (PackedVec b) #

sequence :: Monad m => PackedVec (m a) -> m (PackedVec a) #

Alternative PackedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

empty :: PackedVec a #

(<|>) :: PackedVec a -> PackedVec a -> PackedVec a #

some :: PackedVec a -> PackedVec [a] #

many :: PackedVec a -> PackedVec [a] #

IsList (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Item (PackedVec a) #

Methods

fromList :: [Item (PackedVec a)] -> PackedVec a #

fromListN :: Int -> [Item (PackedVec a)] -> PackedVec a #

toList :: PackedVec a -> [Item (PackedVec a)] #

Eq a => Eq (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(==) :: PackedVec a -> PackedVec a -> Bool #

(/=) :: PackedVec a -> PackedVec a -> Bool #

Ord a => Ord (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Show a => Show (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Semigroup (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(<>) :: PackedVec a -> PackedVec a -> PackedVec a #

sconcat :: NonEmpty (PackedVec a) -> PackedVec a #

stimes :: Integral b => b -> PackedVec a -> PackedVec a #

Monoid (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Arbitrary a => Arbitrary (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

arbitrary :: Gen (PackedVec a) #

shrink :: PackedVec a -> [PackedVec a] #

NFData a => NFData (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: PackedVec a -> () #

MessageField (PackedVec Bool) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Double) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Float) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Int32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Int64) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Word32) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec Word64) Source # 
Instance details

Defined in Proto3.Suite.Class

(Named e, ProtoEnum e) => MessageField (PackedVec (Enumerated e)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed Int32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed Int64)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed (Fixed Int32))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Signed (Fixed Int64))) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Fixed Word32)) Source # 
Instance details

Defined in Proto3.Suite.Class

MessageField (PackedVec (Fixed Word64)) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

type Item (PackedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Item (PackedVec a) = a

newtype NestedVec a Source #

Constructors

NestedVec 

Fields

Instances

Instances details
Functor NestedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> NestedVec a -> NestedVec b #

(<$) :: a -> NestedVec b -> NestedVec a #

Applicative NestedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

pure :: a -> NestedVec a #

(<*>) :: NestedVec (a -> b) -> NestedVec a -> NestedVec b #

liftA2 :: (a -> b -> c) -> NestedVec a -> NestedVec b -> NestedVec c #

(*>) :: NestedVec a -> NestedVec b -> NestedVec b #

(<*) :: NestedVec a -> NestedVec b -> NestedVec a #

Foldable NestedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => NestedVec m -> m #

foldMap :: Monoid m => (a -> m) -> NestedVec a -> m #

foldMap' :: Monoid m => (a -> m) -> NestedVec a -> m #

foldr :: (a -> b -> b) -> b -> NestedVec a -> b #

foldr' :: (a -> b -> b) -> b -> NestedVec a -> b #

foldl :: (b -> a -> b) -> b -> NestedVec a -> b #

foldl' :: (b -> a -> b) -> b -> NestedVec a -> b #

foldr1 :: (a -> a -> a) -> NestedVec a -> a #

foldl1 :: (a -> a -> a) -> NestedVec a -> a #

toList :: NestedVec a -> [a] #

null :: NestedVec a -> Bool #

length :: NestedVec a -> Int #

elem :: Eq a => a -> NestedVec a -> Bool #

maximum :: Ord a => NestedVec a -> a #

minimum :: Ord a => NestedVec a -> a #

sum :: Num a => NestedVec a -> a #

product :: Num a => NestedVec a -> a #

Traversable NestedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> NestedVec a -> f (NestedVec b) #

sequenceA :: Applicative f => NestedVec (f a) -> f (NestedVec a) #

mapM :: Monad m => (a -> m b) -> NestedVec a -> m (NestedVec b) #

sequence :: Monad m => NestedVec (m a) -> m (NestedVec a) #

Alternative NestedVec Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

empty :: NestedVec a #

(<|>) :: NestedVec a -> NestedVec a -> NestedVec a #

some :: NestedVec a -> NestedVec [a] #

many :: NestedVec a -> NestedVec [a] #

IsList (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Item (NestedVec a) #

Methods

fromList :: [Item (NestedVec a)] -> NestedVec a #

fromListN :: Int -> [Item (NestedVec a)] -> NestedVec a #

toList :: NestedVec a -> [Item (NestedVec a)] #

Eq a => Eq (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(==) :: NestedVec a -> NestedVec a -> Bool #

(/=) :: NestedVec a -> NestedVec a -> Bool #

Ord a => Ord (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Show a => Show (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Semigroup (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(<>) :: NestedVec a -> NestedVec a -> NestedVec a #

sconcat :: NonEmpty (NestedVec a) -> NestedVec a #

stimes :: Integral b => b -> NestedVec a -> NestedVec a #

Monoid (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Arbitrary a => Arbitrary (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

arbitrary :: Gen (NestedVec a) #

shrink :: NestedVec a -> [NestedVec a] #

NFData a => NFData (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: NestedVec a -> () #

(Named a, Message a) => MessageField (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

HasDefault (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Class

type Item (NestedVec a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Item (NestedVec a) = a

newtype Commented (comment :: Symbol) a Source #

Commented provides a way to add comments to generated .proto files.

Constructors

Commented 

Fields

Instances

Instances details
Functor (Commented comment) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fmap :: (a -> b) -> Commented comment a -> Commented comment b #

(<$) :: a -> Commented comment b -> Commented comment a #

Foldable (Commented comment) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

fold :: Monoid m => Commented comment m -> m #

foldMap :: Monoid m => (a -> m) -> Commented comment a -> m #

foldMap' :: Monoid m => (a -> m) -> Commented comment a -> m #

foldr :: (a -> b -> b) -> b -> Commented comment a -> b #

foldr' :: (a -> b -> b) -> b -> Commented comment a -> b #

foldl :: (b -> a -> b) -> b -> Commented comment a -> b #

foldl' :: (b -> a -> b) -> b -> Commented comment a -> b #

foldr1 :: (a -> a -> a) -> Commented comment a -> a #

foldl1 :: (a -> a -> a) -> Commented comment a -> a #

toList :: Commented comment a -> [a] #

null :: Commented comment a -> Bool #

length :: Commented comment a -> Int #

elem :: Eq a => a -> Commented comment a -> Bool #

maximum :: Ord a => Commented comment a -> a #

minimum :: Ord a => Commented comment a -> a #

sum :: Num a => Commented comment a -> a #

product :: Num a => Commented comment a -> a #

Traversable (Commented comment) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

traverse :: Applicative f => (a -> f b) -> Commented comment a -> f (Commented comment b) #

sequenceA :: Applicative f => Commented comment (f a) -> f (Commented comment a) #

mapM :: Monad m => (a -> m b) -> Commented comment a -> m (Commented comment b) #

sequence :: Monad m => Commented comment (m a) -> m (Commented comment a) #

Eq a => Eq (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(==) :: Commented comment a -> Commented comment a -> Bool #

(/=) :: Commented comment a -> Commented comment a -> Bool #

Ord a => Ord (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

compare :: Commented comment a -> Commented comment a -> Ordering #

(<) :: Commented comment a -> Commented comment a -> Bool #

(<=) :: Commented comment a -> Commented comment a -> Bool #

(>) :: Commented comment a -> Commented comment a -> Bool #

(>=) :: Commented comment a -> Commented comment a -> Bool #

max :: Commented comment a -> Commented comment a -> Commented comment a #

min :: Commented comment a -> Commented comment a -> Commented comment a #

Show a => Show (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

showsPrec :: Int -> Commented comment a -> ShowS #

show :: Commented comment a -> String #

showList :: [Commented comment a] -> ShowS #

Generic (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Associated Types

type Rep (Commented comment a) :: Type -> Type #

Methods

from :: Commented comment a -> Rep (Commented comment a) x #

to :: Rep (Commented comment a) x -> Commented comment a #

Semigroup a => Semigroup (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

(<>) :: Commented comment a -> Commented comment a -> Commented comment a #

sconcat :: NonEmpty (Commented comment a) -> Commented comment a #

stimes :: Integral b => b -> Commented comment a -> Commented comment a #

Monoid a => Monoid (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

mempty :: Commented comment a #

mappend :: Commented comment a -> Commented comment a -> Commented comment a #

mconcat :: [Commented comment a] -> Commented comment a #

Arbitrary a => Arbitrary (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

arbitrary :: Gen (Commented comment a) #

shrink :: Commented comment a -> [Commented comment a] #

NFData a => NFData (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

Methods

rnf :: Commented comment a -> () #

(MessageField e, KnownSymbol comments) => MessageField (e // comments) Source # 
Instance details

Defined in Proto3.Suite.Class

type Rep (Commented comment a) Source # 
Instance details

Defined in Proto3.Suite.Types

type Rep (Commented comment a) = D1 ('MetaData "Commented" "Proto3.Suite.Types" "proto3-suite-0.5.1-KgIMs0pOzZ0CPM0GxpZWzf" 'True) (C1 ('MetaCons "Commented" 'PrefixI 'True) (S1 ('MetaSel ('Just "unCommented") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

type (//) a (comment :: Symbol) = Commented comment a Source #

A type operator synonym for Commented, so that we can write C-style comments on fields.

AST