code: function DefaultArraySerializer(serializeFunc, array, buffer, bufferOffset, specArrayLen=null) {
    const arrLen = array.length;
  
    if (specArrayLen === null || specArrayLen < 0) {
      bufferOffset = buffer.writeUInt32LE(arrLen, bufferOffset, true);
    }
  
    for (let i = 0; i < arrLen; ++i) {
      bufferOffset = serializeFunc(array[i], buffer, bufferOffset);
    }
  
    return bufferOffset;
  }
docs: /*-----------------------------------------------------------------------------
  Primitive Array Serialization Functions
  
  Each primitive type array serialization function has an identical signature
  
  @param value {*} value to serialize as determined by function name
  @param buffer {Buffer} buffer to serialize value into
  @param bufferOffset {Number} offset from buffer start to store value
  @param [specArrayLen] {Number|null} array length desired by message specification
  a negative number or null means to serialize a variable length array into the buffer
  a positive number means to serialize a constant length array from the buffer
  @returns {Number} new buffer offset after serializing value
  SerializeFunc(value, buffer, bufferOffset, specArrayLen)
  ----------------------------------------------------------------------------- 
  Template for most primitive array serializers which are bound to this function and provide
  the serializeFunc param
  @param serializeFunc {function} function to serialize a single instance of the type. Typically hidden
  from users by binding.
  @param array {Array} array of values of the desired type
  @param buffer {Buffer} buffer to serialize data into
  @param bufferOffset {Array.number}
  @param specArrayLen {null|number}
  @returns {Number} buffer offset
  @constructor