github.com/alexflint/go-memdump@v1.1.0/end-to-end/main.go (about)

     1  package main
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"os"
     7  	"reflect"
     8  
     9  	memdump "github.com/alexflint/go-memdump"
    10  )
    11  
    12  type T struct {
    13  	X int
    14  	Y string
    15  }
    16  
    17  func main() {
    18  	var b bytes.Buffer
    19  
    20  	in := T{X: 123, Y: "xyz"}
    21  	err := memdump.Encode(&b, &in)
    22  	if err != nil {
    23  		fmt.Println(err)
    24  		os.Exit(1)
    25  	}
    26  
    27  	var out *T
    28  	err = memdump.Decode(&b, &out)
    29  	if err != nil {
    30  		fmt.Println(err)
    31  		os.Exit(1)
    32  	}
    33  
    34  	if !reflect.DeepEqual(in, *out) {
    35  		fmt.Printf("objects were not equal: %v vs %v\n", in, *out)
    36  		os.Exit(1)
    37  	}
    38  }