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,123 @@
|
|
|
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 impl
|
|
6
|
+
|
|
7
|
+
import (
|
|
8
|
+
"sort"
|
|
9
|
+
|
|
10
|
+
"google.golang.org/protobuf/encoding/protowire"
|
|
11
|
+
"google.golang.org/protobuf/internal/encoding/messageset"
|
|
12
|
+
"google.golang.org/protobuf/internal/errors"
|
|
13
|
+
"google.golang.org/protobuf/internal/flags"
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
func sizeMessageSet(mi *MessageInfo, p pointer, opts marshalOptions) (size int) {
|
|
17
|
+
if !flags.ProtoLegacy {
|
|
18
|
+
return 0
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
ext := *p.Apply(mi.extensionOffset).Extensions()
|
|
22
|
+
for _, x := range ext {
|
|
23
|
+
xi := getExtensionFieldInfo(x.Type())
|
|
24
|
+
if xi.funcs.size == nil {
|
|
25
|
+
continue
|
|
26
|
+
}
|
|
27
|
+
num, _ := protowire.DecodeTag(xi.wiretag)
|
|
28
|
+
size += messageset.SizeField(num)
|
|
29
|
+
size += xi.funcs.size(x.Value(), protowire.SizeTag(messageset.FieldMessage), opts)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if u := mi.getUnknownBytes(p); u != nil {
|
|
33
|
+
size += messageset.SizeUnknown(*u)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return size
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
func marshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts marshalOptions) ([]byte, error) {
|
|
40
|
+
if !flags.ProtoLegacy {
|
|
41
|
+
return b, errors.New("no support for message_set_wire_format")
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
ext := *p.Apply(mi.extensionOffset).Extensions()
|
|
45
|
+
switch len(ext) {
|
|
46
|
+
case 0:
|
|
47
|
+
case 1:
|
|
48
|
+
// Fast-path for one extension: Don't bother sorting the keys.
|
|
49
|
+
for _, x := range ext {
|
|
50
|
+
var err error
|
|
51
|
+
b, err = marshalMessageSetField(mi, b, x, opts)
|
|
52
|
+
if err != nil {
|
|
53
|
+
return b, err
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
default:
|
|
57
|
+
// Sort the keys to provide a deterministic encoding.
|
|
58
|
+
// Not sure this is required, but the old code does it.
|
|
59
|
+
keys := make([]int, 0, len(ext))
|
|
60
|
+
for k := range ext {
|
|
61
|
+
keys = append(keys, int(k))
|
|
62
|
+
}
|
|
63
|
+
sort.Ints(keys)
|
|
64
|
+
for _, k := range keys {
|
|
65
|
+
var err error
|
|
66
|
+
b, err = marshalMessageSetField(mi, b, ext[int32(k)], opts)
|
|
67
|
+
if err != nil {
|
|
68
|
+
return b, err
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if u := mi.getUnknownBytes(p); u != nil {
|
|
74
|
+
var err error
|
|
75
|
+
b, err = messageset.AppendUnknown(b, *u)
|
|
76
|
+
if err != nil {
|
|
77
|
+
return b, err
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return b, nil
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
func marshalMessageSetField(mi *MessageInfo, b []byte, x ExtensionField, opts marshalOptions) ([]byte, error) {
|
|
85
|
+
xi := getExtensionFieldInfo(x.Type())
|
|
86
|
+
num, _ := protowire.DecodeTag(xi.wiretag)
|
|
87
|
+
b = messageset.AppendFieldStart(b, num)
|
|
88
|
+
b, err := xi.funcs.marshal(b, x.Value(), protowire.EncodeTag(messageset.FieldMessage, protowire.BytesType), opts)
|
|
89
|
+
if err != nil {
|
|
90
|
+
return b, err
|
|
91
|
+
}
|
|
92
|
+
b = messageset.AppendFieldEnd(b)
|
|
93
|
+
return b, nil
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
func unmarshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
|
97
|
+
if !flags.ProtoLegacy {
|
|
98
|
+
return out, errors.New("no support for message_set_wire_format")
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
ep := p.Apply(mi.extensionOffset).Extensions()
|
|
102
|
+
if *ep == nil {
|
|
103
|
+
*ep = make(map[int32]ExtensionField)
|
|
104
|
+
}
|
|
105
|
+
ext := *ep
|
|
106
|
+
initialized := true
|
|
107
|
+
err = messageset.Unmarshal(b, true, func(num protowire.Number, v []byte) error {
|
|
108
|
+
o, err := mi.unmarshalExtension(v, num, protowire.BytesType, ext, opts)
|
|
109
|
+
if err == errUnknown {
|
|
110
|
+
u := mi.mutableUnknownBytes(p)
|
|
111
|
+
*u = protowire.AppendTag(*u, num, protowire.BytesType)
|
|
112
|
+
*u = append(*u, v...)
|
|
113
|
+
return nil
|
|
114
|
+
}
|
|
115
|
+
if !o.initialized {
|
|
116
|
+
initialized = false
|
|
117
|
+
}
|
|
118
|
+
return err
|
|
119
|
+
})
|
|
120
|
+
out.n = len(b)
|
|
121
|
+
out.initialized = initialized
|
|
122
|
+
return out, err
|
|
123
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
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
|
+
// +build purego appengine
|
|
6
|
+
|
|
7
|
+
package impl
|
|
8
|
+
|
|
9
|
+
import (
|
|
10
|
+
"reflect"
|
|
11
|
+
|
|
12
|
+
"google.golang.org/protobuf/encoding/protowire"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
func sizeEnum(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) {
|
|
16
|
+
v := p.v.Elem().Int()
|
|
17
|
+
return f.tagsize + protowire.SizeVarint(uint64(v))
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
func appendEnum(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {
|
|
21
|
+
v := p.v.Elem().Int()
|
|
22
|
+
b = protowire.AppendVarint(b, f.wiretag)
|
|
23
|
+
b = protowire.AppendVarint(b, uint64(v))
|
|
24
|
+
return b, nil
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
func consumeEnum(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) {
|
|
28
|
+
if wtyp != protowire.VarintType {
|
|
29
|
+
return out, errUnknown
|
|
30
|
+
}
|
|
31
|
+
v, n := protowire.ConsumeVarint(b)
|
|
32
|
+
if n < 0 {
|
|
33
|
+
return out, errDecode
|
|
34
|
+
}
|
|
35
|
+
p.v.Elem().SetInt(int64(v))
|
|
36
|
+
out.n = n
|
|
37
|
+
return out, nil
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
func mergeEnum(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
41
|
+
dst.v.Elem().Set(src.v.Elem())
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var coderEnum = pointerCoderFuncs{
|
|
45
|
+
size: sizeEnum,
|
|
46
|
+
marshal: appendEnum,
|
|
47
|
+
unmarshal: consumeEnum,
|
|
48
|
+
merge: mergeEnum,
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
func sizeEnumNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {
|
|
52
|
+
if p.v.Elem().Int() == 0 {
|
|
53
|
+
return 0
|
|
54
|
+
}
|
|
55
|
+
return sizeEnum(p, f, opts)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
func appendEnumNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {
|
|
59
|
+
if p.v.Elem().Int() == 0 {
|
|
60
|
+
return b, nil
|
|
61
|
+
}
|
|
62
|
+
return appendEnum(b, p, f, opts)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
func mergeEnumNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
66
|
+
if src.v.Elem().Int() != 0 {
|
|
67
|
+
dst.v.Elem().Set(src.v.Elem())
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var coderEnumNoZero = pointerCoderFuncs{
|
|
72
|
+
size: sizeEnumNoZero,
|
|
73
|
+
marshal: appendEnumNoZero,
|
|
74
|
+
unmarshal: consumeEnum,
|
|
75
|
+
merge: mergeEnumNoZero,
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
func sizeEnumPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {
|
|
79
|
+
return sizeEnum(pointer{p.v.Elem()}, f, opts)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
func appendEnumPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {
|
|
83
|
+
return appendEnum(b, pointer{p.v.Elem()}, f, opts)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
func consumeEnumPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
|
87
|
+
if wtyp != protowire.VarintType {
|
|
88
|
+
return out, errUnknown
|
|
89
|
+
}
|
|
90
|
+
if p.v.Elem().IsNil() {
|
|
91
|
+
p.v.Elem().Set(reflect.New(p.v.Elem().Type().Elem()))
|
|
92
|
+
}
|
|
93
|
+
return consumeEnum(b, pointer{p.v.Elem()}, wtyp, f, opts)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
func mergeEnumPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
97
|
+
if !src.v.Elem().IsNil() {
|
|
98
|
+
v := reflect.New(dst.v.Type().Elem().Elem())
|
|
99
|
+
v.Elem().Set(src.v.Elem().Elem())
|
|
100
|
+
dst.v.Elem().Set(v)
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
var coderEnumPtr = pointerCoderFuncs{
|
|
105
|
+
size: sizeEnumPtr,
|
|
106
|
+
marshal: appendEnumPtr,
|
|
107
|
+
unmarshal: consumeEnumPtr,
|
|
108
|
+
merge: mergeEnumPtr,
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
func sizeEnumSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {
|
|
112
|
+
s := p.v.Elem()
|
|
113
|
+
for i, llen := 0, s.Len(); i < llen; i++ {
|
|
114
|
+
size += protowire.SizeVarint(uint64(s.Index(i).Int())) + f.tagsize
|
|
115
|
+
}
|
|
116
|
+
return size
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
func appendEnumSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {
|
|
120
|
+
s := p.v.Elem()
|
|
121
|
+
for i, llen := 0, s.Len(); i < llen; i++ {
|
|
122
|
+
b = protowire.AppendVarint(b, f.wiretag)
|
|
123
|
+
b = protowire.AppendVarint(b, uint64(s.Index(i).Int()))
|
|
124
|
+
}
|
|
125
|
+
return b, nil
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
func consumeEnumSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
|
|
129
|
+
s := p.v.Elem()
|
|
130
|
+
if wtyp == protowire.BytesType {
|
|
131
|
+
b, n := protowire.ConsumeBytes(b)
|
|
132
|
+
if n < 0 {
|
|
133
|
+
return out, errDecode
|
|
134
|
+
}
|
|
135
|
+
for len(b) > 0 {
|
|
136
|
+
v, n := protowire.ConsumeVarint(b)
|
|
137
|
+
if n < 0 {
|
|
138
|
+
return out, errDecode
|
|
139
|
+
}
|
|
140
|
+
rv := reflect.New(s.Type().Elem()).Elem()
|
|
141
|
+
rv.SetInt(int64(v))
|
|
142
|
+
s.Set(reflect.Append(s, rv))
|
|
143
|
+
b = b[n:]
|
|
144
|
+
}
|
|
145
|
+
out.n = n
|
|
146
|
+
return out, nil
|
|
147
|
+
}
|
|
148
|
+
if wtyp != protowire.VarintType {
|
|
149
|
+
return out, errUnknown
|
|
150
|
+
}
|
|
151
|
+
v, n := protowire.ConsumeVarint(b)
|
|
152
|
+
if n < 0 {
|
|
153
|
+
return out, errDecode
|
|
154
|
+
}
|
|
155
|
+
rv := reflect.New(s.Type().Elem()).Elem()
|
|
156
|
+
rv.SetInt(int64(v))
|
|
157
|
+
s.Set(reflect.Append(s, rv))
|
|
158
|
+
out.n = n
|
|
159
|
+
return out, nil
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
func mergeEnumSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {
|
|
163
|
+
dst.v.Elem().Set(reflect.AppendSlice(dst.v.Elem(), src.v.Elem()))
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
var coderEnumSlice = pointerCoderFuncs{
|
|
167
|
+
size: sizeEnumSlice,
|
|
168
|
+
marshal: appendEnumSlice,
|
|
169
|
+
unmarshal: consumeEnumSlice,
|
|
170
|
+
merge: mergeEnumSlice,
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
func sizeEnumPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {
|
|
174
|
+
s := p.v.Elem()
|
|
175
|
+
llen := s.Len()
|
|
176
|
+
if llen == 0 {
|
|
177
|
+
return 0
|
|
178
|
+
}
|
|
179
|
+
n := 0
|
|
180
|
+
for i := 0; i < llen; i++ {
|
|
181
|
+
n += protowire.SizeVarint(uint64(s.Index(i).Int()))
|
|
182
|
+
}
|
|
183
|
+
return f.tagsize + protowire.SizeBytes(n)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
func appendEnumPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {
|
|
187
|
+
s := p.v.Elem()
|
|
188
|
+
llen := s.Len()
|
|
189
|
+
if llen == 0 {
|
|
190
|
+
return b, nil
|
|
191
|
+
}
|
|
192
|
+
b = protowire.AppendVarint(b, f.wiretag)
|
|
193
|
+
n := 0
|
|
194
|
+
for i := 0; i < llen; i++ {
|
|
195
|
+
n += protowire.SizeVarint(uint64(s.Index(i).Int()))
|
|
196
|
+
}
|
|
197
|
+
b = protowire.AppendVarint(b, uint64(n))
|
|
198
|
+
for i := 0; i < llen; i++ {
|
|
199
|
+
b = protowire.AppendVarint(b, uint64(s.Index(i).Int()))
|
|
200
|
+
}
|
|
201
|
+
return b, nil
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
var coderEnumPackedSlice = pointerCoderFuncs{
|
|
205
|
+
size: sizeEnumPackedSlice,
|
|
206
|
+
marshal: appendEnumPackedSlice,
|
|
207
|
+
unmarshal: consumeEnumSlice,
|
|
208
|
+
merge: mergeEnumSlice,
|
|
209
|
+
}
|
|
@@ -0,0 +1,557 @@
|
|
|
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 impl
|
|
6
|
+
|
|
7
|
+
import (
|
|
8
|
+
"fmt"
|
|
9
|
+
"reflect"
|
|
10
|
+
|
|
11
|
+
"google.golang.org/protobuf/encoding/protowire"
|
|
12
|
+
"google.golang.org/protobuf/internal/strs"
|
|
13
|
+
pref "google.golang.org/protobuf/reflect/protoreflect"
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
// pointerCoderFuncs is a set of pointer encoding functions.
|
|
17
|
+
type pointerCoderFuncs struct {
|
|
18
|
+
mi *MessageInfo
|
|
19
|
+
size func(p pointer, f *coderFieldInfo, opts marshalOptions) int
|
|
20
|
+
marshal func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error)
|
|
21
|
+
unmarshal func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error)
|
|
22
|
+
isInit func(p pointer, f *coderFieldInfo) error
|
|
23
|
+
merge func(dst, src pointer, f *coderFieldInfo, opts mergeOptions)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// valueCoderFuncs is a set of protoreflect.Value encoding functions.
|
|
27
|
+
type valueCoderFuncs struct {
|
|
28
|
+
size func(v pref.Value, tagsize int, opts marshalOptions) int
|
|
29
|
+
marshal func(b []byte, v pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error)
|
|
30
|
+
unmarshal func(b []byte, v pref.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (pref.Value, unmarshalOutput, error)
|
|
31
|
+
isInit func(v pref.Value) error
|
|
32
|
+
merge func(dst, src pref.Value, opts mergeOptions) pref.Value
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// fieldCoder returns pointer functions for a field, used for operating on
|
|
36
|
+
// struct fields.
|
|
37
|
+
func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) {
|
|
38
|
+
switch {
|
|
39
|
+
case fd.IsMap():
|
|
40
|
+
return encoderFuncsForMap(fd, ft)
|
|
41
|
+
case fd.Cardinality() == pref.Repeated && !fd.IsPacked():
|
|
42
|
+
// Repeated fields (not packed).
|
|
43
|
+
if ft.Kind() != reflect.Slice {
|
|
44
|
+
break
|
|
45
|
+
}
|
|
46
|
+
ft := ft.Elem()
|
|
47
|
+
switch fd.Kind() {
|
|
48
|
+
case pref.BoolKind:
|
|
49
|
+
if ft.Kind() == reflect.Bool {
|
|
50
|
+
return nil, coderBoolSlice
|
|
51
|
+
}
|
|
52
|
+
case pref.EnumKind:
|
|
53
|
+
if ft.Kind() == reflect.Int32 {
|
|
54
|
+
return nil, coderEnumSlice
|
|
55
|
+
}
|
|
56
|
+
case pref.Int32Kind:
|
|
57
|
+
if ft.Kind() == reflect.Int32 {
|
|
58
|
+
return nil, coderInt32Slice
|
|
59
|
+
}
|
|
60
|
+
case pref.Sint32Kind:
|
|
61
|
+
if ft.Kind() == reflect.Int32 {
|
|
62
|
+
return nil, coderSint32Slice
|
|
63
|
+
}
|
|
64
|
+
case pref.Uint32Kind:
|
|
65
|
+
if ft.Kind() == reflect.Uint32 {
|
|
66
|
+
return nil, coderUint32Slice
|
|
67
|
+
}
|
|
68
|
+
case pref.Int64Kind:
|
|
69
|
+
if ft.Kind() == reflect.Int64 {
|
|
70
|
+
return nil, coderInt64Slice
|
|
71
|
+
}
|
|
72
|
+
case pref.Sint64Kind:
|
|
73
|
+
if ft.Kind() == reflect.Int64 {
|
|
74
|
+
return nil, coderSint64Slice
|
|
75
|
+
}
|
|
76
|
+
case pref.Uint64Kind:
|
|
77
|
+
if ft.Kind() == reflect.Uint64 {
|
|
78
|
+
return nil, coderUint64Slice
|
|
79
|
+
}
|
|
80
|
+
case pref.Sfixed32Kind:
|
|
81
|
+
if ft.Kind() == reflect.Int32 {
|
|
82
|
+
return nil, coderSfixed32Slice
|
|
83
|
+
}
|
|
84
|
+
case pref.Fixed32Kind:
|
|
85
|
+
if ft.Kind() == reflect.Uint32 {
|
|
86
|
+
return nil, coderFixed32Slice
|
|
87
|
+
}
|
|
88
|
+
case pref.FloatKind:
|
|
89
|
+
if ft.Kind() == reflect.Float32 {
|
|
90
|
+
return nil, coderFloatSlice
|
|
91
|
+
}
|
|
92
|
+
case pref.Sfixed64Kind:
|
|
93
|
+
if ft.Kind() == reflect.Int64 {
|
|
94
|
+
return nil, coderSfixed64Slice
|
|
95
|
+
}
|
|
96
|
+
case pref.Fixed64Kind:
|
|
97
|
+
if ft.Kind() == reflect.Uint64 {
|
|
98
|
+
return nil, coderFixed64Slice
|
|
99
|
+
}
|
|
100
|
+
case pref.DoubleKind:
|
|
101
|
+
if ft.Kind() == reflect.Float64 {
|
|
102
|
+
return nil, coderDoubleSlice
|
|
103
|
+
}
|
|
104
|
+
case pref.StringKind:
|
|
105
|
+
if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {
|
|
106
|
+
return nil, coderStringSliceValidateUTF8
|
|
107
|
+
}
|
|
108
|
+
if ft.Kind() == reflect.String {
|
|
109
|
+
return nil, coderStringSlice
|
|
110
|
+
}
|
|
111
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {
|
|
112
|
+
return nil, coderBytesSliceValidateUTF8
|
|
113
|
+
}
|
|
114
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {
|
|
115
|
+
return nil, coderBytesSlice
|
|
116
|
+
}
|
|
117
|
+
case pref.BytesKind:
|
|
118
|
+
if ft.Kind() == reflect.String {
|
|
119
|
+
return nil, coderStringSlice
|
|
120
|
+
}
|
|
121
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {
|
|
122
|
+
return nil, coderBytesSlice
|
|
123
|
+
}
|
|
124
|
+
case pref.MessageKind:
|
|
125
|
+
return getMessageInfo(ft), makeMessageSliceFieldCoder(fd, ft)
|
|
126
|
+
case pref.GroupKind:
|
|
127
|
+
return getMessageInfo(ft), makeGroupSliceFieldCoder(fd, ft)
|
|
128
|
+
}
|
|
129
|
+
case fd.Cardinality() == pref.Repeated && fd.IsPacked():
|
|
130
|
+
// Packed repeated fields.
|
|
131
|
+
//
|
|
132
|
+
// Only repeated fields of primitive numeric types
|
|
133
|
+
// (Varint, Fixed32, or Fixed64 wire type) can be packed.
|
|
134
|
+
if ft.Kind() != reflect.Slice {
|
|
135
|
+
break
|
|
136
|
+
}
|
|
137
|
+
ft := ft.Elem()
|
|
138
|
+
switch fd.Kind() {
|
|
139
|
+
case pref.BoolKind:
|
|
140
|
+
if ft.Kind() == reflect.Bool {
|
|
141
|
+
return nil, coderBoolPackedSlice
|
|
142
|
+
}
|
|
143
|
+
case pref.EnumKind:
|
|
144
|
+
if ft.Kind() == reflect.Int32 {
|
|
145
|
+
return nil, coderEnumPackedSlice
|
|
146
|
+
}
|
|
147
|
+
case pref.Int32Kind:
|
|
148
|
+
if ft.Kind() == reflect.Int32 {
|
|
149
|
+
return nil, coderInt32PackedSlice
|
|
150
|
+
}
|
|
151
|
+
case pref.Sint32Kind:
|
|
152
|
+
if ft.Kind() == reflect.Int32 {
|
|
153
|
+
return nil, coderSint32PackedSlice
|
|
154
|
+
}
|
|
155
|
+
case pref.Uint32Kind:
|
|
156
|
+
if ft.Kind() == reflect.Uint32 {
|
|
157
|
+
return nil, coderUint32PackedSlice
|
|
158
|
+
}
|
|
159
|
+
case pref.Int64Kind:
|
|
160
|
+
if ft.Kind() == reflect.Int64 {
|
|
161
|
+
return nil, coderInt64PackedSlice
|
|
162
|
+
}
|
|
163
|
+
case pref.Sint64Kind:
|
|
164
|
+
if ft.Kind() == reflect.Int64 {
|
|
165
|
+
return nil, coderSint64PackedSlice
|
|
166
|
+
}
|
|
167
|
+
case pref.Uint64Kind:
|
|
168
|
+
if ft.Kind() == reflect.Uint64 {
|
|
169
|
+
return nil, coderUint64PackedSlice
|
|
170
|
+
}
|
|
171
|
+
case pref.Sfixed32Kind:
|
|
172
|
+
if ft.Kind() == reflect.Int32 {
|
|
173
|
+
return nil, coderSfixed32PackedSlice
|
|
174
|
+
}
|
|
175
|
+
case pref.Fixed32Kind:
|
|
176
|
+
if ft.Kind() == reflect.Uint32 {
|
|
177
|
+
return nil, coderFixed32PackedSlice
|
|
178
|
+
}
|
|
179
|
+
case pref.FloatKind:
|
|
180
|
+
if ft.Kind() == reflect.Float32 {
|
|
181
|
+
return nil, coderFloatPackedSlice
|
|
182
|
+
}
|
|
183
|
+
case pref.Sfixed64Kind:
|
|
184
|
+
if ft.Kind() == reflect.Int64 {
|
|
185
|
+
return nil, coderSfixed64PackedSlice
|
|
186
|
+
}
|
|
187
|
+
case pref.Fixed64Kind:
|
|
188
|
+
if ft.Kind() == reflect.Uint64 {
|
|
189
|
+
return nil, coderFixed64PackedSlice
|
|
190
|
+
}
|
|
191
|
+
case pref.DoubleKind:
|
|
192
|
+
if ft.Kind() == reflect.Float64 {
|
|
193
|
+
return nil, coderDoublePackedSlice
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
case fd.Kind() == pref.MessageKind:
|
|
197
|
+
return getMessageInfo(ft), makeMessageFieldCoder(fd, ft)
|
|
198
|
+
case fd.Kind() == pref.GroupKind:
|
|
199
|
+
return getMessageInfo(ft), makeGroupFieldCoder(fd, ft)
|
|
200
|
+
case fd.Syntax() == pref.Proto3 && fd.ContainingOneof() == nil:
|
|
201
|
+
// Populated oneof fields always encode even if set to the zero value,
|
|
202
|
+
// which normally are not encoded in proto3.
|
|
203
|
+
switch fd.Kind() {
|
|
204
|
+
case pref.BoolKind:
|
|
205
|
+
if ft.Kind() == reflect.Bool {
|
|
206
|
+
return nil, coderBoolNoZero
|
|
207
|
+
}
|
|
208
|
+
case pref.EnumKind:
|
|
209
|
+
if ft.Kind() == reflect.Int32 {
|
|
210
|
+
return nil, coderEnumNoZero
|
|
211
|
+
}
|
|
212
|
+
case pref.Int32Kind:
|
|
213
|
+
if ft.Kind() == reflect.Int32 {
|
|
214
|
+
return nil, coderInt32NoZero
|
|
215
|
+
}
|
|
216
|
+
case pref.Sint32Kind:
|
|
217
|
+
if ft.Kind() == reflect.Int32 {
|
|
218
|
+
return nil, coderSint32NoZero
|
|
219
|
+
}
|
|
220
|
+
case pref.Uint32Kind:
|
|
221
|
+
if ft.Kind() == reflect.Uint32 {
|
|
222
|
+
return nil, coderUint32NoZero
|
|
223
|
+
}
|
|
224
|
+
case pref.Int64Kind:
|
|
225
|
+
if ft.Kind() == reflect.Int64 {
|
|
226
|
+
return nil, coderInt64NoZero
|
|
227
|
+
}
|
|
228
|
+
case pref.Sint64Kind:
|
|
229
|
+
if ft.Kind() == reflect.Int64 {
|
|
230
|
+
return nil, coderSint64NoZero
|
|
231
|
+
}
|
|
232
|
+
case pref.Uint64Kind:
|
|
233
|
+
if ft.Kind() == reflect.Uint64 {
|
|
234
|
+
return nil, coderUint64NoZero
|
|
235
|
+
}
|
|
236
|
+
case pref.Sfixed32Kind:
|
|
237
|
+
if ft.Kind() == reflect.Int32 {
|
|
238
|
+
return nil, coderSfixed32NoZero
|
|
239
|
+
}
|
|
240
|
+
case pref.Fixed32Kind:
|
|
241
|
+
if ft.Kind() == reflect.Uint32 {
|
|
242
|
+
return nil, coderFixed32NoZero
|
|
243
|
+
}
|
|
244
|
+
case pref.FloatKind:
|
|
245
|
+
if ft.Kind() == reflect.Float32 {
|
|
246
|
+
return nil, coderFloatNoZero
|
|
247
|
+
}
|
|
248
|
+
case pref.Sfixed64Kind:
|
|
249
|
+
if ft.Kind() == reflect.Int64 {
|
|
250
|
+
return nil, coderSfixed64NoZero
|
|
251
|
+
}
|
|
252
|
+
case pref.Fixed64Kind:
|
|
253
|
+
if ft.Kind() == reflect.Uint64 {
|
|
254
|
+
return nil, coderFixed64NoZero
|
|
255
|
+
}
|
|
256
|
+
case pref.DoubleKind:
|
|
257
|
+
if ft.Kind() == reflect.Float64 {
|
|
258
|
+
return nil, coderDoubleNoZero
|
|
259
|
+
}
|
|
260
|
+
case pref.StringKind:
|
|
261
|
+
if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {
|
|
262
|
+
return nil, coderStringNoZeroValidateUTF8
|
|
263
|
+
}
|
|
264
|
+
if ft.Kind() == reflect.String {
|
|
265
|
+
return nil, coderStringNoZero
|
|
266
|
+
}
|
|
267
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {
|
|
268
|
+
return nil, coderBytesNoZeroValidateUTF8
|
|
269
|
+
}
|
|
270
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {
|
|
271
|
+
return nil, coderBytesNoZero
|
|
272
|
+
}
|
|
273
|
+
case pref.BytesKind:
|
|
274
|
+
if ft.Kind() == reflect.String {
|
|
275
|
+
return nil, coderStringNoZero
|
|
276
|
+
}
|
|
277
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {
|
|
278
|
+
return nil, coderBytesNoZero
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
case ft.Kind() == reflect.Ptr:
|
|
282
|
+
ft := ft.Elem()
|
|
283
|
+
switch fd.Kind() {
|
|
284
|
+
case pref.BoolKind:
|
|
285
|
+
if ft.Kind() == reflect.Bool {
|
|
286
|
+
return nil, coderBoolPtr
|
|
287
|
+
}
|
|
288
|
+
case pref.EnumKind:
|
|
289
|
+
if ft.Kind() == reflect.Int32 {
|
|
290
|
+
return nil, coderEnumPtr
|
|
291
|
+
}
|
|
292
|
+
case pref.Int32Kind:
|
|
293
|
+
if ft.Kind() == reflect.Int32 {
|
|
294
|
+
return nil, coderInt32Ptr
|
|
295
|
+
}
|
|
296
|
+
case pref.Sint32Kind:
|
|
297
|
+
if ft.Kind() == reflect.Int32 {
|
|
298
|
+
return nil, coderSint32Ptr
|
|
299
|
+
}
|
|
300
|
+
case pref.Uint32Kind:
|
|
301
|
+
if ft.Kind() == reflect.Uint32 {
|
|
302
|
+
return nil, coderUint32Ptr
|
|
303
|
+
}
|
|
304
|
+
case pref.Int64Kind:
|
|
305
|
+
if ft.Kind() == reflect.Int64 {
|
|
306
|
+
return nil, coderInt64Ptr
|
|
307
|
+
}
|
|
308
|
+
case pref.Sint64Kind:
|
|
309
|
+
if ft.Kind() == reflect.Int64 {
|
|
310
|
+
return nil, coderSint64Ptr
|
|
311
|
+
}
|
|
312
|
+
case pref.Uint64Kind:
|
|
313
|
+
if ft.Kind() == reflect.Uint64 {
|
|
314
|
+
return nil, coderUint64Ptr
|
|
315
|
+
}
|
|
316
|
+
case pref.Sfixed32Kind:
|
|
317
|
+
if ft.Kind() == reflect.Int32 {
|
|
318
|
+
return nil, coderSfixed32Ptr
|
|
319
|
+
}
|
|
320
|
+
case pref.Fixed32Kind:
|
|
321
|
+
if ft.Kind() == reflect.Uint32 {
|
|
322
|
+
return nil, coderFixed32Ptr
|
|
323
|
+
}
|
|
324
|
+
case pref.FloatKind:
|
|
325
|
+
if ft.Kind() == reflect.Float32 {
|
|
326
|
+
return nil, coderFloatPtr
|
|
327
|
+
}
|
|
328
|
+
case pref.Sfixed64Kind:
|
|
329
|
+
if ft.Kind() == reflect.Int64 {
|
|
330
|
+
return nil, coderSfixed64Ptr
|
|
331
|
+
}
|
|
332
|
+
case pref.Fixed64Kind:
|
|
333
|
+
if ft.Kind() == reflect.Uint64 {
|
|
334
|
+
return nil, coderFixed64Ptr
|
|
335
|
+
}
|
|
336
|
+
case pref.DoubleKind:
|
|
337
|
+
if ft.Kind() == reflect.Float64 {
|
|
338
|
+
return nil, coderDoublePtr
|
|
339
|
+
}
|
|
340
|
+
case pref.StringKind:
|
|
341
|
+
if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {
|
|
342
|
+
return nil, coderStringPtrValidateUTF8
|
|
343
|
+
}
|
|
344
|
+
if ft.Kind() == reflect.String {
|
|
345
|
+
return nil, coderStringPtr
|
|
346
|
+
}
|
|
347
|
+
case pref.BytesKind:
|
|
348
|
+
if ft.Kind() == reflect.String {
|
|
349
|
+
return nil, coderStringPtr
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
default:
|
|
353
|
+
switch fd.Kind() {
|
|
354
|
+
case pref.BoolKind:
|
|
355
|
+
if ft.Kind() == reflect.Bool {
|
|
356
|
+
return nil, coderBool
|
|
357
|
+
}
|
|
358
|
+
case pref.EnumKind:
|
|
359
|
+
if ft.Kind() == reflect.Int32 {
|
|
360
|
+
return nil, coderEnum
|
|
361
|
+
}
|
|
362
|
+
case pref.Int32Kind:
|
|
363
|
+
if ft.Kind() == reflect.Int32 {
|
|
364
|
+
return nil, coderInt32
|
|
365
|
+
}
|
|
366
|
+
case pref.Sint32Kind:
|
|
367
|
+
if ft.Kind() == reflect.Int32 {
|
|
368
|
+
return nil, coderSint32
|
|
369
|
+
}
|
|
370
|
+
case pref.Uint32Kind:
|
|
371
|
+
if ft.Kind() == reflect.Uint32 {
|
|
372
|
+
return nil, coderUint32
|
|
373
|
+
}
|
|
374
|
+
case pref.Int64Kind:
|
|
375
|
+
if ft.Kind() == reflect.Int64 {
|
|
376
|
+
return nil, coderInt64
|
|
377
|
+
}
|
|
378
|
+
case pref.Sint64Kind:
|
|
379
|
+
if ft.Kind() == reflect.Int64 {
|
|
380
|
+
return nil, coderSint64
|
|
381
|
+
}
|
|
382
|
+
case pref.Uint64Kind:
|
|
383
|
+
if ft.Kind() == reflect.Uint64 {
|
|
384
|
+
return nil, coderUint64
|
|
385
|
+
}
|
|
386
|
+
case pref.Sfixed32Kind:
|
|
387
|
+
if ft.Kind() == reflect.Int32 {
|
|
388
|
+
return nil, coderSfixed32
|
|
389
|
+
}
|
|
390
|
+
case pref.Fixed32Kind:
|
|
391
|
+
if ft.Kind() == reflect.Uint32 {
|
|
392
|
+
return nil, coderFixed32
|
|
393
|
+
}
|
|
394
|
+
case pref.FloatKind:
|
|
395
|
+
if ft.Kind() == reflect.Float32 {
|
|
396
|
+
return nil, coderFloat
|
|
397
|
+
}
|
|
398
|
+
case pref.Sfixed64Kind:
|
|
399
|
+
if ft.Kind() == reflect.Int64 {
|
|
400
|
+
return nil, coderSfixed64
|
|
401
|
+
}
|
|
402
|
+
case pref.Fixed64Kind:
|
|
403
|
+
if ft.Kind() == reflect.Uint64 {
|
|
404
|
+
return nil, coderFixed64
|
|
405
|
+
}
|
|
406
|
+
case pref.DoubleKind:
|
|
407
|
+
if ft.Kind() == reflect.Float64 {
|
|
408
|
+
return nil, coderDouble
|
|
409
|
+
}
|
|
410
|
+
case pref.StringKind:
|
|
411
|
+
if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {
|
|
412
|
+
return nil, coderStringValidateUTF8
|
|
413
|
+
}
|
|
414
|
+
if ft.Kind() == reflect.String {
|
|
415
|
+
return nil, coderString
|
|
416
|
+
}
|
|
417
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {
|
|
418
|
+
return nil, coderBytesValidateUTF8
|
|
419
|
+
}
|
|
420
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {
|
|
421
|
+
return nil, coderBytes
|
|
422
|
+
}
|
|
423
|
+
case pref.BytesKind:
|
|
424
|
+
if ft.Kind() == reflect.String {
|
|
425
|
+
return nil, coderString
|
|
426
|
+
}
|
|
427
|
+
if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {
|
|
428
|
+
return nil, coderBytes
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
panic(fmt.Sprintf("invalid type: no encoder for %v %v %v/%v", fd.FullName(), fd.Cardinality(), fd.Kind(), ft))
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
// encoderFuncsForValue returns value functions for a field, used for
|
|
436
|
+
// extension values and map encoding.
|
|
437
|
+
func encoderFuncsForValue(fd pref.FieldDescriptor) valueCoderFuncs {
|
|
438
|
+
switch {
|
|
439
|
+
case fd.Cardinality() == pref.Repeated && !fd.IsPacked():
|
|
440
|
+
switch fd.Kind() {
|
|
441
|
+
case pref.BoolKind:
|
|
442
|
+
return coderBoolSliceValue
|
|
443
|
+
case pref.EnumKind:
|
|
444
|
+
return coderEnumSliceValue
|
|
445
|
+
case pref.Int32Kind:
|
|
446
|
+
return coderInt32SliceValue
|
|
447
|
+
case pref.Sint32Kind:
|
|
448
|
+
return coderSint32SliceValue
|
|
449
|
+
case pref.Uint32Kind:
|
|
450
|
+
return coderUint32SliceValue
|
|
451
|
+
case pref.Int64Kind:
|
|
452
|
+
return coderInt64SliceValue
|
|
453
|
+
case pref.Sint64Kind:
|
|
454
|
+
return coderSint64SliceValue
|
|
455
|
+
case pref.Uint64Kind:
|
|
456
|
+
return coderUint64SliceValue
|
|
457
|
+
case pref.Sfixed32Kind:
|
|
458
|
+
return coderSfixed32SliceValue
|
|
459
|
+
case pref.Fixed32Kind:
|
|
460
|
+
return coderFixed32SliceValue
|
|
461
|
+
case pref.FloatKind:
|
|
462
|
+
return coderFloatSliceValue
|
|
463
|
+
case pref.Sfixed64Kind:
|
|
464
|
+
return coderSfixed64SliceValue
|
|
465
|
+
case pref.Fixed64Kind:
|
|
466
|
+
return coderFixed64SliceValue
|
|
467
|
+
case pref.DoubleKind:
|
|
468
|
+
return coderDoubleSliceValue
|
|
469
|
+
case pref.StringKind:
|
|
470
|
+
// We don't have a UTF-8 validating coder for repeated string fields.
|
|
471
|
+
// Value coders are used for extensions and maps.
|
|
472
|
+
// Extensions are never proto3, and maps never contain lists.
|
|
473
|
+
return coderStringSliceValue
|
|
474
|
+
case pref.BytesKind:
|
|
475
|
+
return coderBytesSliceValue
|
|
476
|
+
case pref.MessageKind:
|
|
477
|
+
return coderMessageSliceValue
|
|
478
|
+
case pref.GroupKind:
|
|
479
|
+
return coderGroupSliceValue
|
|
480
|
+
}
|
|
481
|
+
case fd.Cardinality() == pref.Repeated && fd.IsPacked():
|
|
482
|
+
switch fd.Kind() {
|
|
483
|
+
case pref.BoolKind:
|
|
484
|
+
return coderBoolPackedSliceValue
|
|
485
|
+
case pref.EnumKind:
|
|
486
|
+
return coderEnumPackedSliceValue
|
|
487
|
+
case pref.Int32Kind:
|
|
488
|
+
return coderInt32PackedSliceValue
|
|
489
|
+
case pref.Sint32Kind:
|
|
490
|
+
return coderSint32PackedSliceValue
|
|
491
|
+
case pref.Uint32Kind:
|
|
492
|
+
return coderUint32PackedSliceValue
|
|
493
|
+
case pref.Int64Kind:
|
|
494
|
+
return coderInt64PackedSliceValue
|
|
495
|
+
case pref.Sint64Kind:
|
|
496
|
+
return coderSint64PackedSliceValue
|
|
497
|
+
case pref.Uint64Kind:
|
|
498
|
+
return coderUint64PackedSliceValue
|
|
499
|
+
case pref.Sfixed32Kind:
|
|
500
|
+
return coderSfixed32PackedSliceValue
|
|
501
|
+
case pref.Fixed32Kind:
|
|
502
|
+
return coderFixed32PackedSliceValue
|
|
503
|
+
case pref.FloatKind:
|
|
504
|
+
return coderFloatPackedSliceValue
|
|
505
|
+
case pref.Sfixed64Kind:
|
|
506
|
+
return coderSfixed64PackedSliceValue
|
|
507
|
+
case pref.Fixed64Kind:
|
|
508
|
+
return coderFixed64PackedSliceValue
|
|
509
|
+
case pref.DoubleKind:
|
|
510
|
+
return coderDoublePackedSliceValue
|
|
511
|
+
}
|
|
512
|
+
default:
|
|
513
|
+
switch fd.Kind() {
|
|
514
|
+
default:
|
|
515
|
+
case pref.BoolKind:
|
|
516
|
+
return coderBoolValue
|
|
517
|
+
case pref.EnumKind:
|
|
518
|
+
return coderEnumValue
|
|
519
|
+
case pref.Int32Kind:
|
|
520
|
+
return coderInt32Value
|
|
521
|
+
case pref.Sint32Kind:
|
|
522
|
+
return coderSint32Value
|
|
523
|
+
case pref.Uint32Kind:
|
|
524
|
+
return coderUint32Value
|
|
525
|
+
case pref.Int64Kind:
|
|
526
|
+
return coderInt64Value
|
|
527
|
+
case pref.Sint64Kind:
|
|
528
|
+
return coderSint64Value
|
|
529
|
+
case pref.Uint64Kind:
|
|
530
|
+
return coderUint64Value
|
|
531
|
+
case pref.Sfixed32Kind:
|
|
532
|
+
return coderSfixed32Value
|
|
533
|
+
case pref.Fixed32Kind:
|
|
534
|
+
return coderFixed32Value
|
|
535
|
+
case pref.FloatKind:
|
|
536
|
+
return coderFloatValue
|
|
537
|
+
case pref.Sfixed64Kind:
|
|
538
|
+
return coderSfixed64Value
|
|
539
|
+
case pref.Fixed64Kind:
|
|
540
|
+
return coderFixed64Value
|
|
541
|
+
case pref.DoubleKind:
|
|
542
|
+
return coderDoubleValue
|
|
543
|
+
case pref.StringKind:
|
|
544
|
+
if strs.EnforceUTF8(fd) {
|
|
545
|
+
return coderStringValueValidateUTF8
|
|
546
|
+
}
|
|
547
|
+
return coderStringValue
|
|
548
|
+
case pref.BytesKind:
|
|
549
|
+
return coderBytesValue
|
|
550
|
+
case pref.MessageKind:
|
|
551
|
+
return coderMessageValue
|
|
552
|
+
case pref.GroupKind:
|
|
553
|
+
return coderGroupValue
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
panic(fmt.Sprintf("invalid field: no encoder for %v %v %v", fd.FullName(), fd.Cardinality(), fd.Kind()))
|
|
557
|
+
}
|