planetscale 0.2.0 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.buildkite/pipeline.yml +21 -0
- data/.github/workflows/ci.yml +9 -1
- data/.github/workflows/gem-push.yml +9 -2
- data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
- data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +56 -3
- data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +205 -172
- data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
- data/README.md +11 -8
- data/controller.go +24 -26
- data/go.mod +4 -3
- data/go.sum +42 -27
- data/lib/generators/planetscale/install_generator.rb +8 -6
- data/lib/planetscale/version.rb +1 -1
- data/lib/planetscale.rb +14 -15
- data/planetscale.gemspec +2 -2
- data/proxy/planetscale-darwin.h +1 -1
- data/proxy/planetscale-darwin.so +0 -0
- data/proxy/planetscale-linux.h +1 -1
- data/proxy/planetscale-linux.so +0 -0
- data/proxy.go +1 -5
- metadata +6 -342
- data/vendor/github.com/armon/circbuf/.gitignore +0 -22
- data/vendor/github.com/armon/circbuf/LICENSE +0 -20
- data/vendor/github.com/armon/circbuf/README.md +0 -28
- data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
- data/vendor/github.com/armon/circbuf/go.mod +0 -1
- data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
- data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
- data/vendor/github.com/golang/protobuf/LICENSE +0 -28
- data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
- data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
- data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
- data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
- data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
- data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
- data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
- data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
- data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
- data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
- data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
- data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
- data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
- data/vendor/github.com/gorilla/mux/LICENSE +0 -27
- data/vendor/github.com/gorilla/mux/README.md +0 -805
- data/vendor/github.com/gorilla/mux/doc.go +0 -306
- data/vendor/github.com/gorilla/mux/go.mod +0 -3
- data/vendor/github.com/gorilla/mux/middleware.go +0 -74
- data/vendor/github.com/gorilla/mux/mux.go +0 -606
- data/vendor/github.com/gorilla/mux/regexp.go +0 -388
- data/vendor/github.com/gorilla/mux/route.go +0 -736
- data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
- data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
- data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
- data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
- data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
- data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
- data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
- data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
- data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
- data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
- data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
- data/vendor/github.com/pkg/errors/.gitignore +0 -24
- data/vendor/github.com/pkg/errors/.travis.yml +0 -10
- data/vendor/github.com/pkg/errors/LICENSE +0 -23
- data/vendor/github.com/pkg/errors/Makefile +0 -44
- data/vendor/github.com/pkg/errors/README.md +0 -59
- data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
- data/vendor/github.com/pkg/errors/errors.go +0 -288
- data/vendor/github.com/pkg/errors/go113.go +0 -38
- data/vendor/github.com/pkg/errors/stack.go +0 -177
- data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
- data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -258
- data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -142
- data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -305
- data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -131
- data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
- data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -78
- data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
- data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -467
- data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
- data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
- data/vendor/go.uber.org/atomic/.gitignore +0 -12
- data/vendor/go.uber.org/atomic/.travis.yml +0 -27
- data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
- data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
- data/vendor/go.uber.org/atomic/Makefile +0 -78
- data/vendor/go.uber.org/atomic/README.md +0 -63
- data/vendor/go.uber.org/atomic/bool.go +0 -81
- data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
- data/vendor/go.uber.org/atomic/doc.go +0 -23
- data/vendor/go.uber.org/atomic/duration.go +0 -82
- data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
- data/vendor/go.uber.org/atomic/error.go +0 -51
- data/vendor/go.uber.org/atomic/error_ext.go +0 -39
- data/vendor/go.uber.org/atomic/float64.go +0 -76
- data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
- data/vendor/go.uber.org/atomic/gen.go +0 -26
- data/vendor/go.uber.org/atomic/go.mod +0 -8
- data/vendor/go.uber.org/atomic/go.sum +0 -9
- data/vendor/go.uber.org/atomic/int32.go +0 -102
- data/vendor/go.uber.org/atomic/int64.go +0 -102
- data/vendor/go.uber.org/atomic/nocmp.go +0 -35
- data/vendor/go.uber.org/atomic/string.go +0 -54
- data/vendor/go.uber.org/atomic/string_ext.go +0 -43
- data/vendor/go.uber.org/atomic/uint32.go +0 -102
- data/vendor/go.uber.org/atomic/uint64.go +0 -102
- data/vendor/go.uber.org/atomic/value.go +0 -31
- data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
- data/vendor/go.uber.org/multierr/.gitignore +0 -4
- data/vendor/go.uber.org/multierr/.travis.yml +0 -23
- data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
- data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
- data/vendor/go.uber.org/multierr/Makefile +0 -42
- data/vendor/go.uber.org/multierr/README.md +0 -23
- data/vendor/go.uber.org/multierr/error.go +0 -449
- data/vendor/go.uber.org/multierr/glide.yaml +0 -8
- data/vendor/go.uber.org/multierr/go.mod +0 -8
- data/vendor/go.uber.org/multierr/go.sum +0 -11
- data/vendor/go.uber.org/multierr/go113.go +0 -52
- data/vendor/go.uber.org/zap/.codecov.yml +0 -17
- data/vendor/go.uber.org/zap/.gitignore +0 -32
- data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
- data/vendor/go.uber.org/zap/.travis.yml +0 -23
- data/vendor/go.uber.org/zap/CHANGELOG.md +0 -432
- data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
- data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -81
- data/vendor/go.uber.org/zap/FAQ.md +0 -156
- data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
- data/vendor/go.uber.org/zap/Makefile +0 -63
- data/vendor/go.uber.org/zap/README.md +0 -134
- data/vendor/go.uber.org/zap/array.go +0 -320
- data/vendor/go.uber.org/zap/buffer/buffer.go +0 -123
- data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
- data/vendor/go.uber.org/zap/checklicense.sh +0 -17
- data/vendor/go.uber.org/zap/config.go +0 -264
- data/vendor/go.uber.org/zap/doc.go +0 -113
- data/vendor/go.uber.org/zap/encoder.go +0 -79
- data/vendor/go.uber.org/zap/error.go +0 -80
- data/vendor/go.uber.org/zap/field.go +0 -539
- data/vendor/go.uber.org/zap/flag.go +0 -39
- data/vendor/go.uber.org/zap/glide.yaml +0 -34
- data/vendor/go.uber.org/zap/global.go +0 -168
- data/vendor/go.uber.org/zap/global_go112.go +0 -26
- data/vendor/go.uber.org/zap/global_prego112.go +0 -26
- data/vendor/go.uber.org/zap/go.mod +0 -13
- data/vendor/go.uber.org/zap/go.sum +0 -56
- data/vendor/go.uber.org/zap/http_handler.go +0 -81
- data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
- data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
- data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
- data/vendor/go.uber.org/zap/level.go +0 -132
- data/vendor/go.uber.org/zap/logger.go +0 -344
- data/vendor/go.uber.org/zap/options.go +0 -140
- data/vendor/go.uber.org/zap/sink.go +0 -161
- data/vendor/go.uber.org/zap/stacktrace.go +0 -85
- data/vendor/go.uber.org/zap/sugar.go +0 -304
- data/vendor/go.uber.org/zap/time.go +0 -27
- data/vendor/go.uber.org/zap/writer.go +0 -99
- data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
- data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
- data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
- data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
- data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
- data/vendor/go.uber.org/zap/zapcore/error.go +0 -115
- data/vendor/go.uber.org/zap/zapcore/field.go +0 -227
- data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
- data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
- data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
- data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
- data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
- data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
- data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
- data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
- data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
- data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -123
- data/vendor/golang.org/x/net/AUTHORS +0 -3
- data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/net/LICENSE +0 -27
- data/vendor/golang.org/x/net/PATENTS +0 -22
- data/vendor/golang.org/x/net/context/context.go +0 -56
- data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
- data/vendor/golang.org/x/net/context/go17.go +0 -73
- data/vendor/golang.org/x/net/context/go19.go +0 -21
- data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
- data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
- data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
- data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
- data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
- data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/oauth2/LICENSE +0 -27
- data/vendor/golang.org/x/oauth2/README.md +0 -36
- data/vendor/golang.org/x/oauth2/go.mod +0 -9
- data/vendor/golang.org/x/oauth2/go.sum +0 -361
- data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
- data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
- data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
- data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
- data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
- data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
- data/vendor/golang.org/x/oauth2/token.go +0 -178
- data/vendor/golang.org/x/oauth2/transport.go +0 -89
- data/vendor/google.golang.org/appengine/LICENSE +0 -202
- data/vendor/google.golang.org/appengine/internal/api.go +0 -678
- data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
- data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
- data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
- data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
- data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
- data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
- data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
- data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
- data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
- data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
- data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
- data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
- data/vendor/google.golang.org/appengine/internal/main.go +0 -16
- data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
- data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
- data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
- data/vendor/google.golang.org/appengine/internal/net.go +0 -56
- data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
- data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
- data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
- data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
- data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
- data/vendor/google.golang.org/protobuf/LICENSE +0 -27
- data/vendor/google.golang.org/protobuf/PATENTS +0 -22
- data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
- data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
- data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
- data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
- data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
- data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
- data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
- data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
- data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
- data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
- data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
- data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
- data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
- data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
- data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
- data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
- data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
- data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
- data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
- data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
- data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
- data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
- data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
- data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
- data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
- data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
- data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
- data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
- data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
- data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
- data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
- data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
- data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
- data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
- data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
- data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
- data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
- data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
- data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
- data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
- data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
- data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
- data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
- data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
- data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
- data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
- data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
- data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
- data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
- data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
- data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
- data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
- data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
- data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
- data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
- data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
- data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
- data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
- data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
- data/vendor/modules.txt +0 -79
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
// Copyright 2020 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 impl
|
|
6
|
-
|
|
7
|
-
import (
|
|
8
|
-
"fmt"
|
|
9
|
-
"reflect"
|
|
10
|
-
|
|
11
|
-
"google.golang.org/protobuf/proto"
|
|
12
|
-
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
13
|
-
piface "google.golang.org/protobuf/runtime/protoiface"
|
|
14
|
-
)
|
|
15
|
-
|
|
16
|
-
type mergeOptions struct{}
|
|
17
|
-
|
|
18
|
-
func (o mergeOptions) Merge(dst, src proto.Message) {
|
|
19
|
-
proto.Merge(dst, src)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// merge is protoreflect.Methods.Merge.
|
|
23
|
-
func (mi *MessageInfo) merge(in piface.MergeInput) piface.MergeOutput {
|
|
24
|
-
dp, ok := mi.getPointer(in.Destination)
|
|
25
|
-
if !ok {
|
|
26
|
-
return piface.MergeOutput{}
|
|
27
|
-
}
|
|
28
|
-
sp, ok := mi.getPointer(in.Source)
|
|
29
|
-
if !ok {
|
|
30
|
-
return piface.MergeOutput{}
|
|
31
|
-
}
|
|
32
|
-
mi.mergePointer(dp, sp, mergeOptions{})
|
|
33
|
-
return piface.MergeOutput{Flags: piface.MergeComplete}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
func (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) {
|
|
37
|
-
mi.init()
|
|
38
|
-
if dst.IsNil() {
|
|
39
|
-
panic(fmt.Sprintf("invalid value: merging into nil message"))
|
|
40
|
-
}
|
|
41
|
-
if src.IsNil() {
|
|
42
|
-
return
|
|
43
|
-
}
|
|
44
|
-
for _, f := range mi.orderedCoderFields {
|
|
45
|
-
if f.funcs.merge == nil {
|
|
46
|
-
continue
|
|
47
|
-
}
|
|
48
|
-
sfptr := src.Apply(f.offset)
|
|
49
|
-
if f.isPointer && sfptr.Elem().IsNil() {
|
|
50
|
-
continue
|
|
51
|
-
}
|
|
52
|
-
f.funcs.merge(dst.Apply(f.offset), sfptr, f, opts)
|
|
53
|
-
}
|
|
54
|
-
if mi.extensionOffset.IsValid() {
|
|
55
|
-
sext := src.Apply(mi.extensionOffset).Extensions()
|
|
56
|
-
dext := dst.Apply(mi.extensionOffset).Extensions()
|
|
57
|
-
if *dext == nil {
|
|
58
|
-
*dext = make(map[int32]ExtensionField)
|
|
59
|
-
}
|
|
60
|
-
for num, sx := range *sext {
|
|
61
|
-
xt := sx.Type()
|
|
62
|
-
xi := getExtensionFieldInfo(xt)
|
|
63
|
-
if xi.funcs.merge == nil {
|
|
64
|
-
continue
|
|
65
|
-
}
|
|
66
|
-
dx := (*dext)[num]
|
|
67
|
-
var dv pref.Value
|
|
68
|
-
if dx.Type() == sx.Type() {
|
|
69
|
-
dv = dx.Value()
|
|
70
|
-
}
|
|
71
|
-
if !dv.IsValid() && xi.unmarshalNeedsValue {
|
|
72
|
-
dv = xt.New()
|
|
73
|
-
}
|
|
74
|
-
dv = xi.funcs.merge(dv, sx.Value(), opts)
|
|
75
|
-
dx.Set(sx.Type(), dv)
|
|
76
|
-
(*dext)[num] = dx
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if mi.unknownOffset.IsValid() {
|
|
80
|
-
su := mi.getUnknownBytes(src)
|
|
81
|
-
if su != nil && len(*su) > 0 {
|
|
82
|
-
du := mi.mutableUnknownBytes(dst)
|
|
83
|
-
*du = append(*du, *su...)
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
func mergeScalarValue(dst, src pref.Value, opts mergeOptions) pref.Value {
|
|
89
|
-
return src
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
func mergeBytesValue(dst, src pref.Value, opts mergeOptions) pref.Value {
|
|
93
|
-
return pref.ValueOfBytes(append(emptyBuf[:], src.Bytes()...))
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
func mergeListValue(dst, src pref.Value, opts mergeOptions) pref.Value {
|
|
97
|
-
dstl := dst.List()
|
|
98
|
-
srcl := src.List()
|
|
99
|
-
for i, llen := 0, srcl.Len(); i < llen; i++ {
|
|
100
|
-
dstl.Append(srcl.Get(i))
|
|
101
|
-
}
|
|
102
|
-
return dst
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
func mergeBytesListValue(dst, src pref.Value, opts mergeOptions) pref.Value {
|
|
106
|
-
dstl := dst.List()
|
|
107
|
-
srcl := src.List()
|
|
108
|
-
for i, llen := 0, srcl.Len(); i < llen; i++ {
|
|
109
|
-
sb := srcl.Get(i).Bytes()
|
|
110
|
-
db := append(emptyBuf[:], sb...)
|
|
111
|
-
dstl.Append(pref.ValueOfBytes(db))
|
|
112
|
-
}
|
|
113
|
-
return dst
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
func mergeMessageListValue(dst, src pref.Value, opts mergeOptions) pref.Value {
|
|
117
|
-
dstl := dst.List()
|
|
118
|
-
srcl := src.List()
|
|
119
|
-
for i, llen := 0, srcl.Len(); i < llen; i++ {
|
|
120
|
-
sm := srcl.Get(i).Message()
|
|
121
|
-
dm := proto.Clone(sm.Interface()).ProtoReflect()
|
|
122
|
-
dstl.Append(pref.ValueOfMessage(dm))
|
|
123
|
-
}
|
|
124
|
-
return dst
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
func mergeMessageValue(dst, src pref.Value, opts mergeOptions) pref.Value {
|
|
128
|
-
opts.Merge(dst.Message().Interface(), src.Message().Interface())
|
|
129
|
-
return dst
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
func mergeMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {
|
|
133
|
-
if f.mi != nil {
|
|
134
|
-
if dst.Elem().IsNil() {
|
|
135
|
-
dst.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))
|
|
136
|
-
}
|
|
137
|
-
f.mi.mergePointer(dst.Elem(), src.Elem(), opts)
|
|
138
|
-
} else {
|
|
139
|
-
dm := dst.AsValueOf(f.ft).Elem()
|
|
140
|
-
sm := src.AsValueOf(f.ft).Elem()
|
|
141
|
-
if dm.IsNil() {
|
|
142
|
-
dm.Set(reflect.New(f.ft.Elem()))
|
|
143
|
-
}
|
|
144
|
-
opts.Merge(asMessage(dm), asMessage(sm))
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
func mergeMessageSlice(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {
|
|
149
|
-
for _, sp := range src.PointerSlice() {
|
|
150
|
-
dm := reflect.New(f.ft.Elem().Elem())
|
|
151
|
-
if f.mi != nil {
|
|
152
|
-
f.mi.mergePointer(pointerOfValue(dm), sp, opts)
|
|
153
|
-
} else {
|
|
154
|
-
opts.Merge(asMessage(dm), asMessage(sp.AsValueOf(f.ft.Elem().Elem())))
|
|
155
|
-
}
|
|
156
|
-
dst.AppendPointerSlice(pointerOfValue(dm))
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
func mergeBytes(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
161
|
-
*dst.Bytes() = append(emptyBuf[:], *src.Bytes()...)
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
func mergeBytesNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
165
|
-
v := *src.Bytes()
|
|
166
|
-
if len(v) > 0 {
|
|
167
|
-
*dst.Bytes() = append(emptyBuf[:], v...)
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
func mergeBytesSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
172
|
-
ds := dst.BytesSlice()
|
|
173
|
-
for _, v := range *src.BytesSlice() {
|
|
174
|
-
*ds = append(*ds, append(emptyBuf[:], v...))
|
|
175
|
-
}
|
|
176
|
-
}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
// Copyright 2018 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
|
-
// Code generated by generate-types. DO NOT EDIT.
|
|
6
|
-
|
|
7
|
-
package impl
|
|
8
|
-
|
|
9
|
-
import ()
|
|
10
|
-
|
|
11
|
-
func mergeBool(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
12
|
-
*dst.Bool() = *src.Bool()
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
func mergeBoolNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
16
|
-
v := *src.Bool()
|
|
17
|
-
if v != false {
|
|
18
|
-
*dst.Bool() = v
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
func mergeBoolPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
23
|
-
p := *src.BoolPtr()
|
|
24
|
-
if p != nil {
|
|
25
|
-
v := *p
|
|
26
|
-
*dst.BoolPtr() = &v
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
func mergeBoolSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
31
|
-
ds := dst.BoolSlice()
|
|
32
|
-
ss := src.BoolSlice()
|
|
33
|
-
*ds = append(*ds, *ss...)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
func mergeInt32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
37
|
-
*dst.Int32() = *src.Int32()
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
func mergeInt32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
41
|
-
v := *src.Int32()
|
|
42
|
-
if v != 0 {
|
|
43
|
-
*dst.Int32() = v
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
func mergeInt32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
48
|
-
p := *src.Int32Ptr()
|
|
49
|
-
if p != nil {
|
|
50
|
-
v := *p
|
|
51
|
-
*dst.Int32Ptr() = &v
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
func mergeInt32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
56
|
-
ds := dst.Int32Slice()
|
|
57
|
-
ss := src.Int32Slice()
|
|
58
|
-
*ds = append(*ds, *ss...)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
func mergeUint32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
62
|
-
*dst.Uint32() = *src.Uint32()
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
func mergeUint32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
66
|
-
v := *src.Uint32()
|
|
67
|
-
if v != 0 {
|
|
68
|
-
*dst.Uint32() = v
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
func mergeUint32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
73
|
-
p := *src.Uint32Ptr()
|
|
74
|
-
if p != nil {
|
|
75
|
-
v := *p
|
|
76
|
-
*dst.Uint32Ptr() = &v
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
func mergeUint32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
81
|
-
ds := dst.Uint32Slice()
|
|
82
|
-
ss := src.Uint32Slice()
|
|
83
|
-
*ds = append(*ds, *ss...)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
func mergeInt64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
87
|
-
*dst.Int64() = *src.Int64()
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
func mergeInt64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
91
|
-
v := *src.Int64()
|
|
92
|
-
if v != 0 {
|
|
93
|
-
*dst.Int64() = v
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
func mergeInt64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
98
|
-
p := *src.Int64Ptr()
|
|
99
|
-
if p != nil {
|
|
100
|
-
v := *p
|
|
101
|
-
*dst.Int64Ptr() = &v
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
func mergeInt64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
106
|
-
ds := dst.Int64Slice()
|
|
107
|
-
ss := src.Int64Slice()
|
|
108
|
-
*ds = append(*ds, *ss...)
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
func mergeUint64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
112
|
-
*dst.Uint64() = *src.Uint64()
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
func mergeUint64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
116
|
-
v := *src.Uint64()
|
|
117
|
-
if v != 0 {
|
|
118
|
-
*dst.Uint64() = v
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
func mergeUint64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
123
|
-
p := *src.Uint64Ptr()
|
|
124
|
-
if p != nil {
|
|
125
|
-
v := *p
|
|
126
|
-
*dst.Uint64Ptr() = &v
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
func mergeUint64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
131
|
-
ds := dst.Uint64Slice()
|
|
132
|
-
ss := src.Uint64Slice()
|
|
133
|
-
*ds = append(*ds, *ss...)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
func mergeFloat32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
137
|
-
*dst.Float32() = *src.Float32()
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
func mergeFloat32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
141
|
-
v := *src.Float32()
|
|
142
|
-
if v != 0 {
|
|
143
|
-
*dst.Float32() = v
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
func mergeFloat32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
148
|
-
p := *src.Float32Ptr()
|
|
149
|
-
if p != nil {
|
|
150
|
-
v := *p
|
|
151
|
-
*dst.Float32Ptr() = &v
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
func mergeFloat32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
156
|
-
ds := dst.Float32Slice()
|
|
157
|
-
ss := src.Float32Slice()
|
|
158
|
-
*ds = append(*ds, *ss...)
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
func mergeFloat64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
162
|
-
*dst.Float64() = *src.Float64()
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
func mergeFloat64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
166
|
-
v := *src.Float64()
|
|
167
|
-
if v != 0 {
|
|
168
|
-
*dst.Float64() = v
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
func mergeFloat64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
173
|
-
p := *src.Float64Ptr()
|
|
174
|
-
if p != nil {
|
|
175
|
-
v := *p
|
|
176
|
-
*dst.Float64Ptr() = &v
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
func mergeFloat64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
181
|
-
ds := dst.Float64Slice()
|
|
182
|
-
ss := src.Float64Slice()
|
|
183
|
-
*ds = append(*ds, *ss...)
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
func mergeString(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
187
|
-
*dst.String() = *src.String()
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
func mergeStringNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
191
|
-
v := *src.String()
|
|
192
|
-
if v != "" {
|
|
193
|
-
*dst.String() = v
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
func mergeStringPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
198
|
-
p := *src.StringPtr()
|
|
199
|
-
if p != nil {
|
|
200
|
-
v := *p
|
|
201
|
-
*dst.StringPtr() = &v
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
func mergeStringSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
206
|
-
ds := dst.StringSlice()
|
|
207
|
-
ss := src.StringSlice()
|
|
208
|
-
*ds = append(*ds, *ss...)
|
|
209
|
-
}
|
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
// Copyright 2018 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 impl
|
|
6
|
-
|
|
7
|
-
import (
|
|
8
|
-
"fmt"
|
|
9
|
-
"reflect"
|
|
10
|
-
"strconv"
|
|
11
|
-
"strings"
|
|
12
|
-
"sync"
|
|
13
|
-
"sync/atomic"
|
|
14
|
-
|
|
15
|
-
"google.golang.org/protobuf/internal/genid"
|
|
16
|
-
"google.golang.org/protobuf/reflect/protoreflect"
|
|
17
|
-
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
18
|
-
preg "google.golang.org/protobuf/reflect/protoregistry"
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
// MessageInfo provides protobuf related functionality for a given Go type
|
|
22
|
-
// that represents a message. A given instance of MessageInfo is tied to
|
|
23
|
-
// exactly one Go type, which must be a pointer to a struct type.
|
|
24
|
-
//
|
|
25
|
-
// The exported fields must be populated before any methods are called
|
|
26
|
-
// and cannot be mutated after set.
|
|
27
|
-
type MessageInfo struct {
|
|
28
|
-
// GoReflectType is the underlying message Go type and must be populated.
|
|
29
|
-
GoReflectType reflect.Type // pointer to struct
|
|
30
|
-
|
|
31
|
-
// Desc is the underlying message descriptor type and must be populated.
|
|
32
|
-
Desc pref.MessageDescriptor
|
|
33
|
-
|
|
34
|
-
// Exporter must be provided in a purego environment in order to provide
|
|
35
|
-
// access to unexported fields.
|
|
36
|
-
Exporter exporter
|
|
37
|
-
|
|
38
|
-
// OneofWrappers is list of pointers to oneof wrapper struct types.
|
|
39
|
-
OneofWrappers []interface{}
|
|
40
|
-
|
|
41
|
-
initMu sync.Mutex // protects all unexported fields
|
|
42
|
-
initDone uint32
|
|
43
|
-
|
|
44
|
-
reflectMessageInfo // for reflection implementation
|
|
45
|
-
coderMessageInfo // for fast-path method implementations
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// exporter is a function that returns a reference to the ith field of v,
|
|
49
|
-
// where v is a pointer to a struct. It returns nil if it does not support
|
|
50
|
-
// exporting the requested field (e.g., already exported).
|
|
51
|
-
type exporter func(v interface{}, i int) interface{}
|
|
52
|
-
|
|
53
|
-
// getMessageInfo returns the MessageInfo for any message type that
|
|
54
|
-
// is generated by our implementation of protoc-gen-go (for v2 and on).
|
|
55
|
-
// If it is unable to obtain a MessageInfo, it returns nil.
|
|
56
|
-
func getMessageInfo(mt reflect.Type) *MessageInfo {
|
|
57
|
-
m, ok := reflect.Zero(mt).Interface().(pref.ProtoMessage)
|
|
58
|
-
if !ok {
|
|
59
|
-
return nil
|
|
60
|
-
}
|
|
61
|
-
mr, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *MessageInfo })
|
|
62
|
-
if !ok {
|
|
63
|
-
return nil
|
|
64
|
-
}
|
|
65
|
-
return mr.ProtoMessageInfo()
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
func (mi *MessageInfo) init() {
|
|
69
|
-
// This function is called in the hot path. Inline the sync.Once logic,
|
|
70
|
-
// since allocating a closure for Once.Do is expensive.
|
|
71
|
-
// Keep init small to ensure that it can be inlined.
|
|
72
|
-
if atomic.LoadUint32(&mi.initDone) == 0 {
|
|
73
|
-
mi.initOnce()
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
func (mi *MessageInfo) initOnce() {
|
|
78
|
-
mi.initMu.Lock()
|
|
79
|
-
defer mi.initMu.Unlock()
|
|
80
|
-
if mi.initDone == 1 {
|
|
81
|
-
return
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
t := mi.GoReflectType
|
|
85
|
-
if t.Kind() != reflect.Ptr && t.Elem().Kind() != reflect.Struct {
|
|
86
|
-
panic(fmt.Sprintf("got %v, want *struct kind", t))
|
|
87
|
-
}
|
|
88
|
-
t = t.Elem()
|
|
89
|
-
|
|
90
|
-
si := mi.makeStructInfo(t)
|
|
91
|
-
mi.makeReflectFuncs(t, si)
|
|
92
|
-
mi.makeCoderMethods(t, si)
|
|
93
|
-
|
|
94
|
-
atomic.StoreUint32(&mi.initDone, 1)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// getPointer returns the pointer for a message, which should be of
|
|
98
|
-
// the type of the MessageInfo. If the message is of a different type,
|
|
99
|
-
// it returns ok==false.
|
|
100
|
-
func (mi *MessageInfo) getPointer(m pref.Message) (p pointer, ok bool) {
|
|
101
|
-
switch m := m.(type) {
|
|
102
|
-
case *messageState:
|
|
103
|
-
return m.pointer(), m.messageInfo() == mi
|
|
104
|
-
case *messageReflectWrapper:
|
|
105
|
-
return m.pointer(), m.messageInfo() == mi
|
|
106
|
-
}
|
|
107
|
-
return pointer{}, false
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
type (
|
|
111
|
-
SizeCache = int32
|
|
112
|
-
WeakFields = map[int32]protoreflect.ProtoMessage
|
|
113
|
-
UnknownFields = unknownFieldsA // TODO: switch to unknownFieldsB
|
|
114
|
-
unknownFieldsA = []byte
|
|
115
|
-
unknownFieldsB = *[]byte
|
|
116
|
-
ExtensionFields = map[int32]ExtensionField
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
var (
|
|
120
|
-
sizecacheType = reflect.TypeOf(SizeCache(0))
|
|
121
|
-
weakFieldsType = reflect.TypeOf(WeakFields(nil))
|
|
122
|
-
unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil))
|
|
123
|
-
unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil))
|
|
124
|
-
extensionFieldsType = reflect.TypeOf(ExtensionFields(nil))
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
type structInfo struct {
|
|
128
|
-
sizecacheOffset offset
|
|
129
|
-
sizecacheType reflect.Type
|
|
130
|
-
weakOffset offset
|
|
131
|
-
weakType reflect.Type
|
|
132
|
-
unknownOffset offset
|
|
133
|
-
unknownType reflect.Type
|
|
134
|
-
extensionOffset offset
|
|
135
|
-
extensionType reflect.Type
|
|
136
|
-
|
|
137
|
-
fieldsByNumber map[pref.FieldNumber]reflect.StructField
|
|
138
|
-
oneofsByName map[pref.Name]reflect.StructField
|
|
139
|
-
oneofWrappersByType map[reflect.Type]pref.FieldNumber
|
|
140
|
-
oneofWrappersByNumber map[pref.FieldNumber]reflect.Type
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {
|
|
144
|
-
si := structInfo{
|
|
145
|
-
sizecacheOffset: invalidOffset,
|
|
146
|
-
weakOffset: invalidOffset,
|
|
147
|
-
unknownOffset: invalidOffset,
|
|
148
|
-
extensionOffset: invalidOffset,
|
|
149
|
-
|
|
150
|
-
fieldsByNumber: map[pref.FieldNumber]reflect.StructField{},
|
|
151
|
-
oneofsByName: map[pref.Name]reflect.StructField{},
|
|
152
|
-
oneofWrappersByType: map[reflect.Type]pref.FieldNumber{},
|
|
153
|
-
oneofWrappersByNumber: map[pref.FieldNumber]reflect.Type{},
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
fieldLoop:
|
|
157
|
-
for i := 0; i < t.NumField(); i++ {
|
|
158
|
-
switch f := t.Field(i); f.Name {
|
|
159
|
-
case genid.SizeCache_goname, genid.SizeCacheA_goname:
|
|
160
|
-
if f.Type == sizecacheType {
|
|
161
|
-
si.sizecacheOffset = offsetOf(f, mi.Exporter)
|
|
162
|
-
si.sizecacheType = f.Type
|
|
163
|
-
}
|
|
164
|
-
case genid.WeakFields_goname, genid.WeakFieldsA_goname:
|
|
165
|
-
if f.Type == weakFieldsType {
|
|
166
|
-
si.weakOffset = offsetOf(f, mi.Exporter)
|
|
167
|
-
si.weakType = f.Type
|
|
168
|
-
}
|
|
169
|
-
case genid.UnknownFields_goname, genid.UnknownFieldsA_goname:
|
|
170
|
-
if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType {
|
|
171
|
-
si.unknownOffset = offsetOf(f, mi.Exporter)
|
|
172
|
-
si.unknownType = f.Type
|
|
173
|
-
}
|
|
174
|
-
case genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname:
|
|
175
|
-
if f.Type == extensionFieldsType {
|
|
176
|
-
si.extensionOffset = offsetOf(f, mi.Exporter)
|
|
177
|
-
si.extensionType = f.Type
|
|
178
|
-
}
|
|
179
|
-
default:
|
|
180
|
-
for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") {
|
|
181
|
-
if len(s) > 0 && strings.Trim(s, "0123456789") == "" {
|
|
182
|
-
n, _ := strconv.ParseUint(s, 10, 64)
|
|
183
|
-
si.fieldsByNumber[pref.FieldNumber(n)] = f
|
|
184
|
-
continue fieldLoop
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
if s := f.Tag.Get("protobuf_oneof"); len(s) > 0 {
|
|
188
|
-
si.oneofsByName[pref.Name(s)] = f
|
|
189
|
-
continue fieldLoop
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Derive a mapping of oneof wrappers to fields.
|
|
195
|
-
oneofWrappers := mi.OneofWrappers
|
|
196
|
-
for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} {
|
|
197
|
-
if fn, ok := reflect.PtrTo(t).MethodByName(method); ok {
|
|
198
|
-
for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) {
|
|
199
|
-
if vs, ok := v.Interface().([]interface{}); ok {
|
|
200
|
-
oneofWrappers = vs
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
for _, v := range oneofWrappers {
|
|
206
|
-
tf := reflect.TypeOf(v).Elem()
|
|
207
|
-
f := tf.Field(0)
|
|
208
|
-
for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") {
|
|
209
|
-
if len(s) > 0 && strings.Trim(s, "0123456789") == "" {
|
|
210
|
-
n, _ := strconv.ParseUint(s, 10, 64)
|
|
211
|
-
si.oneofWrappersByType[tf] = pref.FieldNumber(n)
|
|
212
|
-
si.oneofWrappersByNumber[pref.FieldNumber(n)] = tf
|
|
213
|
-
break
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return si
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
func (mi *MessageInfo) New() protoreflect.Message {
|
|
222
|
-
return mi.MessageOf(reflect.New(mi.GoReflectType.Elem()).Interface())
|
|
223
|
-
}
|
|
224
|
-
func (mi *MessageInfo) Zero() protoreflect.Message {
|
|
225
|
-
return mi.MessageOf(reflect.Zero(mi.GoReflectType).Interface())
|
|
226
|
-
}
|
|
227
|
-
func (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor {
|
|
228
|
-
return mi.Desc
|
|
229
|
-
}
|
|
230
|
-
func (mi *MessageInfo) Enum(i int) protoreflect.EnumType {
|
|
231
|
-
mi.init()
|
|
232
|
-
fd := mi.Desc.Fields().Get(i)
|
|
233
|
-
return Export{}.EnumTypeOf(mi.fieldTypes[fd.Number()])
|
|
234
|
-
}
|
|
235
|
-
func (mi *MessageInfo) Message(i int) protoreflect.MessageType {
|
|
236
|
-
mi.init()
|
|
237
|
-
fd := mi.Desc.Fields().Get(i)
|
|
238
|
-
switch {
|
|
239
|
-
case fd.IsWeak():
|
|
240
|
-
mt, _ := preg.GlobalTypes.FindMessageByName(fd.Message().FullName())
|
|
241
|
-
return mt
|
|
242
|
-
case fd.IsMap():
|
|
243
|
-
return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]}
|
|
244
|
-
default:
|
|
245
|
-
return Export{}.MessageTypeOf(mi.fieldTypes[fd.Number()])
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
type mapEntryType struct {
|
|
250
|
-
desc protoreflect.MessageDescriptor
|
|
251
|
-
valType interface{} // zero value of enum or message type
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
func (mt mapEntryType) New() protoreflect.Message {
|
|
255
|
-
return nil
|
|
256
|
-
}
|
|
257
|
-
func (mt mapEntryType) Zero() protoreflect.Message {
|
|
258
|
-
return nil
|
|
259
|
-
}
|
|
260
|
-
func (mt mapEntryType) Descriptor() protoreflect.MessageDescriptor {
|
|
261
|
-
return mt.desc
|
|
262
|
-
}
|
|
263
|
-
func (mt mapEntryType) Enum(i int) protoreflect.EnumType {
|
|
264
|
-
fd := mt.desc.Fields().Get(i)
|
|
265
|
-
if fd.Enum() == nil {
|
|
266
|
-
return nil
|
|
267
|
-
}
|
|
268
|
-
return Export{}.EnumTypeOf(mt.valType)
|
|
269
|
-
}
|
|
270
|
-
func (mt mapEntryType) Message(i int) protoreflect.MessageType {
|
|
271
|
-
fd := mt.desc.Fields().Get(i)
|
|
272
|
-
if fd.Message() == nil {
|
|
273
|
-
return nil
|
|
274
|
-
}
|
|
275
|
-
return Export{}.MessageTypeOf(mt.valType)
|
|
276
|
-
}
|