Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
golang
/
1.22.0
/
test
/
typeparam
/
Filename :
issue47713.go
back
Copy
// run // Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "encoding" "fmt" ) type Seralizable interface { encoding.BinaryMarshaler encoding.BinaryUnmarshaler } type SerDeString string func (s *SerDeString) UnmarshalBinary(in []byte) error { *s = SerDeString(in) return nil } func (s SerDeString) MarshalBinary() ([]byte, error) { return []byte(s), nil } type GenericSerializable[T Seralizable] struct { Key string Value T } func (g GenericSerializable[T]) Send() { out, err := g.Value.MarshalBinary() if err != nil { panic("bad") } var newval SerDeString newval.UnmarshalBinary(out) fmt.Printf("Sent %s\n", newval) } func main() { val := SerDeString("asdf") x := GenericSerializable[*SerDeString]{ Value: &val, } x.Send() }