...

Text file src/github.com/ugorji/go/codec/mammoth2-test.go.tmpl

Documentation: github.com/ugorji/go/codec

     1// +build !codec.notmammoth
     2
     3// Copyright (c) 2012-2020 Ugorji Nwoke. All rights reserved.
     4// Use of this source code is governed by a MIT license found in the LICENSE file.
     5
     6// Code generated from mammoth2-test.go.tmpl - DO NOT EDIT.
     7
     8package codec
     9
    10// Increase codecoverage by covering all the codecgen paths, in fast-path and gen-helper.go....
    11//
    12// Note: even though this is built based on fast-path and gen-helper, we will run these tests
    13// in all modes, including notfastpath, etc.
    14//
    15// Add test file for creating a mammoth generated file as _mammoth_generated.go
    16//  - generate a second mammoth files in a different file: mammoth2_generated_test.go
    17//    mammoth-test.go.tmpl will do this
    18//  - run codecgen on it, into mammoth2_codecgen_generated_test.go (no build tags)
    19//  - as part of TestMammoth, run it also
    20//  - this will cover all the codecgen, gen-helper, etc in one full run
    21//  - check in mammoth* files into github also
    22//
    23// Now, add some types:
    24//  - some that implement BinaryMarshal, TextMarshal, JSONMarshal, and one that implements none of it
    25//  - create a wrapper type that includes TestMammoth2, with it in slices, and maps, and the custom types
    26//  - this wrapper object is what we work encode/decode (so that the codecgen methods are called)
    27
    28
    29// import "encoding/binary"
    30
    31import "fmt"
    32
    33type TestMammoth2 struct {
    34
    35{{range .Values }}{{if .Primitive }}{{/*
    36*/}}{{ .MethodNamePfx "F" true }} {{ .Primitive }}
    37{{ .MethodNamePfx "Fptr" true }} *{{ .Primitive }}
    38{{end}}{{end}}
    39
    40{{range .Values }}{{if not .Primitive }}{{if not .MapKey }}{{/*
    41*/}}{{ .MethodNamePfx "F" false }} []{{ .Elem }}
    42{{ .MethodNamePfx "Fptr" false }} *[]{{ .Elem }}
    43{{end}}{{end}}{{end}}
    44
    45{{range .Values }}{{if not .Primitive }}{{if .MapKey }}{{/*
    46*/}}{{ .MethodNamePfx "F" false }} map[{{ .MapKey }}]{{ .Elem }}
    47{{ .MethodNamePfx "Fptr" false }} *map[{{ .MapKey }}]{{ .Elem }}
    48{{end}}{{end}}{{end}}
    49
    50}
    51
    52// -----------
    53
    54type testMammoth2Binary uint64
    55func (x testMammoth2Binary) MarshalBinary() (data []byte, err error) {
    56data = make([]byte, 8)
    57bigenstd.PutUint64(data, uint64(x))
    58return
    59}
    60func (x *testMammoth2Binary) UnmarshalBinary(data []byte) (err error) {
    61*x = testMammoth2Binary(bigenstd.Uint64(data))
    62return
    63}
    64
    65type testMammoth2Text uint64
    66func (x testMammoth2Text) MarshalText() (data []byte, err error) {
    67data = []byte(fmt.Sprintf("%b", uint64(x)))
    68return
    69}
    70func (x *testMammoth2Text) UnmarshalText(data []byte) (err error) {
    71_, err = fmt.Sscanf(string(data), "%b", (*uint64)(x))
    72return
    73}
    74
    75type testMammoth2Json uint64
    76func (x testMammoth2Json) MarshalJSON() (data []byte, err error) {
    77data = []byte(fmt.Sprintf("%v", uint64(x)))
    78return
    79}
    80func (x *testMammoth2Json) UnmarshalJSON(data []byte) (err error) {
    81_, err = fmt.Sscanf(string(data), "%v", (*uint64)(x))
    82return
    83}
    84
    85type testMammoth2Basic [4]uint64
    86
    87type TestMammoth2Wrapper struct {
    88	V TestMammoth2
    89	T testMammoth2Text
    90	B testMammoth2Binary
    91	J testMammoth2Json
    92	C testMammoth2Basic
    93	M map[testMammoth2Basic]TestMammoth2
    94	L []TestMammoth2
    95	A [4]int64
    96	
    97  	Tcomplex128 complex128
    98	Tcomplex64 complex64
    99	Tbytes []uint8
   100	Tpbytes *[]uint8
   101}

View as plain text