blob: f96c896eac0d472f82c03ba47682acbd339e6616 [file] [log] [blame]
// 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 "io"
type Reader struct {
buf []byte
}
type Token *[16]byte
func Read[T interface{ ~*[16]byte }](r *Reader) (t T, err error) {
if n := len(t); len(r.buf) >= n {
t = T(r.buf[:n])
r.buf = r.buf[n:]
return
}
err = io.EOF
return
}
func main() {
r := &Reader{buf: []byte("0123456789abcdef")}
token, err := Read[Token](r)
_, _ = token, err
}