     self.endUpdates()
   }
   
-}+}


public extension UITableView {

  public func performUpdates(records: [DeltaCollectionRecord]) {
    self.beginUpdates()
    for record in records {
      let indexPath = NSIndexPath(forRow: record.index, inSection: record.section)

        let fromIndexPath = NSIndexPath(forRow: record.fromIndex, inSection: record.section)
        self.moveRowAtIndexPath(fromIndexPath, toIndexPath: indexPath)
      case .ChangeItem, .ReloadItem:
        let newIndexPath = NSIndexPath(forRow: record.fromIndex, inSection: record.section)
        if let updateCallback = updateCallback {
          updateCallback(indexPath, newIndexPath)
        } else {
          self.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
        }
      case .ReloadSection:
        self.reloadSections(NSIndexSet(index: record.section), withRowAnimation: .Automatic)
      case .MoveSection:
