1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-09-09 19:32:24 +08:00
Files
kubo/fuse/ipns/writerat.go
2014-10-03 23:04:41 +00:00

30 lines
559 B
Go

package ipns
import "io"
type WriteAtBuf interface {
io.WriterAt
Bytes() []byte
}
type writerAt struct {
buf []byte
}
func NewWriterAtFromBytes(b []byte) WriteAtBuf {
return &writerAt{b}
}
// TODO: make this better in the future, this is just a quick hack for now
func (wa *writerAt) WriteAt(p []byte, off int64) (int, error) {
if off+int64(len(p)) > int64(len(wa.buf)) {
wa.buf = append(wa.buf, make([]byte, (int(off)+len(p))-len(wa.buf))...)
}
copy(wa.buf[off:], p)
return len(p), nil
}
func (wa *writerAt) Bytes() []byte {
return wa.buf
}