// Copyright 2012-2023 The NATS Authors// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.package builtinimport ()// DefaultEncoder implementation for EncodedConn.// This encoder will leave []byte and string untouched, but will attempt to// turn numbers into appropriate strings that can be decoded. It will also// properly encoded and decode bools. If will encode a struct, but if you want// to properly handle structures you should use JsonEncoder.//// Deprecated: Encoded connections are no longer supported.typeDefaultEncoderstruct {// Empty}var trueB = []byte("true")var falseB = []byte("false")var nilB = []byte("")// Encode//// Deprecated: Encoded connections are no longer supported.func ( *DefaultEncoder) ( string, any) ([]byte, error) {switch arg := .(type) {casestring: := *(*[]byte)(unsafe.Pointer(&))return , nilcase []byte:return , nilcasebool:if {returntrueB, nil } else {returnfalseB, nil }casenil:returnnilB, nildefault:varbytes.Bufferfmt.Fprintf(&, "%+v", )return .Bytes(), nil }}// Decode//// Deprecated: Encoded connections are no longer supported.func ( *DefaultEncoder) ( string, []byte, any) error {// Figure out what it's pointing to... := *(*string)(unsafe.Pointer(&))switch arg := .(type) {case *string: * = returnnilcase *[]byte: * = returnnilcase *int: , := strconv.ParseInt(, 10, 64)if != nil {return } * = int()returnnilcase *int32: , := strconv.ParseInt(, 10, 64)if != nil {return } * = int32()returnnilcase *int64: , := strconv.ParseInt(, 10, 64)if != nil {return } * = int64()returnnilcase *float32: , := strconv.ParseFloat(, 32)if != nil {return } * = float32()returnnilcase *float64: , := strconv.ParseFloat(, 64)if != nil {return } * = float64()returnnilcase *bool: , := strconv.ParseBool()if != nil {return } * = returnnildefault: := reflect.TypeOf().Elem()returnfmt.Errorf("nats: Default Encoder can't decode to type %s", ) }}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.