Pure package detail
ringbuffer
gno.land/p/g16m0r7rm7fv5hx0ekr7gvx8g4fr7eu08nzhk6gt/ringbuffer
Indexed deployment identity with independently loaded latest RPC source. Functions and Render are realm-only RPC capabilities.
Indexed deployment
Identity
- Package path
- gno.land/p/g16m0r7rm7fv5hx0ekr7gvx8g4fr7eu08nzhk6gt/ringbuffer
- Block
- 108537
- Deployed (UTC)
- Transaction
- xqUyc4aYRflKpN3v0WY4Gcci/mu1zjZT/T+CP9y2Vqg=
Latest RPC state
Source
package ringbuffer
type RingBuffer struct {
data []int64
size int
head int
count int
}
func New(size int) *RingBuffer {
return &RingBuffer{data: make([]int64, size), size: size}
}
func (r *RingBuffer) Push(v int64) {
r.data[r.head] = v
r.head = (r.head + 1) % r.size
if r.count < r.size {
r.count++
}
}
func (r *RingBuffer) Items() []int64 {
out := make([]int64, r.count)
start := (r.head - r.count + r.size) % r.size
for i := 0; i < r.count; i++ {
out[i] = r.data[(start+i)%r.size]
}
return out
}
func (r *RingBuffer) Len() int {
return r.count
}
func (r *RingBuffer) Full() bool {
return r.count == r.size
}
The verified vm/qfuncs operation accepts realm paths only.
Pure packages expose source files but do not have Realm Render.