codekingpro/portable-devtools
114k
1// run2 3// Copyright 2021 The Go Authors. All rights reserved.4// Use of this source code is governed by a BSD-style5// license that can be found in the LICENSE file.6 7package main8 9import "io"10 11type Reader struct {12 buf []byte13}14type Token *[16]byte15 16func Read[T interface{ ~*[16]byte }](r *Reader) (t T, err error) {17 if n := len(t); len(r.buf) >= n {18 t = T(r.buf[:n])19 r.buf = r.buf[n:]20 return21 }22 err = io.EOF23 return24}25 26func main() {27 r := &Reader{buf: []byte("0123456789abcdef")}28 token, err := Read[Token](r)29 _, _ = token, err30}31 