code: func (d *Decoder) DecodeUint() (rv uint32, err error) {
  	data := d.data
  	if len(data) < 4 {
  		msg := fmt.Sprintf(errInsufficientBytes, 4)
  		err = unmarshalError("DecodeUint", ErrUnexpectedEnd, msg, data)
  		return
  	}
  	rv = uint32(data[3]) | uint32(data[2])<<8 |
  		uint32(data[1])<<16 | uint32(data[0])<<24
  
  	d.data = data[4:]
  	return
  }
docs: // DecodeUint treats the next 4 bytes as an XDR encoded unsigned integer and
  // returns the result as a uint32.
  //
  // An UnmarshalError is returned if there are insufficient bytes remaining.
  //
  // Reference:
  // 	RFC Section 4.2 - Unsigned Integer
  // 	32-bit big-endian unsigned integer in range [0, 4294967295]