// Write implements Writer.Write(). Write() takes ownership of the given buffer. func (this *AdaptiveWriter) Write(buffer *alloc.Buffer) error { defer buffer.Release() for !buffer.IsEmpty() { nBytes, err := this.writer.Write(buffer.Value) if err != nil { return err } buffer.SliceFrom(nBytes) } return nil }