var success = false defer func() { if success { err = input.Close() } else { util.CloseWhileSuppressingError(input) } }() var codecVersion int if codecVersion, err = asInt(codec.CheckHeader(input, FI_CODEC_NAME, FI_FORMAT_START, FI_FORMAT_CURRENT)); err != nil { return } var size int if size, err = asInt(input.ReadVInt()); err != nil { return } var infos []*FieldInfo var name string var fieldNumber int32 var bits, val byte var isIndexed, storeTermVector, omitNorms, storePayloads bool var indexOptions IndexOptions var docValuesType, normsType DocValuesType var dvGen int64 var attributes map[string]string for i := 0; i < size; i++ { if name, err = input.ReadString(); err != nil { return