// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package proto

import (
	
	
	
	

	protoV2 
)

var (
	// Deprecated: No longer returned.
	ErrNil = errors.New("proto: Marshal called with nil")

	// Deprecated: No longer returned.
	ErrTooLarge = errors.New("proto: message encodes to over 2 GB")

	// Deprecated: No longer returned.
	ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof")
)

// Deprecated: Do not use.
type Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 }

// Deprecated: Do not use.
func () Stats { return Stats{} }

// Deprecated: Do not use.
func (interface{}) ([]byte, error) {
	return nil, errors.New("proto: not implemented")
}

// Deprecated: Do not use.
func ([]byte, interface{}) error {
	return errors.New("proto: not implemented")
}

// Deprecated: Do not use.
func (interface{}) ([]byte, error) {
	return nil, errors.New("proto: not implemented")
}

// Deprecated: Do not use.
func ([]byte, interface{}) error {
	return errors.New("proto: not implemented")
}

// Deprecated: Do not use.
func (Message, int32, string) {}

// Deprecated: Do not use.
func ( map[int32]string,  int32) string {
	,  := []
	if  {
		return 
	}
	return strconv.Itoa(int())
}

// Deprecated: Do not use.
func ( map[string]int32,  []byte,  string) (int32, error) {
	if [0] == '"' {
		// New style: enums are strings.
		var  string
		if  := json.Unmarshal(, &);  != nil {
			return -1, 
		}
		,  := []
		if ! {
			return 0, fmt.Errorf("unrecognized enum %s value %q", , )
		}
		return , nil
	}
	// Old style: enums are ints.
	var  int32
	if  := json.Unmarshal(, &);  != nil {
		return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", , )
	}
	return , nil
}

// Deprecated: Do not use; this type existed for intenal-use only.
type InternalMessageInfo struct{}

// Deprecated: Do not use; this method existed for intenal-use only.
func (*InternalMessageInfo) ( Message) {
	DiscardUnknown()
}

// Deprecated: Do not use; this method existed for intenal-use only.
func (*InternalMessageInfo) ( []byte,  Message,  bool) ([]byte, error) {
	return protoV2.MarshalOptions{Deterministic: }.MarshalAppend(, MessageV2())
}

// Deprecated: Do not use; this method existed for intenal-use only.
func (*InternalMessageInfo) (,  Message) {
	protoV2.Merge(MessageV2(), MessageV2())
}

// Deprecated: Do not use; this method existed for intenal-use only.
func (*InternalMessageInfo) ( Message) int {
	return protoV2.Size(MessageV2())
}

// Deprecated: Do not use; this method existed for intenal-use only.
func (*InternalMessageInfo) ( Message,  []byte) error {
	return protoV2.UnmarshalOptions{Merge: true}.Unmarshal(, MessageV2())
}