package atom import ( "io" "io/ioutil" "log" ) func ReadBytes(r io.Reader, n int) (res []byte, err error) { res = make([]byte, n) if n, err = r.Read(res); err != nil { return } return } func ReadUInt(r io.Reader, n int) (res uint, err error) { var b []byte if b, err = ReadBytes(r, n); err != nil { return } for i := 0; i < n; i++ { res <<= 8 res += uint(b[i]) } return } func ReadInt(r io.Reader, n int) (res int, err error) { var uval uint if uval, err = ReadUInt(r, n); err != nil { return } if uval&(1<