mirror of
https://github.com/ipfs/kubo.git
synced 2025-09-09 19:32:24 +08:00
30 lines
559 B
Go
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
|
|
}
|