skl/arena.go
func (s *Arena) putVal(v y.ValueStruct) uint32 {
	l := uint32(v.EncodedSize())
	n := atomic.AddUint32(&s.n, l)
	y.AssertTruef(int(n) <= len(s.buf),
		"Arena too small, toWrite:%d newTotal:%d limit:%d",
		l, n, len(s.buf))
	m := n - l
	v.Encode(s.buf[m:])
	return m
}
func (s *Arena) putVal(v y.ValueStruct) uint32 {
	l := uint32(v.EncodedSize())
	n := atomic.AddUint32(&s.n, l)
	y.AssertTruef(int(n) <= len(s.buf),
		"Arena too small, toWrite:%d newTotal:%d limit:%d",
		l, n, len(s.buf))
	m := n - l
	v.Encode(s.buf[m:])
	return m
}
func ( s * Arena ) putVal ( v y . ValueStruct ) uint32 { l := uint32 ( v . EncodedSize ( ) ) n := atomic . AddUint32 ( & s . n , l ) y . AssertTruef ( int ( n ) <= len ( s . buf ) , " " , l , n , len ( s . buf ) ) m := n - l v . Encode ( s . buf [ m : ] ) return m }
// Put will *copy* val into arena. To make better use of this, reuse your input
// val buffer. Returns an offset into buf. User is responsible for remembering
// size of val. We could also store this size inside arena but the encoding and
// decoding will incur some overhead.
Put will * copy * val into arena . To make better use of this reuse your input val buffer . Returns an offset into buf . User is responsible for remembering size of val . We could also store this size inside arena but the encoding and decoding will incur some overhead .