planetscale 0.1.0
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 +7 -0
- data/.github/workflows/ci.yml +24 -0
- data/.github/workflows/gem-push.yml +38 -0
- data/.github/workflows/licensed.yml +43 -0
- data/.gitignore +10 -0
- data/.licensed.yml +9 -0
- data/.licenses/go/github.com/armon/circbuf.dep.yml +31 -0
- data/.licenses/go/github.com/gorilla/mux.dep.yml +41 -0
- data/.licenses/go/github.com/hashicorp/go-cleanhttp.dep.yml +375 -0
- data/.licenses/go/github.com/mitchellh/go-homedir.dep.yml +32 -0
- data/.licenses/go/github.com/pkg/errors.dep.yml +36 -0
- data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +160 -0
- data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +180 -0
- data/.licenses/go/go.uber.org/atomic.dep.yml +31 -0
- data/.licenses/go/go.uber.org/multierr.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/buffer.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +30 -0
- data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +31 -0
- data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +31 -0
- data/.licenses/go/golang.org/x/net/context/ctxhttp.dep.yml +63 -0
- data/.licenses/go/golang.org/x/oauth2.dep.yml +44 -0
- data/.licenses/go/golang.org/x/oauth2/internal.dep.yml +38 -0
- data/.ruby_version +1 -0
- data/Gemfile +8 -0
- data/LICENSE +201 -0
- data/README.md +88 -0
- data/Rakefile +10 -0
- data/bin/console +15 -0
- data/bin/setup +17 -0
- data/controller.go +255 -0
- data/go.mod +16 -0
- data/go.sum +428 -0
- data/lib/generators/planetscale/install_generator.rb +58 -0
- data/lib/planetscale.rb +137 -0
- data/lib/planetscale/version.rb +5 -0
- data/planetscale.gemspec +44 -0
- data/proxy.go +128 -0
- data/vendor/github.com/armon/circbuf/.gitignore +22 -0
- data/vendor/github.com/armon/circbuf/LICENSE +20 -0
- data/vendor/github.com/armon/circbuf/README.md +28 -0
- data/vendor/github.com/armon/circbuf/circbuf.go +92 -0
- data/vendor/github.com/armon/circbuf/go.mod +1 -0
- data/vendor/github.com/golang/protobuf/AUTHORS +3 -0
- data/vendor/github.com/golang/protobuf/CONTRIBUTORS +3 -0
- data/vendor/github.com/golang/protobuf/LICENSE +28 -0
- data/vendor/github.com/golang/protobuf/proto/buffer.go +324 -0
- data/vendor/github.com/golang/protobuf/proto/defaults.go +63 -0
- data/vendor/github.com/golang/protobuf/proto/deprecated.go +113 -0
- data/vendor/github.com/golang/protobuf/proto/discard.go +58 -0
- data/vendor/github.com/golang/protobuf/proto/extensions.go +356 -0
- data/vendor/github.com/golang/protobuf/proto/properties.go +306 -0
- data/vendor/github.com/golang/protobuf/proto/proto.go +167 -0
- data/vendor/github.com/golang/protobuf/proto/registry.go +317 -0
- data/vendor/github.com/golang/protobuf/proto/text_decode.go +801 -0
- data/vendor/github.com/golang/protobuf/proto/text_encode.go +560 -0
- data/vendor/github.com/golang/protobuf/proto/wire.go +78 -0
- data/vendor/github.com/golang/protobuf/proto/wrappers.go +34 -0
- data/vendor/github.com/gorilla/mux/AUTHORS +8 -0
- data/vendor/github.com/gorilla/mux/LICENSE +27 -0
- data/vendor/github.com/gorilla/mux/README.md +805 -0
- data/vendor/github.com/gorilla/mux/doc.go +306 -0
- data/vendor/github.com/gorilla/mux/go.mod +3 -0
- data/vendor/github.com/gorilla/mux/middleware.go +74 -0
- data/vendor/github.com/gorilla/mux/mux.go +606 -0
- data/vendor/github.com/gorilla/mux/regexp.go +388 -0
- data/vendor/github.com/gorilla/mux/route.go +736 -0
- data/vendor/github.com/gorilla/mux/test_helpers.go +19 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +363 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/README.md +30 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +58 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +20 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +3 -0
- data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +48 -0
- data/vendor/github.com/mitchellh/go-homedir/LICENSE +21 -0
- data/vendor/github.com/mitchellh/go-homedir/README.md +14 -0
- data/vendor/github.com/mitchellh/go-homedir/go.mod +1 -0
- data/vendor/github.com/mitchellh/go-homedir/homedir.go +167 -0
- data/vendor/github.com/pkg/errors/.gitignore +24 -0
- data/vendor/github.com/pkg/errors/.travis.yml +10 -0
- data/vendor/github.com/pkg/errors/LICENSE +23 -0
- data/vendor/github.com/pkg/errors/Makefile +44 -0
- data/vendor/github.com/pkg/errors/README.md +59 -0
- data/vendor/github.com/pkg/errors/appveyor.yml +32 -0
- data/vendor/github.com/pkg/errors/errors.go +288 -0
- data/vendor/github.com/pkg/errors/go113.go +38 -0
- data/vendor/github.com/pkg/errors/stack.go +177 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +139 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +258 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +142 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +305 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +131 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +368 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +78 -0
- data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +163 -0
- data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +467 -0
- data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +73 -0
- data/vendor/go.uber.org/atomic/.codecov.yml +19 -0
- data/vendor/go.uber.org/atomic/.gitignore +12 -0
- data/vendor/go.uber.org/atomic/.travis.yml +27 -0
- data/vendor/go.uber.org/atomic/CHANGELOG.md +76 -0
- data/vendor/go.uber.org/atomic/LICENSE.txt +19 -0
- data/vendor/go.uber.org/atomic/Makefile +78 -0
- data/vendor/go.uber.org/atomic/README.md +63 -0
- data/vendor/go.uber.org/atomic/bool.go +81 -0
- data/vendor/go.uber.org/atomic/bool_ext.go +53 -0
- data/vendor/go.uber.org/atomic/doc.go +23 -0
- data/vendor/go.uber.org/atomic/duration.go +82 -0
- data/vendor/go.uber.org/atomic/duration_ext.go +40 -0
- data/vendor/go.uber.org/atomic/error.go +51 -0
- data/vendor/go.uber.org/atomic/error_ext.go +39 -0
- data/vendor/go.uber.org/atomic/float64.go +76 -0
- data/vendor/go.uber.org/atomic/float64_ext.go +47 -0
- data/vendor/go.uber.org/atomic/gen.go +26 -0
- data/vendor/go.uber.org/atomic/go.mod +8 -0
- data/vendor/go.uber.org/atomic/go.sum +9 -0
- data/vendor/go.uber.org/atomic/int32.go +102 -0
- data/vendor/go.uber.org/atomic/int64.go +102 -0
- data/vendor/go.uber.org/atomic/nocmp.go +35 -0
- data/vendor/go.uber.org/atomic/string.go +54 -0
- data/vendor/go.uber.org/atomic/string_ext.go +43 -0
- data/vendor/go.uber.org/atomic/uint32.go +102 -0
- data/vendor/go.uber.org/atomic/uint64.go +102 -0
- data/vendor/go.uber.org/atomic/value.go +31 -0
- data/vendor/go.uber.org/multierr/.codecov.yml +15 -0
- data/vendor/go.uber.org/multierr/.gitignore +4 -0
- data/vendor/go.uber.org/multierr/.travis.yml +23 -0
- data/vendor/go.uber.org/multierr/CHANGELOG.md +60 -0
- data/vendor/go.uber.org/multierr/LICENSE.txt +19 -0
- data/vendor/go.uber.org/multierr/Makefile +42 -0
- data/vendor/go.uber.org/multierr/README.md +23 -0
- data/vendor/go.uber.org/multierr/error.go +449 -0
- data/vendor/go.uber.org/multierr/glide.yaml +8 -0
- data/vendor/go.uber.org/multierr/go.mod +8 -0
- data/vendor/go.uber.org/multierr/go.sum +11 -0
- data/vendor/go.uber.org/multierr/go113.go +52 -0
- data/vendor/go.uber.org/zap/.codecov.yml +17 -0
- data/vendor/go.uber.org/zap/.gitignore +32 -0
- data/vendor/go.uber.org/zap/.readme.tmpl +109 -0
- data/vendor/go.uber.org/zap/.travis.yml +23 -0
- data/vendor/go.uber.org/zap/CHANGELOG.md +432 -0
- data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +75 -0
- data/vendor/go.uber.org/zap/CONTRIBUTING.md +81 -0
- data/vendor/go.uber.org/zap/FAQ.md +156 -0
- data/vendor/go.uber.org/zap/LICENSE.txt +19 -0
- data/vendor/go.uber.org/zap/Makefile +63 -0
- data/vendor/go.uber.org/zap/README.md +134 -0
- data/vendor/go.uber.org/zap/array.go +320 -0
- data/vendor/go.uber.org/zap/buffer/buffer.go +123 -0
- data/vendor/go.uber.org/zap/buffer/pool.go +49 -0
- data/vendor/go.uber.org/zap/checklicense.sh +17 -0
- data/vendor/go.uber.org/zap/config.go +264 -0
- data/vendor/go.uber.org/zap/doc.go +113 -0
- data/vendor/go.uber.org/zap/encoder.go +79 -0
- data/vendor/go.uber.org/zap/error.go +80 -0
- data/vendor/go.uber.org/zap/field.go +539 -0
- data/vendor/go.uber.org/zap/flag.go +39 -0
- data/vendor/go.uber.org/zap/glide.yaml +34 -0
- data/vendor/go.uber.org/zap/global.go +168 -0
- data/vendor/go.uber.org/zap/global_go112.go +26 -0
- data/vendor/go.uber.org/zap/global_prego112.go +26 -0
- data/vendor/go.uber.org/zap/go.mod +13 -0
- data/vendor/go.uber.org/zap/go.sum +56 -0
- data/vendor/go.uber.org/zap/http_handler.go +81 -0
- data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +31 -0
- data/vendor/go.uber.org/zap/internal/color/color.go +44 -0
- data/vendor/go.uber.org/zap/internal/exit/exit.go +64 -0
- data/vendor/go.uber.org/zap/level.go +132 -0
- data/vendor/go.uber.org/zap/logger.go +344 -0
- data/vendor/go.uber.org/zap/options.go +140 -0
- data/vendor/go.uber.org/zap/sink.go +161 -0
- data/vendor/go.uber.org/zap/stacktrace.go +85 -0
- data/vendor/go.uber.org/zap/sugar.go +304 -0
- data/vendor/go.uber.org/zap/time.go +27 -0
- data/vendor/go.uber.org/zap/writer.go +99 -0
- data/vendor/go.uber.org/zap/zapcore/console_encoder.go +161 -0
- data/vendor/go.uber.org/zap/zapcore/core.go +113 -0
- data/vendor/go.uber.org/zap/zapcore/doc.go +24 -0
- data/vendor/go.uber.org/zap/zapcore/encoder.go +443 -0
- data/vendor/go.uber.org/zap/zapcore/entry.go +264 -0
- data/vendor/go.uber.org/zap/zapcore/error.go +115 -0
- data/vendor/go.uber.org/zap/zapcore/field.go +227 -0
- data/vendor/go.uber.org/zap/zapcore/hook.go +68 -0
- data/vendor/go.uber.org/zap/zapcore/increase_level.go +66 -0
- data/vendor/go.uber.org/zap/zapcore/json_encoder.go +534 -0
- data/vendor/go.uber.org/zap/zapcore/level.go +175 -0
- data/vendor/go.uber.org/zap/zapcore/level_strings.go +46 -0
- data/vendor/go.uber.org/zap/zapcore/marshaler.go +61 -0
- data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +179 -0
- data/vendor/go.uber.org/zap/zapcore/sampler.go +208 -0
- data/vendor/go.uber.org/zap/zapcore/tee.go +81 -0
- data/vendor/go.uber.org/zap/zapcore/write_syncer.go +123 -0
- data/vendor/golang.org/x/net/AUTHORS +3 -0
- data/vendor/golang.org/x/net/CONTRIBUTORS +3 -0
- data/vendor/golang.org/x/net/LICENSE +27 -0
- data/vendor/golang.org/x/net/PATENTS +22 -0
- data/vendor/golang.org/x/net/context/context.go +56 -0
- data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +71 -0
- data/vendor/golang.org/x/net/context/go17.go +73 -0
- data/vendor/golang.org/x/net/context/go19.go +21 -0
- data/vendor/golang.org/x/net/context/pre_go17.go +301 -0
- data/vendor/golang.org/x/net/context/pre_go19.go +110 -0
- data/vendor/golang.org/x/oauth2/.travis.yml +13 -0
- data/vendor/golang.org/x/oauth2/AUTHORS +3 -0
- data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +26 -0
- data/vendor/golang.org/x/oauth2/CONTRIBUTORS +3 -0
- data/vendor/golang.org/x/oauth2/LICENSE +27 -0
- data/vendor/golang.org/x/oauth2/README.md +36 -0
- data/vendor/golang.org/x/oauth2/go.mod +9 -0
- data/vendor/golang.org/x/oauth2/go.sum +361 -0
- data/vendor/golang.org/x/oauth2/internal/client_appengine.go +14 -0
- data/vendor/golang.org/x/oauth2/internal/doc.go +6 -0
- data/vendor/golang.org/x/oauth2/internal/oauth2.go +37 -0
- data/vendor/golang.org/x/oauth2/internal/token.go +294 -0
- data/vendor/golang.org/x/oauth2/internal/transport.go +33 -0
- data/vendor/golang.org/x/oauth2/oauth2.go +381 -0
- data/vendor/golang.org/x/oauth2/token.go +178 -0
- data/vendor/golang.org/x/oauth2/transport.go +89 -0
- data/vendor/google.golang.org/appengine/LICENSE +202 -0
- data/vendor/google.golang.org/appengine/internal/api.go +678 -0
- data/vendor/google.golang.org/appengine/internal/api_classic.go +169 -0
- data/vendor/google.golang.org/appengine/internal/api_common.go +123 -0
- data/vendor/google.golang.org/appengine/internal/app_id.go +28 -0
- data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +308 -0
- data/vendor/google.golang.org/appengine/internal/base/api_base.proto +33 -0
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +4367 -0
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +551 -0
- data/vendor/google.golang.org/appengine/internal/identity.go +55 -0
- data/vendor/google.golang.org/appengine/internal/identity_classic.go +61 -0
- data/vendor/google.golang.org/appengine/internal/identity_flex.go +11 -0
- data/vendor/google.golang.org/appengine/internal/identity_vm.go +134 -0
- data/vendor/google.golang.org/appengine/internal/internal.go +110 -0
- data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +1313 -0
- data/vendor/google.golang.org/appengine/internal/log/log_service.proto +150 -0
- data/vendor/google.golang.org/appengine/internal/main.go +16 -0
- data/vendor/google.golang.org/appengine/internal/main_common.go +7 -0
- data/vendor/google.golang.org/appengine/internal/main_vm.go +69 -0
- data/vendor/google.golang.org/appengine/internal/metadata.go +60 -0
- data/vendor/google.golang.org/appengine/internal/net.go +56 -0
- data/vendor/google.golang.org/appengine/internal/regen.sh +40 -0
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +361 -0
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +44 -0
- data/vendor/google.golang.org/appengine/internal/transaction.go +115 -0
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +527 -0
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +64 -0
- data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +210 -0
- data/vendor/google.golang.org/protobuf/AUTHORS +3 -0
- data/vendor/google.golang.org/protobuf/CONTRIBUTORS +3 -0
- data/vendor/google.golang.org/protobuf/LICENSE +27 -0
- data/vendor/google.golang.org/protobuf/PATENTS +22 -0
- data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +773 -0
- data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +7 -0
- data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +371 -0
- data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +538 -0
- data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +318 -0
- data/vendor/google.golang.org/protobuf/internal/descopts/options.go +29 -0
- data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +69 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +213 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +241 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +207 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +665 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +190 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +161 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +373 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +29 -0
- data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +265 -0
- data/vendor/google.golang.org/protobuf/internal/errors/errors.go +89 -0
- data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +39 -0
- data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +12 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +158 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +631 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +471 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +704 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +450 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +356 -0
- data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +107 -0
- data/vendor/google.golang.org/protobuf/internal/filetype/build.go +297 -0
- data/vendor/google.golang.org/protobuf/internal/flags/flags.go +24 -0
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +9 -0
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +9 -0
- data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +34 -0
- data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +106 -0
- data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +829 -0
- data/vendor/google.golang.org/protobuf/internal/genid/doc.go +11 -0
- data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +34 -0
- data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +19 -0
- data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +31 -0
- data/vendor/google.golang.org/protobuf/internal/genid/goname.go +25 -0
- data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +16 -0
- data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +31 -0
- data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +116 -0
- data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +34 -0
- data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +184 -0
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +13 -0
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +175 -0
- data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +177 -0
- data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +141 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +223 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +830 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +5637 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +388 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +37 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +11 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +217 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +123 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +209 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +557 -0
- data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +17 -0
- data/vendor/google.golang.org/protobuf/internal/impl/convert.go +496 -0
- data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +141 -0
- data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +121 -0
- data/vendor/google.golang.org/protobuf/internal/impl/decode.go +276 -0
- data/vendor/google.golang.org/protobuf/internal/impl/encode.go +201 -0
- data/vendor/google.golang.org/protobuf/internal/impl/enum.go +21 -0
- data/vendor/google.golang.org/protobuf/internal/impl/extension.go +156 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +219 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +92 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +176 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +81 -0
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +558 -0
- data/vendor/google.golang.org/protobuf/internal/impl/merge.go +176 -0
- data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +209 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message.go +276 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +465 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +543 -0
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +249 -0
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +178 -0
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +174 -0
- data/vendor/google.golang.org/protobuf/internal/impl/validate.go +576 -0
- data/vendor/google.golang.org/protobuf/internal/impl/weak.go +74 -0
- data/vendor/google.golang.org/protobuf/internal/order/order.go +89 -0
- data/vendor/google.golang.org/protobuf/internal/order/range.go +115 -0
- data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +29 -0
- data/vendor/google.golang.org/protobuf/internal/set/ints.go +58 -0
- data/vendor/google.golang.org/protobuf/internal/strs/strings.go +196 -0
- data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +27 -0
- data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +94 -0
- data/vendor/google.golang.org/protobuf/internal/version/version.go +79 -0
- data/vendor/google.golang.org/protobuf/proto/checkinit.go +71 -0
- data/vendor/google.golang.org/protobuf/proto/decode.go +278 -0
- data/vendor/google.golang.org/protobuf/proto/decode_gen.go +603 -0
- data/vendor/google.golang.org/protobuf/proto/doc.go +94 -0
- data/vendor/google.golang.org/protobuf/proto/encode.go +319 -0
- data/vendor/google.golang.org/protobuf/proto/encode_gen.go +97 -0
- data/vendor/google.golang.org/protobuf/proto/equal.go +167 -0
- data/vendor/google.golang.org/protobuf/proto/extension.go +92 -0
- data/vendor/google.golang.org/protobuf/proto/merge.go +139 -0
- data/vendor/google.golang.org/protobuf/proto/messageset.go +93 -0
- data/vendor/google.golang.org/protobuf/proto/proto.go +43 -0
- data/vendor/google.golang.org/protobuf/proto/proto_methods.go +19 -0
- data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +19 -0
- data/vendor/google.golang.org/protobuf/proto/reset.go +43 -0
- data/vendor/google.golang.org/protobuf/proto/size.go +97 -0
- data/vendor/google.golang.org/protobuf/proto/size_gen.go +55 -0
- data/vendor/google.golang.org/protobuf/proto/wrappers.go +29 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +276 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +248 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +286 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +374 -0
- data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +252 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +77 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +504 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +128 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +461 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +665 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +285 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +59 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +411 -0
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +98 -0
- data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +869 -0
- data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +15 -0
- data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +167 -0
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +44 -0
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +56 -0
- data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +4039 -0
- data/vendor/modules.txt +79 -0
- metadata +495 -0
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
// +build purego appengine
|
|
6
|
+
|
|
7
|
+
package strs
|
|
8
|
+
|
|
9
|
+
import pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
10
|
+
|
|
11
|
+
func UnsafeString(b []byte) string {
|
|
12
|
+
return string(b)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
func UnsafeBytes(s string) []byte {
|
|
16
|
+
return []byte(s)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
type Builder struct{}
|
|
20
|
+
|
|
21
|
+
func (*Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.FullName {
|
|
22
|
+
return prefix.Append(name)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
func (*Builder) MakeString(b []byte) string {
|
|
26
|
+
return string(b)
|
|
27
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
// +build !purego,!appengine
|
|
6
|
+
|
|
7
|
+
package strs
|
|
8
|
+
|
|
9
|
+
import (
|
|
10
|
+
"unsafe"
|
|
11
|
+
|
|
12
|
+
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
type (
|
|
16
|
+
stringHeader struct {
|
|
17
|
+
Data unsafe.Pointer
|
|
18
|
+
Len int
|
|
19
|
+
}
|
|
20
|
+
sliceHeader struct {
|
|
21
|
+
Data unsafe.Pointer
|
|
22
|
+
Len int
|
|
23
|
+
Cap int
|
|
24
|
+
}
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
// UnsafeString returns an unsafe string reference of b.
|
|
28
|
+
// The caller must treat the input slice as immutable.
|
|
29
|
+
//
|
|
30
|
+
// WARNING: Use carefully. The returned result must not leak to the end user
|
|
31
|
+
// unless the input slice is provably immutable.
|
|
32
|
+
func UnsafeString(b []byte) (s string) {
|
|
33
|
+
src := (*sliceHeader)(unsafe.Pointer(&b))
|
|
34
|
+
dst := (*stringHeader)(unsafe.Pointer(&s))
|
|
35
|
+
dst.Data = src.Data
|
|
36
|
+
dst.Len = src.Len
|
|
37
|
+
return s
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// UnsafeBytes returns an unsafe bytes slice reference of s.
|
|
41
|
+
// The caller must treat returned slice as immutable.
|
|
42
|
+
//
|
|
43
|
+
// WARNING: Use carefully. The returned result must not leak to the end user.
|
|
44
|
+
func UnsafeBytes(s string) (b []byte) {
|
|
45
|
+
src := (*stringHeader)(unsafe.Pointer(&s))
|
|
46
|
+
dst := (*sliceHeader)(unsafe.Pointer(&b))
|
|
47
|
+
dst.Data = src.Data
|
|
48
|
+
dst.Len = src.Len
|
|
49
|
+
dst.Cap = src.Len
|
|
50
|
+
return b
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Builder builds a set of strings with shared lifetime.
|
|
54
|
+
// This differs from strings.Builder, which is for building a single string.
|
|
55
|
+
type Builder struct {
|
|
56
|
+
buf []byte
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// AppendFullName is equivalent to protoreflect.FullName.Append,
|
|
60
|
+
// but optimized for large batches where each name has a shared lifetime.
|
|
61
|
+
func (sb *Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.FullName {
|
|
62
|
+
n := len(prefix) + len(".") + len(name)
|
|
63
|
+
if len(prefix) == 0 {
|
|
64
|
+
n -= len(".")
|
|
65
|
+
}
|
|
66
|
+
sb.grow(n)
|
|
67
|
+
sb.buf = append(sb.buf, prefix...)
|
|
68
|
+
sb.buf = append(sb.buf, '.')
|
|
69
|
+
sb.buf = append(sb.buf, name...)
|
|
70
|
+
return pref.FullName(sb.last(n))
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// MakeString is equivalent to string(b), but optimized for large batches
|
|
74
|
+
// with a shared lifetime.
|
|
75
|
+
func (sb *Builder) MakeString(b []byte) string {
|
|
76
|
+
sb.grow(len(b))
|
|
77
|
+
sb.buf = append(sb.buf, b...)
|
|
78
|
+
return sb.last(len(b))
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
func (sb *Builder) grow(n int) {
|
|
82
|
+
if cap(sb.buf)-len(sb.buf) >= n {
|
|
83
|
+
return
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Unlike strings.Builder, we do not need to copy over the contents
|
|
87
|
+
// of the old buffer since our builder provides no API for
|
|
88
|
+
// retrieving previously created strings.
|
|
89
|
+
sb.buf = make([]byte, 2*(cap(sb.buf)+n))
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
func (sb *Builder) last(n int) string {
|
|
93
|
+
return UnsafeString(sb.buf[len(sb.buf)-n:])
|
|
94
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
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 version records versioning information about this module.
|
|
6
|
+
package version
|
|
7
|
+
|
|
8
|
+
import (
|
|
9
|
+
"fmt"
|
|
10
|
+
"strings"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
// These constants determine the current version of this module.
|
|
14
|
+
//
|
|
15
|
+
//
|
|
16
|
+
// For our release process, we enforce the following rules:
|
|
17
|
+
// * Tagged releases use a tag that is identical to String.
|
|
18
|
+
// * Tagged releases never reference a commit where the String
|
|
19
|
+
// contains "devel".
|
|
20
|
+
// * The set of all commits in this repository where String
|
|
21
|
+
// does not contain "devel" must have a unique String.
|
|
22
|
+
//
|
|
23
|
+
//
|
|
24
|
+
// Steps for tagging a new release:
|
|
25
|
+
// 1. Create a new CL.
|
|
26
|
+
//
|
|
27
|
+
// 2. Update Minor, Patch, and/or PreRelease as necessary.
|
|
28
|
+
// PreRelease must not contain the string "devel".
|
|
29
|
+
//
|
|
30
|
+
// 3. Since the last released minor version, have there been any changes to
|
|
31
|
+
// generator that relies on new functionality in the runtime?
|
|
32
|
+
// If yes, then increment RequiredGenerated.
|
|
33
|
+
//
|
|
34
|
+
// 4. Since the last released minor version, have there been any changes to
|
|
35
|
+
// the runtime that removes support for old .pb.go source code?
|
|
36
|
+
// If yes, then increment SupportMinimum.
|
|
37
|
+
//
|
|
38
|
+
// 5. Send out the CL for review and submit it.
|
|
39
|
+
// Note that the next CL in step 8 must be submitted after this CL
|
|
40
|
+
// without any other CLs in-between.
|
|
41
|
+
//
|
|
42
|
+
// 6. Tag a new version, where the tag is is the current String.
|
|
43
|
+
//
|
|
44
|
+
// 7. Write release notes for all notable changes
|
|
45
|
+
// between this release and the last release.
|
|
46
|
+
//
|
|
47
|
+
// 8. Create a new CL.
|
|
48
|
+
//
|
|
49
|
+
// 9. Update PreRelease to include the string "devel".
|
|
50
|
+
// For example: "" -> "devel" or "rc.1" -> "rc.1.devel"
|
|
51
|
+
//
|
|
52
|
+
// 10. Send out the CL for review and submit it.
|
|
53
|
+
const (
|
|
54
|
+
Major = 1
|
|
55
|
+
Minor = 26
|
|
56
|
+
Patch = 0
|
|
57
|
+
PreRelease = ""
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
// String formats the version string for this module in semver format.
|
|
61
|
+
//
|
|
62
|
+
// Examples:
|
|
63
|
+
// v1.20.1
|
|
64
|
+
// v1.21.0-rc.1
|
|
65
|
+
func String() string {
|
|
66
|
+
v := fmt.Sprintf("v%d.%d.%d", Major, Minor, Patch)
|
|
67
|
+
if PreRelease != "" {
|
|
68
|
+
v += "-" + PreRelease
|
|
69
|
+
|
|
70
|
+
// TODO: Add metadata about the commit or build hash.
|
|
71
|
+
// See https://golang.org/issue/29814
|
|
72
|
+
// See https://golang.org/issue/33533
|
|
73
|
+
var metadata string
|
|
74
|
+
if strings.Contains(PreRelease, "devel") && metadata != "" {
|
|
75
|
+
v += "+" + metadata
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return v
|
|
79
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
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 proto
|
|
6
|
+
|
|
7
|
+
import (
|
|
8
|
+
"google.golang.org/protobuf/internal/errors"
|
|
9
|
+
"google.golang.org/protobuf/reflect/protoreflect"
|
|
10
|
+
"google.golang.org/protobuf/runtime/protoiface"
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
// CheckInitialized returns an error if any required fields in m are not set.
|
|
14
|
+
func CheckInitialized(m Message) error {
|
|
15
|
+
// Treat a nil message interface as an "untyped" empty message,
|
|
16
|
+
// which we assume to have no required fields.
|
|
17
|
+
if m == nil {
|
|
18
|
+
return nil
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return checkInitialized(m.ProtoReflect())
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// CheckInitialized returns an error if any required fields in m are not set.
|
|
25
|
+
func checkInitialized(m protoreflect.Message) error {
|
|
26
|
+
if methods := protoMethods(m); methods != nil && methods.CheckInitialized != nil {
|
|
27
|
+
_, err := methods.CheckInitialized(protoiface.CheckInitializedInput{
|
|
28
|
+
Message: m,
|
|
29
|
+
})
|
|
30
|
+
return err
|
|
31
|
+
}
|
|
32
|
+
return checkInitializedSlow(m)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
func checkInitializedSlow(m protoreflect.Message) error {
|
|
36
|
+
md := m.Descriptor()
|
|
37
|
+
fds := md.Fields()
|
|
38
|
+
for i, nums := 0, md.RequiredNumbers(); i < nums.Len(); i++ {
|
|
39
|
+
fd := fds.ByNumber(nums.Get(i))
|
|
40
|
+
if !m.Has(fd) {
|
|
41
|
+
return errors.RequiredNotSet(string(fd.FullName()))
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
var err error
|
|
45
|
+
m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {
|
|
46
|
+
switch {
|
|
47
|
+
case fd.IsList():
|
|
48
|
+
if fd.Message() == nil {
|
|
49
|
+
return true
|
|
50
|
+
}
|
|
51
|
+
for i, list := 0, v.List(); i < list.Len() && err == nil; i++ {
|
|
52
|
+
err = checkInitialized(list.Get(i).Message())
|
|
53
|
+
}
|
|
54
|
+
case fd.IsMap():
|
|
55
|
+
if fd.MapValue().Message() == nil {
|
|
56
|
+
return true
|
|
57
|
+
}
|
|
58
|
+
v.Map().Range(func(key protoreflect.MapKey, v protoreflect.Value) bool {
|
|
59
|
+
err = checkInitialized(v.Message())
|
|
60
|
+
return err == nil
|
|
61
|
+
})
|
|
62
|
+
default:
|
|
63
|
+
if fd.Message() == nil {
|
|
64
|
+
return true
|
|
65
|
+
}
|
|
66
|
+
err = checkInitialized(v.Message())
|
|
67
|
+
}
|
|
68
|
+
return err == nil
|
|
69
|
+
})
|
|
70
|
+
return err
|
|
71
|
+
}
|
|
@@ -0,0 +1,278 @@
|
|
|
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 proto
|
|
6
|
+
|
|
7
|
+
import (
|
|
8
|
+
"google.golang.org/protobuf/encoding/protowire"
|
|
9
|
+
"google.golang.org/protobuf/internal/encoding/messageset"
|
|
10
|
+
"google.golang.org/protobuf/internal/errors"
|
|
11
|
+
"google.golang.org/protobuf/internal/flags"
|
|
12
|
+
"google.golang.org/protobuf/internal/genid"
|
|
13
|
+
"google.golang.org/protobuf/internal/pragma"
|
|
14
|
+
"google.golang.org/protobuf/reflect/protoreflect"
|
|
15
|
+
"google.golang.org/protobuf/reflect/protoregistry"
|
|
16
|
+
"google.golang.org/protobuf/runtime/protoiface"
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
// UnmarshalOptions configures the unmarshaler.
|
|
20
|
+
//
|
|
21
|
+
// Example usage:
|
|
22
|
+
// err := UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, m)
|
|
23
|
+
type UnmarshalOptions struct {
|
|
24
|
+
pragma.NoUnkeyedLiterals
|
|
25
|
+
|
|
26
|
+
// Merge merges the input into the destination message.
|
|
27
|
+
// The default behavior is to always reset the message before unmarshaling,
|
|
28
|
+
// unless Merge is specified.
|
|
29
|
+
Merge bool
|
|
30
|
+
|
|
31
|
+
// AllowPartial accepts input for messages that will result in missing
|
|
32
|
+
// required fields. If AllowPartial is false (the default), Unmarshal will
|
|
33
|
+
// return an error if there are any missing required fields.
|
|
34
|
+
AllowPartial bool
|
|
35
|
+
|
|
36
|
+
// If DiscardUnknown is set, unknown fields are ignored.
|
|
37
|
+
DiscardUnknown bool
|
|
38
|
+
|
|
39
|
+
// Resolver is used for looking up types when unmarshaling extension fields.
|
|
40
|
+
// If nil, this defaults to using protoregistry.GlobalTypes.
|
|
41
|
+
Resolver interface {
|
|
42
|
+
FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)
|
|
43
|
+
FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Unmarshal parses the wire-format message in b and places the result in m.
|
|
48
|
+
// The provided message must be mutable (e.g., a non-nil pointer to a message).
|
|
49
|
+
func Unmarshal(b []byte, m Message) error {
|
|
50
|
+
_, err := UnmarshalOptions{}.unmarshal(b, m.ProtoReflect())
|
|
51
|
+
return err
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Unmarshal parses the wire-format message in b and places the result in m.
|
|
55
|
+
// The provided message must be mutable (e.g., a non-nil pointer to a message).
|
|
56
|
+
func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error {
|
|
57
|
+
_, err := o.unmarshal(b, m.ProtoReflect())
|
|
58
|
+
return err
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// UnmarshalState parses a wire-format message and places the result in m.
|
|
62
|
+
//
|
|
63
|
+
// This method permits fine-grained control over the unmarshaler.
|
|
64
|
+
// Most users should use Unmarshal instead.
|
|
65
|
+
func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
|
66
|
+
return o.unmarshal(in.Buf, in.Message)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// unmarshal is a centralized function that all unmarshal operations go through.
|
|
70
|
+
// For profiling purposes, avoid changing the name of this function or
|
|
71
|
+
// introducing other code paths for unmarshal that do not go through this.
|
|
72
|
+
func (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out protoiface.UnmarshalOutput, err error) {
|
|
73
|
+
if o.Resolver == nil {
|
|
74
|
+
o.Resolver = protoregistry.GlobalTypes
|
|
75
|
+
}
|
|
76
|
+
if !o.Merge {
|
|
77
|
+
Reset(m.Interface())
|
|
78
|
+
}
|
|
79
|
+
allowPartial := o.AllowPartial
|
|
80
|
+
o.Merge = true
|
|
81
|
+
o.AllowPartial = true
|
|
82
|
+
methods := protoMethods(m)
|
|
83
|
+
if methods != nil && methods.Unmarshal != nil &&
|
|
84
|
+
!(o.DiscardUnknown && methods.Flags&protoiface.SupportUnmarshalDiscardUnknown == 0) {
|
|
85
|
+
in := protoiface.UnmarshalInput{
|
|
86
|
+
Message: m,
|
|
87
|
+
Buf: b,
|
|
88
|
+
Resolver: o.Resolver,
|
|
89
|
+
}
|
|
90
|
+
if o.DiscardUnknown {
|
|
91
|
+
in.Flags |= protoiface.UnmarshalDiscardUnknown
|
|
92
|
+
}
|
|
93
|
+
out, err = methods.Unmarshal(in)
|
|
94
|
+
} else {
|
|
95
|
+
err = o.unmarshalMessageSlow(b, m)
|
|
96
|
+
}
|
|
97
|
+
if err != nil {
|
|
98
|
+
return out, err
|
|
99
|
+
}
|
|
100
|
+
if allowPartial || (out.Flags&protoiface.UnmarshalInitialized != 0) {
|
|
101
|
+
return out, nil
|
|
102
|
+
}
|
|
103
|
+
return out, checkInitialized(m)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
func (o UnmarshalOptions) unmarshalMessage(b []byte, m protoreflect.Message) error {
|
|
107
|
+
_, err := o.unmarshal(b, m)
|
|
108
|
+
return err
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
func (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) error {
|
|
112
|
+
md := m.Descriptor()
|
|
113
|
+
if messageset.IsMessageSet(md) {
|
|
114
|
+
return o.unmarshalMessageSet(b, m)
|
|
115
|
+
}
|
|
116
|
+
fields := md.Fields()
|
|
117
|
+
for len(b) > 0 {
|
|
118
|
+
// Parse the tag (field number and wire type).
|
|
119
|
+
num, wtyp, tagLen := protowire.ConsumeTag(b)
|
|
120
|
+
if tagLen < 0 {
|
|
121
|
+
return errDecode
|
|
122
|
+
}
|
|
123
|
+
if num > protowire.MaxValidNumber {
|
|
124
|
+
return errDecode
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Find the field descriptor for this field number.
|
|
128
|
+
fd := fields.ByNumber(num)
|
|
129
|
+
if fd == nil && md.ExtensionRanges().Has(num) {
|
|
130
|
+
extType, err := o.Resolver.FindExtensionByNumber(md.FullName(), num)
|
|
131
|
+
if err != nil && err != protoregistry.NotFound {
|
|
132
|
+
return errors.New("%v: unable to resolve extension %v: %v", md.FullName(), num, err)
|
|
133
|
+
}
|
|
134
|
+
if extType != nil {
|
|
135
|
+
fd = extType.TypeDescriptor()
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
var err error
|
|
139
|
+
if fd == nil {
|
|
140
|
+
err = errUnknown
|
|
141
|
+
} else if flags.ProtoLegacy {
|
|
142
|
+
if fd.IsWeak() && fd.Message().IsPlaceholder() {
|
|
143
|
+
err = errUnknown // weak referent is not linked in
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Parse the field value.
|
|
148
|
+
var valLen int
|
|
149
|
+
switch {
|
|
150
|
+
case err != nil:
|
|
151
|
+
case fd.IsList():
|
|
152
|
+
valLen, err = o.unmarshalList(b[tagLen:], wtyp, m.Mutable(fd).List(), fd)
|
|
153
|
+
case fd.IsMap():
|
|
154
|
+
valLen, err = o.unmarshalMap(b[tagLen:], wtyp, m.Mutable(fd).Map(), fd)
|
|
155
|
+
default:
|
|
156
|
+
valLen, err = o.unmarshalSingular(b[tagLen:], wtyp, m, fd)
|
|
157
|
+
}
|
|
158
|
+
if err != nil {
|
|
159
|
+
if err != errUnknown {
|
|
160
|
+
return err
|
|
161
|
+
}
|
|
162
|
+
valLen = protowire.ConsumeFieldValue(num, wtyp, b[tagLen:])
|
|
163
|
+
if valLen < 0 {
|
|
164
|
+
return errDecode
|
|
165
|
+
}
|
|
166
|
+
if !o.DiscardUnknown {
|
|
167
|
+
m.SetUnknown(append(m.GetUnknown(), b[:tagLen+valLen]...))
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
b = b[tagLen+valLen:]
|
|
171
|
+
}
|
|
172
|
+
return nil
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
func (o UnmarshalOptions) unmarshalSingular(b []byte, wtyp protowire.Type, m protoreflect.Message, fd protoreflect.FieldDescriptor) (n int, err error) {
|
|
176
|
+
v, n, err := o.unmarshalScalar(b, wtyp, fd)
|
|
177
|
+
if err != nil {
|
|
178
|
+
return 0, err
|
|
179
|
+
}
|
|
180
|
+
switch fd.Kind() {
|
|
181
|
+
case protoreflect.GroupKind, protoreflect.MessageKind:
|
|
182
|
+
m2 := m.Mutable(fd).Message()
|
|
183
|
+
if err := o.unmarshalMessage(v.Bytes(), m2); err != nil {
|
|
184
|
+
return n, err
|
|
185
|
+
}
|
|
186
|
+
default:
|
|
187
|
+
// Non-message scalars replace the previous value.
|
|
188
|
+
m.Set(fd, v)
|
|
189
|
+
}
|
|
190
|
+
return n, nil
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) {
|
|
194
|
+
if wtyp != protowire.BytesType {
|
|
195
|
+
return 0, errUnknown
|
|
196
|
+
}
|
|
197
|
+
b, n = protowire.ConsumeBytes(b)
|
|
198
|
+
if n < 0 {
|
|
199
|
+
return 0, errDecode
|
|
200
|
+
}
|
|
201
|
+
var (
|
|
202
|
+
keyField = fd.MapKey()
|
|
203
|
+
valField = fd.MapValue()
|
|
204
|
+
key protoreflect.Value
|
|
205
|
+
val protoreflect.Value
|
|
206
|
+
haveKey bool
|
|
207
|
+
haveVal bool
|
|
208
|
+
)
|
|
209
|
+
switch valField.Kind() {
|
|
210
|
+
case protoreflect.GroupKind, protoreflect.MessageKind:
|
|
211
|
+
val = mapv.NewValue()
|
|
212
|
+
}
|
|
213
|
+
// Map entries are represented as a two-element message with fields
|
|
214
|
+
// containing the key and value.
|
|
215
|
+
for len(b) > 0 {
|
|
216
|
+
num, wtyp, n := protowire.ConsumeTag(b)
|
|
217
|
+
if n < 0 {
|
|
218
|
+
return 0, errDecode
|
|
219
|
+
}
|
|
220
|
+
if num > protowire.MaxValidNumber {
|
|
221
|
+
return 0, errDecode
|
|
222
|
+
}
|
|
223
|
+
b = b[n:]
|
|
224
|
+
err = errUnknown
|
|
225
|
+
switch num {
|
|
226
|
+
case genid.MapEntry_Key_field_number:
|
|
227
|
+
key, n, err = o.unmarshalScalar(b, wtyp, keyField)
|
|
228
|
+
if err != nil {
|
|
229
|
+
break
|
|
230
|
+
}
|
|
231
|
+
haveKey = true
|
|
232
|
+
case genid.MapEntry_Value_field_number:
|
|
233
|
+
var v protoreflect.Value
|
|
234
|
+
v, n, err = o.unmarshalScalar(b, wtyp, valField)
|
|
235
|
+
if err != nil {
|
|
236
|
+
break
|
|
237
|
+
}
|
|
238
|
+
switch valField.Kind() {
|
|
239
|
+
case protoreflect.GroupKind, protoreflect.MessageKind:
|
|
240
|
+
if err := o.unmarshalMessage(v.Bytes(), val.Message()); err != nil {
|
|
241
|
+
return 0, err
|
|
242
|
+
}
|
|
243
|
+
default:
|
|
244
|
+
val = v
|
|
245
|
+
}
|
|
246
|
+
haveVal = true
|
|
247
|
+
}
|
|
248
|
+
if err == errUnknown {
|
|
249
|
+
n = protowire.ConsumeFieldValue(num, wtyp, b)
|
|
250
|
+
if n < 0 {
|
|
251
|
+
return 0, errDecode
|
|
252
|
+
}
|
|
253
|
+
} else if err != nil {
|
|
254
|
+
return 0, err
|
|
255
|
+
}
|
|
256
|
+
b = b[n:]
|
|
257
|
+
}
|
|
258
|
+
// Every map entry should have entries for key and value, but this is not strictly required.
|
|
259
|
+
if !haveKey {
|
|
260
|
+
key = keyField.Default()
|
|
261
|
+
}
|
|
262
|
+
if !haveVal {
|
|
263
|
+
switch valField.Kind() {
|
|
264
|
+
case protoreflect.GroupKind, protoreflect.MessageKind:
|
|
265
|
+
default:
|
|
266
|
+
val = valField.Default()
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
mapv.Set(key.MapKey(), val)
|
|
270
|
+
return n, nil
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// errUnknown is used internally to indicate fields which should be added
|
|
274
|
+
// to the unknown field set of a message. It is never returned from an exported
|
|
275
|
+
// function.
|
|
276
|
+
var errUnknown = errors.New("BUG: internal error (unknown)")
|
|
277
|
+
|
|
278
|
+
var errDecode = errors.New("cannot parse invalid wire-format data")
|