packStruct (signature, packableFields) {
    packableFields = packableFields || []
    this.packStructHeader(packableFields.length, signature)
    for (let i = 0; i < packableFields.length; i++) {
      packableFields[i]()
    }
  }
Packs a struct
@param signature the signature of the struct
@param packableFields the fields of the struct, make sure you call `packable on all fields`