Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.1 KiB
113 lines
3.1 KiB
// 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 ( |
|
"encoding/json" |
|
"errors" |
|
"fmt" |
|
"strconv" |
|
|
|
protoV2 "google.golang.org/protobuf/proto" |
|
) |
|
|
|
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 GetStats() Stats { return Stats{} } |
|
|
|
// Deprecated: Do not use. |
|
func MarshalMessageSet(interface{}) ([]byte, error) { |
|
return nil, errors.New("proto: not implemented") |
|
} |
|
|
|
// Deprecated: Do not use. |
|
func UnmarshalMessageSet([]byte, interface{}) error { |
|
return errors.New("proto: not implemented") |
|
} |
|
|
|
// Deprecated: Do not use. |
|
func MarshalMessageSetJSON(interface{}) ([]byte, error) { |
|
return nil, errors.New("proto: not implemented") |
|
} |
|
|
|
// Deprecated: Do not use. |
|
func UnmarshalMessageSetJSON([]byte, interface{}) error { |
|
return errors.New("proto: not implemented") |
|
} |
|
|
|
// Deprecated: Do not use. |
|
func RegisterMessageSetType(Message, int32, string) {} |
|
|
|
// Deprecated: Do not use. |
|
func EnumName(m map[int32]string, v int32) string { |
|
s, ok := m[v] |
|
if ok { |
|
return s |
|
} |
|
return strconv.Itoa(int(v)) |
|
} |
|
|
|
// Deprecated: Do not use. |
|
func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { |
|
if data[0] == '"' { |
|
// New style: enums are strings. |
|
var repr string |
|
if err := json.Unmarshal(data, &repr); err != nil { |
|
return -1, err |
|
} |
|
val, ok := m[repr] |
|
if !ok { |
|
return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) |
|
} |
|
return val, nil |
|
} |
|
// Old style: enums are ints. |
|
var val int32 |
|
if err := json.Unmarshal(data, &val); err != nil { |
|
return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) |
|
} |
|
return val, 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) DiscardUnknown(m Message) { |
|
DiscardUnknown(m) |
|
} |
|
|
|
// Deprecated: Do not use; this method existed for intenal-use only. |
|
func (*InternalMessageInfo) Marshal(b []byte, m Message, deterministic bool) ([]byte, error) { |
|
return protoV2.MarshalOptions{Deterministic: deterministic}.MarshalAppend(b, MessageV2(m)) |
|
} |
|
|
|
// Deprecated: Do not use; this method existed for intenal-use only. |
|
func (*InternalMessageInfo) Merge(dst, src Message) { |
|
protoV2.Merge(MessageV2(dst), MessageV2(src)) |
|
} |
|
|
|
// Deprecated: Do not use; this method existed for intenal-use only. |
|
func (*InternalMessageInfo) Size(m Message) int { |
|
return protoV2.Size(MessageV2(m)) |
|
} |
|
|
|
// Deprecated: Do not use; this method existed for intenal-use only. |
|
func (*InternalMessageInfo) Unmarshal(m Message, b []byte) error { |
|
return protoV2.UnmarshalOptions{Merge: true}.Unmarshal(b, MessageV2(m)) |
|
}
|
|
|