Skip to content

Instantly share code, notes, and snippets.

@iamralch
Created Dec 17, 2015
Embed
What would you like to do?
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