protog

package module
v0.0.0-...-f383c50 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2020 License: MIT Imports: 4 Imported by: 0

README

protog

GoDoc Go Report Card

Protobuf file generator for the command line.

Installation

go get github.com/mvrilo/protog/cmd/protog

Usage

$ protog -h
protog is a protobuf file generator for the command line

Usage:
  protog <name> [-dhfomnsp] [-n option_name:proto_name] [-m MessageName[field:type,field:type,...]] [-s ServiceName[MethodName:In:Out]]

Examples:
protog Greet.v1 -m HelloRequest[data:string]

Flags:
  -d, --dryrun                prints the generated proto to stdout
  -f, --force                 overwrite the file if it already exists
  -h, --help                  help for protog
  -m, --message stringArray   add a message and its fields
  -n, --option strings        add an option
  -o, --output string         output dir for the generated proto (default ".")
  -p, --package string        package name
  -s, --service stringArray   add a service and its methods
  -v, --version               version for protog

Example Usage

Given the input:

protog Greet.v1 \
    -n go_package:greet \
    -m HelloRequest[data:string] \
    -m HelloResponse[id:int64,data:string] \
    -s HelloService[SendHello:HelloRequest:HelloResponse,CheckHello] \
    -s PingService[SendPing:PingRequest:+PingResponse]

You should get the file greet.v1.proto with the content:

syntax = "proto3";

package Greet.v1;

option "go_package" = "greet";

import "google/protobuf/empty.proto";

message HelloRequest {
	string data = 1;
}

message HelloResponse {
	string data = 1;
	int64 id = 2;
}

service HelloService {
	rpc SendHello (HelloRequest) returns (HelloResponse) {};
	rpc CheckHello (google.protobuf.Empty) returns (google.protobuf.Empty) {};
}

service PingService {
	rpc SendPing (PingRequest) returns (stream PingResponse) {};
}

Author

Murilo Santana <mvrilo@gmail.com>

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Encode

func Encode(v map[string]interface{}) ([]byte, error)

Encode encodes a map to []byte

Types

type Encoder

type Encoder struct {
	Indent  bool
	Compact bool
	// contains filtered or unexported fields
}

Encoder struct

func New

func New() *Encoder

New returns an encoder object with initialized buffer and indentation enabled

func (*Encoder) Bytes

func (e *Encoder) Bytes() []byte

func (*Encoder) Encode

func (e *Encoder) Encode(data map[string]interface{}) ([]byte, error)

func (*Encoder) Write

func (e *Encoder) Write(value string)

Write is a proxy for buf.WriteString

func (*Encoder) WriteAssignment

func (e *Encoder) WriteAssignment(name, value string)

WriteAssignment assigns value to name, e.g. `name = "value";`

func (*Encoder) WriteImport

func (e *Encoder) WriteImport(value string) error

WriteImport writes a new import

func (*Encoder) WriteMessage

func (e *Encoder) WriteMessage(value interface{}) error

WriteMessage writes a message block

func (*Encoder) WriteOption

func (e *Encoder) WriteOption(value interface{}) error

WriteOption writes an option

func (*Encoder) WritePackage

func (e *Encoder) WritePackage(value interface{}) error

WritePackage writes a package

func (*Encoder) WriteService

func (e *Encoder) WriteService(value interface{}) error

WriteService writes a message block

func (*Encoder) WriteSyntax

func (e *Encoder) WriteSyntax(value interface{}) error

WriteSyntax writes a syntax

func (*Encoder) WriteValue

func (e *Encoder) WriteValue(value string)

WriteV writes a value inside `"`

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL