func (m *PingRequest) GetMessageLatencyMs() (x int32) {
	if m == nil {
		return x
	}
	return m.MessageLatencyMs
}
GetMessageLatencyMs gets the MessageLatencyMs of the PingRequest.
package test
import jspb "github.com/johanbrandhorst/protobuf/jspb"
import google_protobuf "github.com/johanbrandhorst/protobuf/ptypes/empty"
import (
	context "context"
	grpcweb "github.com/johanbrandhorst/protobuf/grpcweb"
)
const _ = jspb.JspbPackageIsVersion2
type PingRequest_FailureType int
const (
	PingRequest_NONE PingRequest_FailureType = 0
	PingRequest_CODE PingRequest_FailureType = 1
	PingRequest_DROP PingRequest_FailureType = 2
)
var PingRequest_FailureType_name = map[int]string{
	0: "NONE",
	1: "CODE",
	2: "DROP",
}
var PingRequest_FailureType_value = map[string]int{
	"NONE": 0,
	"CODE": 1,
	"DROP": 2,
}
func (x PingRequest_FailureType) String() string {
	return PingRequest_FailureType_name[int(x)]
}
type ExtraStuff struct {
	Addresses map[int32]string
	Title       isExtraStuff_Title
	CardNumbers []uint32
}
type isExtraStuff_Title interface{ isExtraStuff_Title() }
type ExtraStuff_FirstName struct {
	FirstName string
}
type ExtraStuff_IdNumber struct {
	IdNumber int32
}
func (*ExtraStuff_FirstName) isExtraStuff_Title() {}
func (*ExtraStuff_IdNumber) isExtraStuff_Title()  {}
func (m *ExtraStuff) GetTitle() (x isExtraStuff_Title) {
	if m == nil {
		return x
	}
	return m.Title
}
func (m *ExtraStuff) GetAddresses() (x map[int32]string) {
	if m == nil {
		return x
	}
	return m.Addresses
}
func (m *ExtraStuff) GetFirstName() (x string) {
	if v, ok := m.GetTitle().(*ExtraStuff_FirstName); ok {
		return v.FirstName
	}
	return x
}
func (m *ExtraStuff) GetIdNumber() (x int32) {
	if v, ok := m.GetTitle().(*ExtraStuff_IdNumber); ok {
		return v.IdNumber
	}
	return x
}
func (m *ExtraStuff) GetCardNumbers() (x []uint32) {
	if m == nil {
		return x
	}
	return m.CardNumbers
}
func (m *ExtraStuff) MarshalToWriter(writer jspb.Writer) {
	if m == nil {
		return
	}
	switch t := m.Title.(type) {
	case *ExtraStuff_FirstName:
		if len(t.FirstName) > 0 {
			writer.WriteString(2, t.FirstName)
		}
	case *ExtraStuff_IdNumber:
		if t.IdNumber != 0 {
			writer.WriteInt32(3, t.IdNumber)
		}
	}
	if len(m.Addresses) > 0 {
		for key, value := range m.Addresses {
			writer.WriteMessage(1, func() {
				writer.WriteInt32(1, key)
				writer.WriteString(2, value)
			})
		}
	}
	if len(m.CardNumbers) > 0 {
		writer.WriteUint32Slice(4, m.CardNumbers)
	}
	return
}
func (m *ExtraStuff) Marshal() []byte {
	writer := jspb.NewWriter()
	m.MarshalToWriter(writer)
	return writer.GetResult()
}
func (m *ExtraStuff) UnmarshalFromReader(reader jspb.Reader) *ExtraStuff {
	for reader.Next() {
		if m == nil {
			m = &ExtraStuff{}
		}
		switch reader.GetFieldNumber() {
		case 1:
			if m.Addresses == nil {
				m.Addresses = map[int32]string{}
			}
			reader.ReadMessage(func() {
				var key int32
				var value string
				for reader.Next() {
					switch reader.GetFieldNumber() {
					case 1:
						key = reader.ReadInt32()
					case 2:
						value = reader.ReadString()
					}
					m.Addresses[key] = value
				}
			})
		case 2:
			m.Title = &ExtraStuff_FirstName{
				FirstName: reader.ReadString(),
			}
		case 3:
			m.Title = &ExtraStuff_IdNumber{
				IdNumber: reader.ReadInt32(),
			}
		case 4:
			m.CardNumbers = reader.ReadUint32Slice()
		default:
			reader.SkipField()
		}
	}
	return m
}
func (m *ExtraStuff) Unmarshal(rawBytes []byte) (*ExtraStuff, error) {
	reader := jspb.NewReader(rawBytes)
	m = m.UnmarshalFromReader(reader)
	if err := reader.Err(); err != nil {
		return nil, err
	}
	return m, nil
}
type PingRequest struct {
	Value             string
	ResponseCount     int32
	ErrorCodeReturned uint32
	FailureType       PingRequest_FailureType
	CheckMetadata     bool
	SendHeaders       bool
	SendTrailers      bool
	MessageLatencyMs  int32
}
func (m *PingRequest) GetValue() (x string) {
	if m == nil {
		return x
	}
	return m.Value
}
func (m *PingRequest) GetResponseCount() (x int32) {
	if m == nil {
		return x
	}
	return m.ResponseCount
}
func (m *PingRequest) GetErrorCodeReturned() (x uint32) {
	if m == nil {
		return x
	}
	return m.ErrorCodeReturned
}
func (m *PingRequest) GetFailureType() (x PingRequest_FailureType) {
	if m == nil {
		return x
	}
	return m.FailureType
}
func (m *PingRequest) GetCheckMetadata() (x bool) {
	if m == nil {
		return x
	}
	return m.CheckMetadata
}
func (m *PingRequest) GetSendHeaders() (x bool) {
	if m == nil {
		return x
	}
	return m.SendHeaders
}
func (m *PingRequest) GetSendTrailers() (x bool) {
	if m == nil {
		return x
	}
	return m.SendTrailers
}