code: func (c *XORChunk) Appender() (Appender, error) {
  	it := c.iterator()
  
  	// To get an appender we must know the state it would have if we had
  	// appended all existing data from scratch.
  	// We iterate through the end and populate via the iterator's state.
  	for it.Next() {
  	}
  	if err := it.Err(); err != nil {
  		return nil, err
  	}
  
  	a := &xorAppender{
  		b:        &c.b,
  		t:        it.t,
  		v:        it.val,
  		tDelta:   it.tDelta,
  		leading:  it.leading,
  		trailing: it.trailing,
  	}
  	if binary.BigEndian.Uint16(a.b.bytes()) == 0 {
  		a.leading = 0xff
  	}
  	return a, nil
  }
docs: // Appender implements the Chunk interface.