// // ASMutableElementMap.h // Texture // // Copyright (c) Facebook, Inc. and its affiliates. All rights reserved. // Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved. // Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0 // #ifndef MINIMAL_ASDK #import #import #import #import NS_ASSUME_NONNULL_BEGIN @class ASSection, ASCollectionElement, _ASHierarchyChangeSet; /** * This mutable version will be removed in the future. It's only here now to keep the diff small * as we port data controller to use ASElementMap. */ AS_SUBCLASSING_RESTRICTED @interface ASMutableElementMap : NSObject - (instancetype)init __unavailable; - (instancetype)initWithSections:(NSArray *)sections items:(ASCollectionElementTwoDimensionalArray *)items supplementaryElements:(ASSupplementaryElementDictionary *)supplementaryElements; - (void)insertSection:(ASSection *)section atIndex:(NSInteger)index; - (void)removeAllSections; /// Only modifies the array of ASSection * objects - (void)removeSectionsAtIndexes:(NSIndexSet *)indexes; - (void)removeAllElements; - (void)removeItemsAtIndexPaths:(NSArray *)indexPaths; - (void)removeSectionsOfItems:(NSIndexSet *)itemSections; - (void)removeSupplementaryElementsAtIndexPaths:(NSArray *)indexPaths kind:(NSString *)kind; - (void)insertEmptySectionsOfItemsAtIndexes:(NSIndexSet *)sections; - (void)insertElement:(ASCollectionElement *)element atIndexPath:(NSIndexPath *)indexPath; /** * Update the index paths for all supplementary elements to account for section-level * deletes, moves, inserts. This must be called before adding new supplementary elements. * * This also deletes any supplementary elements in deleted sections. */ - (void)migrateSupplementaryElementsWithSectionMapping:(ASIntegerMap *)mapping; @end @interface ASElementMap (MutableCopying) @end NS_ASSUME_NONNULL_END #endif