 // swiftlint:disable function_body_length
-// swiftlint:disable type_body_length
 // swiftlint:disable line_length
 
 //

            case .insert:
                for rowID in diff.array {
                    // find index of new row
                    let findBlock = { (inDataSourceItem: T) -> Bool in
                        return rowID == inDataSourceItem.identifier
                    }

                    let rowIDIndex = rowsToUpdate.index(where: findBlock)
                    if let actualIndex = rowIDIndex {
                        let newRow = rowsToUpdate[actualIndex]
                        newRows.insert(newRow, at: rowIndex)

        }

        let existingRows: [T] = self.rowsBySectionID[inSectionID] ?? []
        var newRows: [T] = existingRows

        let newIdentifiers = rowsToUpdate.map { $0.identifier }
        let existingIdentifiers = existingRows.map { $0.identifier }

        let diffs = diffBetweenArrays(arrayA: existingIdentifiers, arrayB: newIdentifiers)

