code: func (d *Decoder) decodeFixedArray(v reflect.Value, ignoreOpaque bool) (err error) {
  	// Treat [#]byte (byte is alias for uint8) as opaque data unless ignored.
  	if !ignoreOpaque && v.Type().Elem().Kind() == reflect.Uint8 {
  		data, err := d.DecodeFixedOpaque(int32(v.Len()))
  		if err != nil {
  			return err
  		}
  		reflect.Copy(v, reflect.ValueOf(data))
  		return nil
  	}
  
  	// Decode each array element.
  	for i := 0; i < v.Len(); i++ {
  		err = d.decode(v.Index(i))
  		if err != nil {
  			return
  		}
  	}
  	return
  }
docs: // decodeFixedArray treats the next bytes as a series of XDR encoded elements
  // of the same type as the array represented by the reflection value and decodes
  // each element into the passed array.  The ignoreOpaque flag controls whether
  // or not uint8 (byte) elements should be decoded individually or as a fixed
  // sequence of opaque data.
  //
  // An UnmarshalError is returned if any issues are encountered while decoding
  // the array elements.
  //
  // Reference:
  // 	RFC Section 4.12 - Fixed-Length Array
  // 	Individually XDR encoded array elements