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