trpc.group/trpc-go/trpc-go@v1.0.3/internal/linkbuffer/link_buffer.go (about) 1 // 2 // 3 // Tencent is pleased to support the open source community by making tRPC available. 4 // 5 // Copyright (C) 2023 THL A29 Limited, a Tencent company. 6 // All rights reserved. 7 // 8 // If you have downloaded a copy of the tRPC source code from Tencent, 9 // please note that tRPC source code is licensed under the Apache 2.0 License, 10 // A copy of the Apache 2.0 License is included in this file. 11 // 12 // 13 14 package linkbuffer 15 16 import "io" 17 18 // Buffer is the interface of link buffer. 19 type Buffer interface { 20 Reader 21 Writer 22 Release() 23 } 24 25 // Reader is the interface to read from link buffer. 26 type Reader interface { 27 io.Reader 28 ReadN(size int) ([]byte, int) 29 ReadAll() [][]byte 30 ReadNext() []byte 31 } 32 33 // Writer is the interface to write to link buffer. 34 type Writer interface { 35 io.Writer 36 Append(...[]byte) 37 Prepend(...[]byte) 38 Alloc(size int) []byte 39 Prelloc(size int) []byte 40 Len() int 41 Merge(Reader) 42 }