proto3-suite-0.4.2: A low level library for writing out data in the Protocol Buffers wire format
Safe HaskellNone
LanguageHaskell2010

Proto3.Suite.DotProto.Rendering

Description

This module provides types and functions to generate .proto files.

Synopsis

Documentation

renderDotProto :: RenderingOptions -> DotProto -> Doc Source #

Traverses a DotProto AST and generates a .proto file from it

defRenderingOptions :: RenderingOptions Source #

Default rendering options.

defSelectorName :: DotProtoIdentifier -> DotProtoIdentifier -> FieldNumber -> Doc Source #

The default choice of field name for a selector.

defEnumMemberName :: DotProtoIdentifier -> DotProtoIdentifier -> Doc Source #

The default choice of enum member name for an enum

toProtoFile :: RenderingOptions -> DotProto -> String Source #

Render protobufs metadata as a .proto file stringy

toProtoFileDef :: DotProto -> String Source #

Render protobufs metadata as a .proto file string, using the default rendering options.

data RenderingOptions Source #

Options for rendering a .proto file.

Constructors

RenderingOptions 

Fields

class Pretty a where #

Pretty printing class. The precedence level is used in a similar way as in the Show class. Minimal complete definition is either pPrintPrec or pPrint.

Minimal complete definition

pPrintPrec | pPrint

Methods

pPrintPrec :: PrettyLevel -> Rational -> a -> Doc #

pPrint :: a -> Doc #

pPrintList :: PrettyLevel -> [a] -> Doc #

Instances

Instances details
Pretty Bool 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Char 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Double 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Float 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Int 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Integer 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Ordering 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty () 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> () -> Doc #

pPrint :: () -> Doc #

pPrintList :: PrettyLevel -> [()] -> Doc #

Pretty FieldNumber Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoReservedField Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoServicePart Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty Streaming Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoType Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoPrimType Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoValue Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoOption Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoPackageSpec Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoImportQualifier Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoImport Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty DotProtoIdentifier Source # 
Instance details

Defined in Proto3.Suite.DotProto.Rendering

Pretty a => Pretty [a] 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> [a] -> Doc #

pPrint :: [a] -> Doc #

pPrintList :: PrettyLevel -> [[a]] -> Doc #

Pretty a => Pretty (Maybe a) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

(Pretty a, Pretty b) => Pretty (Either a b) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> Either a b -> Doc #

pPrint :: Either a b -> Doc #

pPrintList :: PrettyLevel -> [Either a b] -> Doc #

(Pretty a, Pretty b) => Pretty (a, b) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b) -> Doc #

pPrint :: (a, b) -> Doc #

pPrintList :: PrettyLevel -> [(a, b)] -> Doc #

(Pretty a, Pretty b, Pretty c) => Pretty (a, b, c) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c) -> Doc #

pPrint :: (a, b, c) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d) => Pretty (a, b, c, d) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d) -> Doc #

pPrint :: (a, b, c, d) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e) => Pretty (a, b, c, d, e) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e) -> Doc #

pPrint :: (a, b, c, d, e) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e, Pretty f) => Pretty (a, b, c, d, e, f) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e, f) -> Doc #

pPrint :: (a, b, c, d, e, f) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e, f)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e, Pretty f, Pretty g) => Pretty (a, b, c, d, e, f, g) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e, f, g) -> Doc #

pPrint :: (a, b, c, d, e, f, g) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e, f, g)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e, Pretty f, Pretty g, Pretty h) => Pretty (a, b, c, d, e, f, g, h) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e, f, g, h) -> Doc #

pPrint :: (a, b, c, d, e, f, g, h) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e, f, g, h)] -> Doc #

Orphan instances

Pretty FieldNumber Source # 
Instance details

Pretty DotProtoReservedField Source # 
Instance details

Pretty DotProtoServicePart Source # 
Instance details

Pretty Streaming Source # 
Instance details

Pretty DotProtoType Source # 
Instance details

Pretty DotProtoPrimType Source # 
Instance details

Pretty DotProtoValue Source # 
Instance details

Pretty DotProtoOption Source # 
Instance details

Pretty DotProtoPackageSpec Source # 
Instance details

Pretty DotProtoImportQualifier Source # 
Instance details

Pretty DotProtoImport Source # 
Instance details

Pretty DotProtoIdentifier Source # 
Instance details