12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- // +build !notfastpath
- // Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.
- // Use of this source code is governed by a MIT license found in the LICENSE file.
- // Code generated from mammoth2-test.go.tmpl - DO NOT EDIT.
- package codec
- // Increase codecoverage by covering all the codecgen paths, in fast-path and gen-helper.go....
- //
- // Add:
- // - test file for creating a mammoth generated file as _mammoth_generated.go
- // - generate a second mammoth files in a different file: mammoth2_generated_test.go
- // - mammoth-test.go.tmpl will do this
- // - run codecgen on it, into mammoth2_codecgen_generated_test.go (no build tags)
- // - as part of TestMammoth, run it also
- // - this will cover all the codecgen, gen-helper, etc in one full run
- // - check in mammoth* files into github also
- // - then
- //
- // Now, add some types:
- // - some that implement BinaryMarshal, TextMarshal, JSONMarshal, and one that implements none of it
- // - create a wrapper type that includes TestMammoth2, with it in slices, and maps, and the custom types
- // - this wrapper object is what we work encode/decode (so that the codecgen methods are called)
- // import "encoding/binary"
- import "fmt"
- type TestMammoth2 struct {
- {{range .Values }}{{if .Primitive }}{{/*
- */}}{{ .MethodNamePfx "F" true }} {{ .Primitive }}
- {{ .MethodNamePfx "Fptr" true }} *{{ .Primitive }}
- {{end}}{{end}}
- {{range .Values }}{{if not .Primitive }}{{if not .MapKey }}{{/*
- */}}{{ .MethodNamePfx "F" false }} []{{ .Elem }}
- {{ .MethodNamePfx "Fptr" false }} *[]{{ .Elem }}
- {{end}}{{end}}{{end}}
- {{range .Values }}{{if not .Primitive }}{{if .MapKey }}{{/*
- */}}{{ .MethodNamePfx "F" false }} map[{{ .MapKey }}]{{ .Elem }}
- {{ .MethodNamePfx "Fptr" false }} *map[{{ .MapKey }}]{{ .Elem }}
- {{end}}{{end}}{{end}}
- }
- // -----------
- type testMammoth2Binary uint64
- func (x testMammoth2Binary) MarshalBinary() (data []byte, err error) {
- data = make([]byte, 8)
- bigen.PutUint64(data, uint64(x))
- return
- }
- func (x *testMammoth2Binary) UnmarshalBinary(data []byte) (err error) {
- *x = testMammoth2Binary(bigen.Uint64(data))
- return
- }
- type testMammoth2Text uint64
- func (x testMammoth2Text) MarshalText() (data []byte, err error) {
- data = []byte(fmt.Sprintf("%b", uint64(x)))
- return
- }
- func (x *testMammoth2Text) UnmarshalText(data []byte) (err error) {
- _, err = fmt.Sscanf(string(data), "%b", (*uint64)(x))
- return
- }
- type testMammoth2Json uint64
- func (x testMammoth2Json) MarshalJSON() (data []byte, err error) {
- data = []byte(fmt.Sprintf("%v", uint64(x)))
- return
- }
- func (x *testMammoth2Json) UnmarshalJSON(data []byte) (err error) {
- _, err = fmt.Sscanf(string(data), "%v", (*uint64)(x))
- return
- }
- type testMammoth2Basic [4]uint64
- type TestMammoth2Wrapper struct {
- V TestMammoth2
- T testMammoth2Text
- B testMammoth2Binary
- J testMammoth2Json
- C testMammoth2Basic
- M map[testMammoth2Basic]TestMammoth2
- L []TestMammoth2
- A [4]int64
- }
|