/
buffer_sink.go
47 lines (38 loc) · 936 Bytes
/
buffer_sink.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package libsecrets
import (
"bytes"
// "fmt"
)
// NewBufferSink returns a new BufferSink
func NewBufferSink() *BufferSink {
return &BufferSink{}
}
// BufferSink is used to capture Keybase decrypted data
type BufferSink struct {
buf bytes.Buffer
open bool
}
// Open is a stub to fit the Sink interface
func (s *BufferSink) Open() error {
s.open = true
return nil
}
// Close is a stub to fit the Sink interface
func (s *BufferSink) Close() error {
s.open = false
return nil
}
// Write writes bytes to an internal buffer
func (s *BufferSink) Write(b []byte) (n int, err error) {
return s.buf.Write(b)
}
// HitError is a stub to fit the Sink interface
func (s *BufferSink) HitError(e error) error { return nil }
// String returns the buffer as a string
func (s *BufferSink) String() string {
return s.buf.String()
}
// Bytes returns the bytes in the buffer
func (s *BufferSink) Bytes() []byte {
return s.buf.Bytes()
}