/
/
opt
/
golang
/
1.22.0
/
src
/
log
/
slog
/
internal
/
buffer
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.40
PHP 8.3.16
Dir:
/opt/golang/1.22.0/src/log/slog/internal/buffer
Edit:
/opt/golang/1.22.0/src/log/slog/internal/buffer/buffer.go
// Copyright 2022 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package buffer provides a pool-allocated byte buffer. package buffer import "sync" // buffer adapted from go/src/fmt/print.go type Buffer []byte // Having an initial size gives a dramatic speedup. var bufPool = sync.Pool{ New: func() any { b := make([]byte, 0, 1024) return (*Buffer)(&b) }, } func New() *Buffer { return bufPool.Get().(*Buffer) } func (b *Buffer) Free() { // To reduce peak allocation, return only smaller buffers to the pool. const maxBufferSize = 16 << 10 if cap(*b) <= maxBufferSize { *b = (*b)[:0] bufPool.Put(b) } } func (b *Buffer) Reset() { b.SetLen(0) } func (b *Buffer) Write(p []byte) (int, error) { *b = append(*b, p...) return len(p), nil } func (b *Buffer) WriteString(s string) (int, error) { *b = append(*b, s...) return len(s), nil } func (b *Buffer) WriteByte(c byte) error { *b = append(*b, c) return nil } func (b *Buffer) String() string { return string(*b) } func (b *Buffer) Len() int { return len(*b) } func (b *Buffer) SetLen(n int) { *b = (*b)[:n] }
Ukuran: 1.2 KB