func (f *Field) Float64() float64 {
	switch f.typ {
	case type32Bit:
		return float64(math.Float32frombits(binary.LittleEndian.Uint32(f.data)))
	case type64Bit:
		return float64(math.Float64frombits(binary.LittleEndian.Uint64(f.data)))
	}
	return float64(f.Uint64())
}
Float64 returns the float64 field value
package pbf
import (
	"encoding/binary"
	"errors"
	"io"
	"math"
	"os"
)
type reader struct {
	err error
	set []byte
	ptr []byte
}
func initReader(bytes []byte) reader {
	rd := reader{
		set: bytes,
		ptr: bytes,
	}
	return rd
}
type fieldType uint64
const (
	typeVarint fieldType = 0
	type64Bit            = 1
	typeLength           = 2
	type32Bit            = 5
)
type Field struct {
	num  uint64
	typ  fieldType
	data []byte
}
func (f *Field) Uint64() uint64 {
	switch f.typ {
	case type32Bit:
		return uint64(binary.LittleEndian.Uint32(f.data))
	case type64Bit:
		return uint64(binary.LittleEndian.Uint64(f.data))
	case typeVarint:
		x, _ := binary.Uvarint(f.data)
		return x
	}
	return 0
}
func (f *Field) Int64() int64 {
	switch f.typ {
	case type32Bit:
		return int64(binary.LittleEndian.Uint32(f.data))
	case type64Bit:
		return int64(binary.LittleEndian.Uint64(f.data))
	case typeVarint:
		x, _ := binary.Varint(f.data)
		return x
	}
	return 0
}