diff options
Diffstat (limited to 'pkg/tcpip/buffer/prependable.go')
-rw-r--r-- | pkg/tcpip/buffer/prependable.go | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/pkg/tcpip/buffer/prependable.go b/pkg/tcpip/buffer/prependable.go index bca23ef68..c5dd2819f 100644 --- a/pkg/tcpip/buffer/prependable.go +++ b/pkg/tcpip/buffer/prependable.go @@ -41,28 +41,9 @@ func NewPrependableFromView(v View) Prependable { return Prependable{buf: v, usedIdx: 0} } -// Prepend reserves the requested space in front of the buffer, returning a -// slice that represents the reserved space. -func (p *Prependable) Prepend(size int) []byte { - if size > p.usedIdx { - return nil - } - - p.usedIdx -= size - return p.buf[p.usedIdx:][:size:size] -} - // View returns a View of the backing buffer that contains all prepended // data so far. func (p Prependable) View() View { - v := p.buf - v.TrimFront(p.usedIdx) - return v -} - -// UsedBytes returns a slice of the backing buffer that contains all prepended -// data so far. -func (p Prependable) UsedBytes() []byte { return p.buf[p.usedIdx:] } @@ -70,3 +51,14 @@ func (p Prependable) UsedBytes() []byte { func (p Prependable) UsedLength() int { return len(p.buf) - p.usedIdx } + +// Prepend reserves the requested space in front of the buffer, returning a +// slice that represents the reserved space. +func (p *Prependable) Prepend(size int) []byte { + if size > p.usedIdx { + return nil + } + + p.usedIdx -= size + return p.View()[:size:size] +} |