From 502cc29f872edf3524486d40ebca149b30c85d30 Mon Sep 17 00:00:00 2001 From: Lucas Manning Date: Wed, 27 Jul 2022 16:14:07 -0700 Subject: [PATCH] Add a method that returns an owned copy of the data in a View. PiperOrigin-RevId: 463703416 --- pkg/bufferv2/view.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/bufferv2/view.go b/pkg/bufferv2/view.go index fa7c5739a..20811497f 100644 --- a/pkg/bufferv2/view.go +++ b/pkg/bufferv2/view.go @@ -161,6 +161,16 @@ func (v *View) AsSlice() []byte { return v.chunk.data[v.read:v.write] } +// ToSlice returns an owned copy of the data in this view. +func (v *View) ToSlice() []byte { + if v.Size() == 0 { + return nil + } + s := make([]byte, v.Size()) + copy(s, v.AsSlice()) + return s +} + // AvailableSize returns the number of bytes available for writing. func (v *View) AvailableSize() int { if v == nil {