Skip to content

Instantly share code, notes, and snippets.

@iamralch
Created December 17, 2015 08:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iamralch/7632c3628ded96a1fc60 to your computer and use it in GitHub Desktop.
Save iamralch/7632c3628ded96a1fc60 to your computer and use it in GitHub Desktop.
Sample Golang implementation of spec.proto
// Code generated by protoc-gen-go.
// source: spec.proto
// DO NOT EDIT!
/*
Package example is a generated protocol buffer package.
It is generated from these files:
spec.proto
It has these top-level messages:
Company
Employee
*/
package example
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
type CompanyType int32
const (
CompanyType_Private CompanyType = 17
CompanyType_Public CompanyType = 18
CompanyType_NonProfit CompanyType = 19
)
var CompanyType_name = map[int32]string{
17: "Private",
18: "Public",
19: "NonProfit",
}
var CompanyType_value = map[string]int32{
"Private": 17,
"Public": 18,
"NonProfit": 19,
}
func (x CompanyType) Enum() *CompanyType {
p := new(CompanyType)
*p = x
return p
}
func (x CompanyType) String() string {
return proto.EnumName(CompanyType_name, int32(x))
}
func (x *CompanyType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(CompanyType_value, data, "CompanyType")
if err != nil {
return err
}
*x = CompanyType(value)
return nil
}
func (CompanyType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
type Company struct {
Name *string `protobuf:"bytes,1,req,name=Name" json:"Name,omitempty"`
Employees []*Employee `protobuf:"bytes,2,rep,name=Employees" json:"Employees,omitempty"`
Type *CompanyType `protobuf:"varint,3,req,name=Type,enum=example.CompanyType" json:"Type,omitempty"`
Address *Company_Address `protobuf:"group,4,opt,name=Address" json:"address,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Company) Reset() { *m = Company{} }
func (m *Company) String() string { return proto.CompactTextString(m) }
func (*Company) ProtoMessage() {}
func (*Company) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *Company) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *Company) GetEmployees() []*Employee {
if m != nil {
return m.Employees
}
return nil
}
func (m *Company) GetType() CompanyType {
if m != nil && m.Type != nil {
return *m.Type
}
return CompanyType_Private
}
func (m *Company) GetAddress() *Company_Address {
if m != nil {
return m.Address
}
return nil
}
type Company_Address struct {
Country *string `protobuf:"bytes,5,req,name=Country" json:"Country,omitempty"`
City *string `protobuf:"bytes,6,req,name=City" json:"City,omitempty"`
Street *string `protobuf:"bytes,7,opt,name=Street" json:"Street,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Company_Address) Reset() { *m = Company_Address{} }
func (m *Company_Address) String() string { return proto.CompactTextString(m) }
func (*Company_Address) ProtoMessage() {}
func (m *Company_Address) GetCountry() string {
if m != nil && m.Country != nil {
return *m.Country
}
return ""
}
func (m *Company_Address) GetCity() string {
if m != nil && m.City != nil {
return *m.City
}
return ""
}
func (m *Company_Address) GetStreet() string {
if m != nil && m.Street != nil {
return *m.Street
}
return ""
}
type Employee struct {
Name *string `protobuf:"bytes,1,req,name=Name" json:"Name,omitempty"`
SSN *string `protobuf:"bytes,2,opt,name=SSN" json:"SSN,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *Employee) Reset() { *m = Employee{} }
func (m *Employee) String() string { return proto.CompactTextString(m) }
func (*Employee) ProtoMessage() {}
func (*Employee) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
func (m *Employee) GetName() string {
if m != nil && m.Name != nil {
return *m.Name
}
return ""
}
func (m *Employee) GetSSN() string {
if m != nil && m.SSN != nil {
return *m.SSN
}
return ""
}
func init() {
proto.RegisterType((*Company)(nil), "example.Company")
proto.RegisterType((*Company_Address)(nil), "example.Company.Address")
proto.RegisterType((*Employee)(nil), "example.Employee")
proto.RegisterEnum("example.CompanyType", CompanyType_name, CompanyType_value)
}
var fileDescriptor0 = []byte{
// 243 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x5c, 0x8f, 0xc1, 0x4a, 0xc4, 0x30,
0x14, 0x45, 0xe9, 0xb4, 0x36, 0xf6, 0x55, 0xc7, 0xce, 0xd3, 0x45, 0x70, 0x55, 0x8a, 0x42, 0x75,
0xd1, 0x45, 0x41, 0x70, 0x2b, 0x83, 0xdb, 0x52, 0xa8, 0x3f, 0x10, 0x67, 0x9e, 0x50, 0x98, 0x36,
0x21, 0xc9, 0x88, 0xf9, 0x41, 0xbf, 0xcb, 0xcc, 0x58, 0x8b, 0xba, 0x4b, 0xb8, 0xe7, 0x5d, 0xce,
0x05, 0x30, 0x8a, 0x36, 0x95, 0xd2, 0xd2, 0x4a, 0x64, 0xf4, 0x21, 0x06, 0xb5, 0xa3, 0xe2, 0x33,
0x00, 0xb6, 0x96, 0x83, 0x12, 0xa3, 0xc3, 0x33, 0x88, 0x1a, 0x31, 0x10, 0x0f, 0xf2, 0x45, 0x99,
0xe0, 0x0d, 0x24, 0xcf, 0x1e, 0x91, 0x8e, 0xc8, 0xf0, 0x45, 0x1e, 0x96, 0x69, 0xbd, 0xaa, 0xa6,
0xb3, 0xea, 0x27, 0xc1, 0x02, 0xa2, 0x17, 0xa7, 0x88, 0x87, 0xfe, 0x66, 0x59, 0x5f, 0xcd, 0xc0,
0xd4, 0x79, 0xc8, 0xf0, 0x0e, 0x98, 0xd8, 0x6e, 0x35, 0x19, 0xc3, 0xa3, 0x3c, 0x28, 0xa1, 0xe6,
0xff, 0xb1, 0xea, 0xe9, 0x3b, 0xbf, 0x7e, 0x04, 0x36, 0x3d, 0xf1, 0xe2, 0x20, 0xb6, 0x1f, 0xad,
0x76, 0xfc, 0xe4, 0x28, 0xe4, 0xf5, 0xd6, 0xbd, 0x75, 0x3c, 0x3e, 0xfe, 0x96, 0x10, 0x77, 0x56,
0x13, 0x59, 0xce, 0x7c, 0x67, 0x52, 0xdc, 0xc2, 0xe9, 0x2c, 0xf5, 0x77, 0x48, 0x0a, 0x61, 0xd7,
0x35, 0x7e, 0x82, 0xc7, 0xee, 0x1f, 0x20, 0xfd, 0xad, 0x96, 0x02, 0x6b, 0x75, 0xff, 0x2e, 0x2c,
0x65, 0x2b, 0x04, 0x88, 0xdb, 0xfd, 0xeb, 0xae, 0xdf, 0x64, 0x88, 0xe7, 0x90, 0x34, 0x72, 0x6c,
0xb5, 0x7c, 0xeb, 0x6d, 0x76, 0xf9, 0x15, 0x00, 0x00, 0xff, 0xff, 0xec, 0x74, 0xf0, 0x0d, 0x3c,
0x01, 0x00, 0x00,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment