code: func (b *block) reserve(n int) {
  	if cap(b.data) >= n {
  		return
  	}
  	m := cap(b.data)
  	if m == 0 {
  		m = 1024
  	}
  	for m < n {
  		m *= 2
  	}
  	data := make([]byte, len(b.data), m)
  	copy(data, b.data)
  	b.data = data
  }
docs: // reserve makes sure that block contains a capacity of at least n bytes.