// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: mygrpc.proto

package mygrpc

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	io "io"
	math "math"
	math_bits "math/bits"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type RequestMessage struct {
	Message              string   `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RequestMessage) Reset()         { *m = RequestMessage{} }
func (m *RequestMessage) String() string { return proto.CompactTextString(m) }
func (*RequestMessage) ProtoMessage()    {}
func (*RequestMessage) Descriptor() ([]byte, []int) {
	return fileDescriptor_9bc0bd4c23e28689, []int{0}
}
func (m *RequestMessage) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RequestMessage.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RequestMessage) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RequestMessage.Merge(m, src)
}
func (m *RequestMessage) XXX_Size() int {
	return m.Size()
}
func (m *RequestMessage) XXX_DiscardUnknown() {
	xxx_messageInfo_RequestMessage.DiscardUnknown(m)
}

var xxx_messageInfo_RequestMessage proto.InternalMessageInfo

func (m *RequestMessage) GetMessage() string {
	if m != nil {
		return m.Message
	}
	return ""
}

type ResponseMessage struct {
	Message              string   `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ResponseMessage) Reset()         { *m = ResponseMessage{} }
func (m *ResponseMessage) String() string { return proto.CompactTextString(m) }
func (*ResponseMessage) ProtoMessage()    {}
func (*ResponseMessage) Descriptor() ([]byte, []int) {
	return fileDescriptor_9bc0bd4c23e28689, []int{1}
}
func (m *ResponseMessage) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ResponseMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ResponseMessage.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ResponseMessage) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ResponseMessage.Merge(m, src)
}
func (m *ResponseMessage) XXX_Size() int {
	return m.Size()
}
func (m *ResponseMessage) XXX_DiscardUnknown() {
	xxx_messageInfo_ResponseMessage.DiscardUnknown(m)
}

var xxx_messageInfo_ResponseMessage proto.InternalMessageInfo

func (m *ResponseMessage) GetMessage() string {
	if m != nil {
		return m.Message
	}
	return ""
}

func init() {
	proto.RegisterType((*RequestMessage)(nil), "mygrpc.RequestMessage")
	proto.RegisterType((*ResponseMessage)(nil), "mygrpc.ResponseMessage")
}

func init() { proto.RegisterFile("mygrpc.proto", fileDescriptor_9bc0bd4c23e28689) }

var fileDescriptor_9bc0bd4c23e28689 = []byte{
	// 211 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc9, 0xad, 0x4c, 0x2f,
	0x2a, 0x48, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x83, 0xf0, 0x94, 0xb4, 0xb8, 0xf8,
	0x82, 0x52, 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x7c, 0x53, 0x8b, 0x8b, 0x13, 0xd3, 0x53, 0x85, 0x24,
	0xb8, 0xd8, 0x73, 0x21, 0x4c, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x18, 0x57, 0x49, 0x9b,
	0x8b, 0x3f, 0x28, 0xb5, 0xb8, 0x20, 0x3f, 0xaf, 0x38, 0x95, 0xa0, 0x62, 0xa3, 0x2d, 0x4c, 0x5c,
	0x9c, 0xbe, 0x95, 0xc1, 0xa9, 0x45, 0x65, 0x99, 0xc9, 0xa9, 0x42, 0xb6, 0x5c, 0x1c, 0xa1, 0x79,
	0x89, 0x45, 0x95, 0x41, 0x01, 0xce, 0x42, 0x62, 0x7a, 0x50, 0x97, 0xa0, 0x5a, 0x2c, 0x25, 0x8e,
	0x10, 0x47, 0xb1, 0x44, 0x89, 0x41, 0xc8, 0x93, 0x4b, 0x08, 0x64, 0x52, 0x6a, 0x51, 0x70, 0x49,
	0x51, 0x6a, 0x62, 0x6e, 0x66, 0x5e, 0x3a, 0x79, 0x06, 0x19, 0x30, 0x82, 0x8c, 0x72, 0xce, 0xc9,
	0x4c, 0xcd, 0x2b, 0xa1, 0xd0, 0x28, 0x0d, 0x46, 0xa1, 0x20, 0x2e, 0x49, 0xa7, 0xcc, 0x94, 0xcc,
	0xa2, 0xd4, 0xe4, 0x92, 0xcc, 0xfc, 0xbc, 0xc4, 0x1c, 0x8a, 0x4d, 0x34, 0x60, 0x74, 0x12, 0x38,
	0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x67, 0x3c, 0x96, 0x63,
	0x48, 0x62, 0x03, 0x47, 0x98, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x45, 0x0b, 0x20, 0xda, 0xc0,
	0x01, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// MyServiceClient is the client API for MyService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type MyServiceClient interface {
	// Unary RPC
	UnaryRPC(ctx context.Context, in *RequestMessage, opts ...grpc.CallOption) (*ResponseMessage, error)
	// Server-Streaming RPC
	ServerStreamingRPC(ctx context.Context, in *RequestMessage, opts ...grpc.CallOption) (MyService_ServerStreamingRPCClient, error)
	// Client-Streaming RPC
	ClientStreamingRPC(ctx context.Context, opts ...grpc.CallOption) (MyService_ClientStreamingRPCClient, error)
	// Bidirectional-Streaming RPC
	BidirectionalStreamingRPC(ctx context.Context, opts ...grpc.CallOption) (MyService_BidirectionalStreamingRPCClient, error)
}

type myServiceClient struct {
	cc *grpc.ClientConn
}

func NewMyServiceClient(cc *grpc.ClientConn) MyServiceClient {
	return &myServiceClient{cc}
}

func (c *myServiceClient) UnaryRPC(ctx context.Context, in *RequestMessage, opts ...grpc.CallOption) (*ResponseMessage, error) {
	out := new(ResponseMessage)
	err := c.cc.Invoke(ctx, "/mygrpc.MyService/UnaryRPC", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *myServiceClient) ServerStreamingRPC(ctx context.Context, in *RequestMessage, opts ...grpc.CallOption) (MyService_ServerStreamingRPCClient, error) {
	stream, err := c.cc.NewStream(ctx, &_MyService_serviceDesc.Streams[0], "/mygrpc.MyService/ServerStreamingRPC", opts...)
	if err != nil {
		return nil, err
	}
	x := &myServiceServerStreamingRPCClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type MyService_ServerStreamingRPCClient interface {
	Recv() (*ResponseMessage, error)
	grpc.ClientStream
}

type myServiceServerStreamingRPCClient struct {
	grpc.ClientStream
}

func (x *myServiceServerStreamingRPCClient) Recv() (*ResponseMessage, error) {
	m := new(ResponseMessage)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *myServiceClient) ClientStreamingRPC(ctx context.Context, opts ...grpc.CallOption) (MyService_ClientStreamingRPCClient, error) {
	stream, err := c.cc.NewStream(ctx, &_MyService_serviceDesc.Streams[1], "/mygrpc.MyService/ClientStreamingRPC", opts...)
	if err != nil {
		return nil, err
	}
	x := &myServiceClientStreamingRPCClient{stream}
	return x, nil
}

type MyService_ClientStreamingRPCClient interface {
	Send(*RequestMessage) error
	CloseAndRecv() (*ResponseMessage, error)
	grpc.ClientStream
}

type myServiceClientStreamingRPCClient struct {
	grpc.ClientStream
}

func (x *myServiceClientStreamingRPCClient) Send(m *RequestMessage) error {
	return x.ClientStream.SendMsg(m)
}

func (x *myServiceClientStreamingRPCClient) CloseAndRecv() (*ResponseMessage, error) {
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	m := new(ResponseMessage)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *myServiceClient) BidirectionalStreamingRPC(ctx context.Context, opts ...grpc.CallOption) (MyService_BidirectionalStreamingRPCClient, error) {
	stream, err := c.cc.NewStream(ctx, &_MyService_serviceDesc.Streams[2], "/mygrpc.MyService/BidirectionalStreamingRPC", opts...)
	if err != nil {
		return nil, err
	}
	x := &myServiceBidirectionalStreamingRPCClient{stream}
	return x, nil
}

type MyService_BidirectionalStreamingRPCClient interface {
	Send(*RequestMessage) error
	Recv() (*ResponseMessage, error)
	grpc.ClientStream
}

type myServiceBidirectionalStreamingRPCClient struct {
	grpc.ClientStream
}

func (x *myServiceBidirectionalStreamingRPCClient) Send(m *RequestMessage) error {
	return x.ClientStream.SendMsg(m)
}

func (x *myServiceBidirectionalStreamingRPCClient) Recv() (*ResponseMessage, error) {
	m := new(ResponseMessage)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// MyServiceServer is the server API for MyService service.
type MyServiceServer interface {
	// Unary RPC
	UnaryRPC(context.Context, *RequestMessage) (*ResponseMessage, error)
	// Server-Streaming RPC
	ServerStreamingRPC(*RequestMessage, MyService_ServerStreamingRPCServer) error
	// Client-Streaming RPC
	ClientStreamingRPC(MyService_ClientStreamingRPCServer) error
	// Bidirectional-Streaming RPC
	BidirectionalStreamingRPC(MyService_BidirectionalStreamingRPCServer) error
}

// UnimplementedMyServiceServer can be embedded to have forward compatible implementations.
type UnimplementedMyServiceServer struct {
}

func (*UnimplementedMyServiceServer) UnaryRPC(ctx context.Context, req *RequestMessage) (*ResponseMessage, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UnaryRPC not implemented")
}
func (*UnimplementedMyServiceServer) ServerStreamingRPC(req *RequestMessage, srv MyService_ServerStreamingRPCServer) error {
	return status.Errorf(codes.Unimplemented, "method ServerStreamingRPC not implemented")
}
func (*UnimplementedMyServiceServer) ClientStreamingRPC(srv MyService_ClientStreamingRPCServer) error {
	return status.Errorf(codes.Unimplemented, "method ClientStreamingRPC not implemented")
}
func (*UnimplementedMyServiceServer) BidirectionalStreamingRPC(srv MyService_BidirectionalStreamingRPCServer) error {
	return status.Errorf(codes.Unimplemented, "method BidirectionalStreamingRPC not implemented")
}

func RegisterMyServiceServer(s *grpc.Server, srv MyServiceServer) {
	s.RegisterService(&_MyService_serviceDesc, srv)
}

func _MyService_UnaryRPC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RequestMessage)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(MyServiceServer).UnaryRPC(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/mygrpc.MyService/UnaryRPC",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(MyServiceServer).UnaryRPC(ctx, req.(*RequestMessage))
	}
	return interceptor(ctx, in, info, handler)
}

func _MyService_ServerStreamingRPC_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(RequestMessage)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(MyServiceServer).ServerStreamingRPC(m, &myServiceServerStreamingRPCServer{stream})
}

type MyService_ServerStreamingRPCServer interface {
	Send(*ResponseMessage) error
	grpc.ServerStream
}

type myServiceServerStreamingRPCServer struct {
	grpc.ServerStream
}

func (x *myServiceServerStreamingRPCServer) Send(m *ResponseMessage) error {
	return x.ServerStream.SendMsg(m)
}

func _MyService_ClientStreamingRPC_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(MyServiceServer).ClientStreamingRPC(&myServiceClientStreamingRPCServer{stream})
}

type MyService_ClientStreamingRPCServer interface {
	SendAndClose(*ResponseMessage) error
	Recv() (*RequestMessage, error)
	grpc.ServerStream
}

type myServiceClientStreamingRPCServer struct {
	grpc.ServerStream
}

func (x *myServiceClientStreamingRPCServer) SendAndClose(m *ResponseMessage) error {
	return x.ServerStream.SendMsg(m)
}

func (x *myServiceClientStreamingRPCServer) Recv() (*RequestMessage, error) {
	m := new(RequestMessage)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func _MyService_BidirectionalStreamingRPC_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(MyServiceServer).BidirectionalStreamingRPC(&myServiceBidirectionalStreamingRPCServer{stream})
}

type MyService_BidirectionalStreamingRPCServer interface {
	Send(*ResponseMessage) error
	Recv() (*RequestMessage, error)
	grpc.ServerStream
}

type myServiceBidirectionalStreamingRPCServer struct {
	grpc.ServerStream
}

func (x *myServiceBidirectionalStreamingRPCServer) Send(m *ResponseMessage) error {
	return x.ServerStream.SendMsg(m)
}

func (x *myServiceBidirectionalStreamingRPCServer) Recv() (*RequestMessage, error) {
	m := new(RequestMessage)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

var _MyService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "mygrpc.MyService",
	HandlerType: (*MyServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "UnaryRPC",
			Handler:    _MyService_UnaryRPC_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "ServerStreamingRPC",
			Handler:       _MyService_ServerStreamingRPC_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "ClientStreamingRPC",
			Handler:       _MyService_ClientStreamingRPC_Handler,
			ClientStreams: true,
		},
		{
			StreamName:    "BidirectionalStreamingRPC",
			Handler:       _MyService_BidirectionalStreamingRPC_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "mygrpc.proto",
}

func (m *RequestMessage) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RequestMessage) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RequestMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		i -= len(m.XXX_unrecognized)
		copy(dAtA[i:], m.XXX_unrecognized)
	}
	if len(m.Message) > 0 {
		i -= len(m.Message)
		copy(dAtA[i:], m.Message)
		i = encodeVarintMygrpc(dAtA, i, uint64(len(m.Message)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ResponseMessage) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ResponseMessage) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ResponseMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		i -= len(m.XXX_unrecognized)
		copy(dAtA[i:], m.XXX_unrecognized)
	}
	if len(m.Message) > 0 {
		i -= len(m.Message)
		copy(dAtA[i:], m.Message)
		i = encodeVarintMygrpc(dAtA, i, uint64(len(m.Message)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func encodeVarintMygrpc(dAtA []byte, offset int, v uint64) int {
	offset -= sovMygrpc(v)
	base := offset
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return base
}
func (m *RequestMessage) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Message)
	if l > 0 {
		n += 1 + l + sovMygrpc(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *ResponseMessage) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Message)
	if l > 0 {
		n += 1 + l + sovMygrpc(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func sovMygrpc(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozMygrpc(x uint64) (n int) {
	return sovMygrpc(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *RequestMessage) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowMygrpc
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RequestMessage: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RequestMessage: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowMygrpc
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthMygrpc
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthMygrpc
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Message = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipMygrpc(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthMygrpc
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthMygrpc
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ResponseMessage) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowMygrpc
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ResponseMessage: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ResponseMessage: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowMygrpc
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthMygrpc
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthMygrpc
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Message = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipMygrpc(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthMygrpc
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthMygrpc
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipMygrpc(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	depth := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowMygrpc
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowMygrpc
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
		case 1:
			iNdEx += 8
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowMygrpc
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthMygrpc
			}
			iNdEx += length
		case 3:
			depth++
		case 4:
			if depth == 0 {
				return 0, ErrUnexpectedEndOfGroupMygrpc
			}
			depth--
		case 5:
			iNdEx += 4
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
		if iNdEx < 0 {
			return 0, ErrInvalidLengthMygrpc
		}
		if depth == 0 {
			return iNdEx, nil
		}
	}
	return 0, io.ErrUnexpectedEOF
}

var (
	ErrInvalidLengthMygrpc        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowMygrpc          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupMygrpc = fmt.Errorf("proto: unexpected end of group")
)
