code: func NewForUtilFrom(in DataInput) (fu *ForUtil, err error) {
  	self := &ForUtil{}
  	packedIntsVersion, err := in.ReadVInt()
  	if err != nil {
  		return self, err
  	}
  	packed.CheckVersion(packedIntsVersion)
  	self.encodedSizes = make([]int32, 33)
  	self.encoders = make([]packed.PackedIntsEncoder, 33)
  	self.decoders = make([]packed.PackedIntsDecoder, 33)
  	self.iterations = make([]int32, 33)
  
  	for bpv := 1; bpv <= 32; bpv++ {
  		code, err := in.ReadVInt()
  		if err != nil {
  			return self, err
  		}
  		formatId := uint32(code) >> 5
  		bitsPerValue := (uint32(code) & 31) + 1
  
  		format := packed.PackedFormat(formatId)
  		// assert format.isSupported(bitsPerValue)
  		self.encodedSizes[bpv] = encodedSize(format, packedIntsVersion, bitsPerValue)
  		self.encoders[bpv] = packed.GetPackedIntsEncoder(format, packedIntsVersion, bitsPerValue)
  		self.decoders[bpv] = packed.GetPackedIntsDecoder(format, packedIntsVersion, bitsPerValue)
  		self.iterations[bpv] = computeIterations(self.decoders[bpv])
  	}
  	return self, nil
  }
docs: /* Restore a ForUtil from a DataInput. */