https://github.com/ipfs/go-ipfs
Raw File
Tip revision: 7070b4d878baad57dcc8da80080dd293aa46cabd authored by Jeromy Johnson on 12 January 2016, 16:10:24 UTC
Merge pull request #2188 from Dignifiedquire/feat/webui-update
Tip revision: 7070b4d
writerat.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
}
back to top