/** * Copyright (c) 2016-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ #import #import #import #import NS_ASSUME_NONNULL_BEGIN /** An instance of `IGListBatchUpdateData` takes section indexes and item index paths and performs cleanup on init in order to perform a crash-free update via `-[UICollectionView performBatchUpdates:completion:]`. */ IGLK_SUBCLASSING_RESTRICTED @interface IGListBatchUpdateData : NSObject /** Section insert indexes. */ @property (nonatomic, strong, readonly) NSIndexSet *insertSections; /** Section delete indexes. */ @property (nonatomic, strong, readonly) NSIndexSet *deleteSections; /** Section moves. */ @property (nonatomic, strong, readonly) NSSet *moveSections; /** Item insert index paths. */ @property (nonatomic, strong, readonly) NSSet *insertIndexPaths; /** Item delete index paths. */ @property (nonatomic, strong, readonly) NSSet *deleteIndexPaths; /** Item moves. */ @property (nonatomic, strong, readonly) NSSet *moveIndexPaths; /** Creates a new batch update object with section and item operations. @param insertSections Section indexes to insert. @param deleteSections Section indexes to delete. @param moveSections Section moves. @param insertIndexPaths Item index paths to insert. @param deleteIndexPaths Item index paths to delete. @param moveIndexPaths Item index paths to move. @return A new batch update object. */ - (instancetype)initWithInsertSections:(NSIndexSet *)insertSections deleteSections:(NSIndexSet *)deleteSections moveSections:(NSSet *)moveSections insertIndexPaths:(NSSet *)insertIndexPaths deleteIndexPaths:(NSSet *)deleteIndexPaths moveIndexPaths:(NSSet *)moveIndexPaths NS_DESIGNATED_INITIALIZER; /** :nodoc: */ - (instancetype)init NS_UNAVAILABLE; /** :nodoc: */ + (instancetype)new NS_UNAVAILABLE; @end NS_ASSUME_NONNULL_END