/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/typeparam/issue47713.go
52 строки
888 B
Matthew Dempsky
all: avoid use of cmd/compile -G flag in tests
01 мар 2022, 22:45
01 мар 2022, 22:45
e24977d
Код
Авторство
О чём код?
// 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() }