code: func (r *Reader) readMetadata(fr recordio.Reader) error {
  	data, err := fr.ReadFrameAll()
  	if err != nil {
  		return err
  	}
  
  	md := logpb.ButlerMetadata{}
  	if err := proto.Unmarshal(data, &md); err != nil {
  		return fmt.Errorf("butlerproto: failed to unmarshal Metadata frame: %s", err)
  	}
  	r.Metadata = &md
  	return nil
  }
docs: // ReadMetadata reads the metadata header frame.