1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Package protolegacy is a stub version of the v1 proto package
6// to satisfy internal/testprotos/legacy dependencies.
7package protolegacy
8
9import (
10	"bytes"
11	"compress/gzip"
12	"errors"
13	"fmt"
14	"io/ioutil"
15
16	"google.golang.org/protobuf/reflect/protoreflect"
17	"google.golang.org/protobuf/reflect/protoregistry"
18	"google.golang.org/protobuf/runtime/protoiface"
19	"google.golang.org/protobuf/runtime/protoimpl"
20)
21
22const (
23	ProtoPackageIsVersion1 = true
24	ProtoPackageIsVersion2 = true
25	ProtoPackageIsVersion3 = true
26)
27
28const (
29	WireVarint     = 0
30	WireFixed32    = 5
31	WireFixed64    = 1
32	WireBytes      = 2
33	WireStartGroup = 3
34	WireEndGroup   = 4
35)
36
37type (
38	Message                = protoiface.MessageV1
39	ExtensionRange         = protoiface.ExtensionRangeV1
40	ExtensionDesc          = protoimpl.ExtensionInfo
41	Extension              = protoimpl.ExtensionFieldV1
42	XXX_InternalExtensions = protoimpl.ExtensionFields
43)
44
45func RegisterFile(s string, d []byte) {
46	// Decompress the descriptor.
47	zr, err := gzip.NewReader(bytes.NewReader(d))
48	if err != nil {
49		panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err))
50	}
51	b, err := ioutil.ReadAll(zr)
52	if err != nil {
53		panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err))
54	}
55
56	// Construct a protoreflect.FileDescriptor from the raw descriptor.
57	// Note that DescBuilder.Build automatically registers the constructed
58	// file descriptor with the v2 registry.
59	protoimpl.DescBuilder{RawDescriptor: b}.Build()
60}
61
62func RegisterType(m Message, s string) {
63	mt := protoimpl.X.LegacyMessageTypeOf(m, protoreflect.FullName(s))
64	if err := protoregistry.GlobalTypes.RegisterMessage(mt); err != nil {
65		panic(err)
66	}
67}
68
69func RegisterMapType(interface{}, string) {
70	// Do nothing.
71}
72
73func RegisterEnum(string, map[int32]string, map[string]int32) {
74	// Do nothing.
75}
76
77func RegisterExtension(d *ExtensionDesc) {
78	if err := protoregistry.GlobalTypes.RegisterExtension(d); err != nil {
79		panic(err)
80	}
81}
82
83var ErrInternalBadWireType = errors.New("not implemented")
84
85func Size(Message) int                { panic("not implemented") }
86func Marshal(Message) ([]byte, error) { panic("not implemented") }
87func Unmarshal([]byte, Message) error { panic("not implemented") }
88
89func SizeVarint(uint64) int             { panic("not implemented") }
90func EncodeVarint(uint64) []byte        { panic("not implemented") }
91func DecodeVarint([]byte) (uint64, int) { panic("not implemented") }
92
93func CompactTextString(Message) string                                  { panic("not implemented") }
94func EnumName(map[int32]string, int32) string                           { panic("not implemented") }
95func UnmarshalJSONEnum(map[string]int32, []byte, string) (int32, error) { panic("not implemented") }
96
97type Buffer struct{}
98
99func (*Buffer) DecodeFixed32() (uint64, error)      { panic("not implemented") }
100func (*Buffer) DecodeFixed64() (uint64, error)      { panic("not implemented") }
101func (*Buffer) DecodeGroup(Message) error           { panic("not implemented") }
102func (*Buffer) DecodeMessage(Message) error         { panic("not implemented") }
103func (*Buffer) DecodeRawBytes(bool) ([]byte, error) { panic("not implemented") }
104func (*Buffer) DecodeStringBytes() (string, error)  { panic("not implemented") }
105func (*Buffer) DecodeVarint() (uint64, error)       { panic("not implemented") }
106func (*Buffer) DecodeZigzag32() (uint64, error)     { panic("not implemented") }
107func (*Buffer) DecodeZigzag64() (uint64, error)     { panic("not implemented") }
108func (*Buffer) EncodeFixed32(uint64) error          { panic("not implemented") }
109func (*Buffer) EncodeFixed64(uint64) error          { panic("not implemented") }
110func (*Buffer) EncodeMessage(Message) error         { panic("not implemented") }
111func (*Buffer) EncodeRawBytes([]byte) error         { panic("not implemented") }
112func (*Buffer) EncodeStringBytes(string) error      { panic("not implemented") }
113func (*Buffer) EncodeVarint(uint64) error           { panic("not implemented") }
114func (*Buffer) EncodeZigzag32(uint64) error         { panic("not implemented") }
115func (*Buffer) EncodeZigzag64(uint64) error         { panic("not implemented") }
116func (*Buffer) Marshal(Message) error               { panic("not implemented") }
117func (*Buffer) Unmarshal(Message) error             { panic("not implemented") }
118
119type InternalMessageInfo struct{}
120
121func (*InternalMessageInfo) DiscardUnknown(Message)                        { panic("not implemented") }
122func (*InternalMessageInfo) Marshal([]byte, Message, bool) ([]byte, error) { panic("not implemented") }
123func (*InternalMessageInfo) Merge(Message, Message)                        { panic("not implemented") }
124func (*InternalMessageInfo) Size(Message) int                              { panic("not implemented") }
125func (*InternalMessageInfo) Unmarshal(Message, []byte) error               { panic("not implemented") }
126