Functions

The following functions are available globally.

  • Creates a diff using indexes between two collections.

    Declaration

    Objective-C

    extern IGListIndexSetResult *_Nonnull IGListDiff(
        NSArray<id<IGListDiffable>> *_Nullable oldArray,
        NSArray<id<IGListDiffable>> *_Nullable newArray, IGListDiffOption option)

    Swift

    func ListDiff(oldArray: [any ListDiffable]?, newArray: [any ListDiffable]?, option: IGListDiffOption) -> ListIndexSetResult

    Parameters

    oldArray

    The old objects to diff against.

    newArray

    The new objects.

    option

    An option on how to compare objects.

    Return Value

    A result object containing affected indexes.

  • Creates a diff using index paths between two collections.

    Declaration

    Objective-C

    extern IGListIndexPathResult *_Nonnull IGListDiffPaths(
        NSInteger fromSection, NSInteger toSection,
        NSArray<id<IGListDiffable>> *_Nullable oldArray,
        NSArray<id<IGListDiffable>> *_Nullable newArray, IGListDiffOption option)

    Swift

    func ListDiffPaths(fromSection: Int, toSection: Int, oldArray: [any ListDiffable]?, newArray: [any ListDiffable]?, option: IGListDiffOption) -> ListIndexPathResult

    Parameters

    fromSection

    The old section.

    toSection

    The new section.

    oldArray

    The old objects to diff against.

    newArray

    The new objects.

    option

    An option on how to compare objects.

    Return Value

    A result object containing affected indexes.

  • Check if an experiment is enabled in a bitmask.

    Declaration

    Objective-C

    static inline BOOL IGListExperimentEnabled(IGListExperiment mask,
                                               IGListExperiment option)

    Swift

    func ListExperimentEnabled(mask: IGListExperiment, option: IGListExperiment) -> Bool

    Parameters

    mask

    The bitmask of experiments.

    option

    The option to compare with.

    Return Value

    YES if the option is in the bitmask, otherwise NO.