kraken
41 строка · 1.1 Кб
1// Copyright (c) 2016-2019 Uber Technologies, Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14package piecereader
15
16import "bytes"
17
18// Buffer is a storage.PieceReader which reads a piece from an in-memory buffer.
19type Buffer struct {
20reader *bytes.Reader
21}
22
23// NewBuffer returns a new Buffer for b.
24func NewBuffer(b []byte) *Buffer {
25return &Buffer{bytes.NewReader(b)}
26}
27
28// Read reads a piece into p.
29func (b *Buffer) Read(p []byte) (int, error) {
30return b.reader.Read(p)
31}
32
33// Close noops.
34func (b *Buffer) Close() error {
35return nil
36}
37
38// Length returns the length of the piece.
39func (b *Buffer) Length() int {
40return b.reader.Len()
41}
42