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

Proto3.Suite.DotProto.AST

Contents

Description

Fairly straightforward AST encoding of the .proto grammar

Synopsis

Types

newtype FieldName Source #

The name of some field

Constructors

FieldName 

Fields

data DotProtoImportQualifier Source #

Instances

Instances details
Eq DotProtoImportQualifier Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Ord DotProtoImportQualifier Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Show DotProtoImportQualifier Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Arbitrary DotProtoImportQualifier Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Pretty DotProtoImportQualifier Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

data DotProtoOption Source #

An option id/value pair, can be attached to many types of statements

data DotProtoMeta Source #

Tracks misc metadata about the AST

Constructors

DotProtoMeta 

Fields

  • metaModulePath :: Path

    The "module path" associated with the .proto file from which this AST was parsed. The "module path" is derived from the `--includeDir`-relative .proto filename passed to parseProtoFile. See toModulePath for details on how module path values are constructed. See modulePathModName to see how it is used during code generation.

data DotProto Source #

This data structure represents a .proto file The actual source order of protobuf statements isn't meaningful so statements are sorted by type during parsing. A .proto file with more than one package declaration is considered invalid.

Instances

Instances details
Eq DotProto Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Show DotProto Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Arbitrary DotProto Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

data DotProtoValue Source #

Matches the definition of constant in the proto3 language spec These are only used as rvalues

data Packing Source #

Constructors

PackedField 
UnpackedField 

Instances

Instances details
Eq Packing Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Methods

(==) :: Packing -> Packing -> Bool #

(/=) :: Packing -> Packing -> Bool #

Show Packing Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Arbitrary Packing Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

newtype Path Source #

Constructors

Path 

Instances

Instances details
Eq Path Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Methods

(==) :: Path -> Path -> Bool #

(/=) :: Path -> Path -> Bool #

Ord Path Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Methods

compare :: Path -> Path -> Ordering #

(<) :: Path -> Path -> Bool #

(<=) :: Path -> Path -> Bool #

(>) :: Path -> Path -> Bool #

(>=) :: Path -> Path -> Bool #

max :: Path -> Path -> Path #

min :: Path -> Path -> Path #

Show Path Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Methods

showsPrec :: Int -> Path -> ShowS #

show :: Path -> String #

showList :: [Path] -> ShowS #

data DotProtoType Source #

This type is an almagamation of the modifiers used in types. It corresponds to a syntax role but not a semantic role, not all modifiers are meaningful in every type context.

data Streaming Source #

Constructors

Streaming 
NonStreaming 

Instances

Instances details
Eq Streaming Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Show Streaming Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Arbitrary Streaming Source # 
Instance details

Defined in Proto3.Suite.DotProto.AST

Pretty Streaming Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering