A collection of insertions and removals that describe the difference between two ordered collection states.
SDK
- Xcode 11.0+
Framework
- Swift Standard Library
Declaration
struct CollectionDifference<ChangeElement>
A collection of insertions and removals that describe the difference between two ordered collection states.
SDK
Framework
struct CollectionDifference<ChangeElement>
typealias Collection Difference .ElementA type representing the sequence’s elements.
typealias Collection Difference .IndicesA type that represents the indices that are valid for subscripting the collection, in ascending order.
typealias Collection Difference .IteratorA type that provides the collection’s iteration interface and encapsulates its iteration state.
typealias Collection Difference .Sub SequenceA sequence that represents a contiguous subrange of the collection’s elements.
init?<Changes>(Changes)Creates a new collection difference from a collection of changes.
init(from: Decoder)Creates a new instance by decoding from the given decoder.
var count: IntThe number of elements in the collection.
var end Index: Collection Difference<Change Element>.IndexThe collection’s “past the end” position—that is, the position one greater than the last valid subscript argument.
var first: Collection Difference<Change Element>.Change?The first element of the collection.
var hash Value: IntThe hash value.
var indices: Default Indices<Collection Difference<Change Element>>The indices that are valid for subscripting the collection, in ascending order.
let insertions: [Collection Difference<Change Element>.Change]The insertions contained by this difference, from lowest offset to highest.
var is Empty: BoolA Boolean value indicating whether the collection is empty.
var lazy: Lazy Sequence<Collection Difference<Change Element>>A sequence containing the same elements as this sequence, but on which some operations, such as map and filter, are implemented lazily.
let removals: [Collection Difference<Change Element>.Change]The removals contained by this difference, from lowest offset to highest.
var start Index: Collection Difference<Change Element>.IndexThe position of the first element in a nonempty collection.
var underestimated Count: IntA value less than or equal to the number of elements in the collection.
func all Satisfy((Collection Difference<Change Element>.Change) -> Bool) -> BoolReturns a Boolean value indicating whether every element of a sequence satisfies a given predicate.
func compact Map<Element Of Result>((Collection Difference<Change Element>.Change) -> Element Of Result?) -> [Element Of Result]Returns an array containing the non-nil results of calling the given transformation with each element of this sequence.
func contains(Collection Difference<Change Element>.Change) -> BoolReturns a Boolean value indicating whether the sequence contains the given element.
func contains(where: (Collection Difference<Change Element>.Change) -> Bool) -> BoolReturns a Boolean value indicating whether the sequence contains an element that satisfies the given predicate.
func distance(from: Collection Difference<Change Element>.Index, to: Collection Difference<Change Element>.Index) -> IntReturns the distance between two indices.
func drop(while: (Collection Difference<Change Element>.Change) -> Bool) -> Slice<Collection Difference<Change Element>>Returns a subsequence by skipping elements while predicate returns true and returning the remaining elements.
func drop First(Int) -> Slice<Collection Difference<Change Element>>Returns a subsequence containing all but the given number of initial elements.
func drop Last(Int) -> Slice<Collection Difference<Change Element>>Returns a subsequence containing all but the specified number of final elements.
func elements Equal<Other Sequence>(Other Sequence) -> BoolReturns a Boolean value indicating whether this sequence and another sequence contain the same elements in the same order.
func elements Equal<Other Sequence>(Other Sequence, by: (Collection Difference<Change Element>.Change, Other Sequence .Element) -> Bool) -> BoolReturns a Boolean value indicating whether this sequence and another sequence contain equivalent elements in the same order, using the given predicate as the equivalence test.
func encode(to: Encoder)Encodes this value into the given encoder.
func enumerated() -> Enumerated Sequence<Collection Difference<Change Element>>Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence.
func filter((Collection Difference<Change Element>.Change) -> Bool) -> [Collection Difference<Change Element>.Change]Returns an array containing, in order, the elements of the sequence that satisfy the given predicate.
func first(where: (Collection Difference<Change Element>.Change) -> Bool) -> Collection Difference<Change Element>.Change?Returns the first element of the sequence that satisfies the given predicate.
func first Index(of: Collection Difference<Change Element>.Change) -> Collection Difference<Change Element>.Index?Returns the first index where the specified value appears in the collection.
func first Index(where: (Collection Difference<Change Element>.Change) -> Bool) -> Collection Difference<Change Element>.Index?Returns the first index in which an element of the collection satisfies the given predicate.
func flat Map<Segment Of Result>((Collection Difference<Change Element>.Change) -> Segment Of Result) -> [Segment Of Result .Element]Returns an array containing the concatenated results of calling the given transformation with each element of this sequence.
func for Each((Collection Difference<Change Element>.Change) -> Void)Calls the given closure on each element in the sequence in the same order as a for-in loop.
func form Index(inout Collection Difference<Change Element>.Index, offset By: Int, limited By: Collection Difference<Change Element>.Index) -> BoolOffsets the given index by the specified distance, or so that it equals the given limiting index.
func form Index(after: inout Collection Difference<Change Element>.Index)Replaces the given index with its successor.
func hash(into: inout Hasher)Hashes the essential components of this value by feeding them into the given hasher.
func index(Collection Difference<Change Element>.Index, offset By: Int) -> Collection Difference<Change Element>.IndexReturns an index that is the specified distance from the given index.
func index(Collection Difference<Change Element>.Index, offset By: Int, limited By: Collection Difference<Change Element>.Index) -> Collection Difference<Change Element>.Index?Returns an index that is the specified distance from the given index, unless that distance is beyond a given limiting index.
func index(after: Collection Difference<Change Element>.Index) -> Collection Difference<Change Element>.IndexReturns the position immediately after the given index.
func index(of: Collection Difference<Change Element>.Change) -> Collection Difference<Change Element>.Index?Returns the first index where the specified value appears in the collection.
func index(where: (Collection Difference<Change Element>.Change) -> Bool) -> Collection Difference<Change Element>.Index?Returns the first index in which an element of the collection satisfies the given predicate.
func inferring Moves() -> Collection Difference<Change Element>Returns a new collection difference with associations between individual elements that have been removed and inserted only once.
func lexicographically Precedes<Other Sequence>(Other Sequence, by: (Collection Difference<Change Element>.Change, Collection Difference<Change Element>.Change) -> Bool) -> BoolReturns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the given predicate to compare elements.
func make Iterator() -> Indexing Iterator<Collection Difference<Change Element>>Returns an iterator over the elements of the collection.
func map<T>((Collection Difference<Change Element>.Change) -> T) -> [T]Returns an array containing the results of mapping the given closure over the sequence’s elements.
func max(by: (Collection Difference<Change Element>.Change, Collection Difference<Change Element>.Change) -> Bool) -> Collection Difference<Change Element>.Change?Returns the maximum element in the sequence, using the given predicate as the comparison between elements.
func min(by: (Collection Difference<Change Element>.Change, Collection Difference<Change Element>.Change) -> Bool) -> Collection Difference<Change Element>.Change?Returns the minimum element in the sequence, using the given predicate as the comparison between elements.
func prefix(Int) -> Slice<Collection Difference<Change Element>>Returns a subsequence, up to the specified maximum length, containing the initial elements of the collection.
func prefix(through: Collection Difference<Change Element>.Index) -> Slice<Collection Difference<Change Element>>Returns a subsequence from the start of the collection through the specified position.
func prefix(up To: Collection Difference<Change Element>.Index) -> Slice<Collection Difference<Change Element>>Returns a subsequence from the start of the collection up to, but not including, the specified position.
func prefix(while: (Collection Difference<Change Element>.Change) -> Bool) -> Slice<Collection Difference<Change Element>>Returns a subsequence containing the initial elements until predicate returns false and skipping the remaining elements.
func random Element() -> Collection Difference<Change Element>.Change?Returns a random element of the collection.
func random Element<T>(using: inout T) -> Collection Difference<Change Element>.Change?Returns a random element of the collection, using the given generator as a source for randomness.
func reduce<Result>(Result, (Result, Collection Difference<Change Element>.Change) -> Result) -> ResultReturns the result of combining the elements of the sequence using the given closure.
func reduce<Result>(into: Result, (inout Result, Collection Difference<Change Element>.Change) -> ()) -> ResultReturns the result of combining the elements of the sequence using the given closure.
func reversed() -> [Collection Difference<Change Element>.Change]Returns an array containing the elements of this sequence in reverse order.
func shuffled() -> [Collection Difference<Change Element>.Change]Returns the elements of the sequence, shuffled.
func shuffled<T>(using: inout T) -> [Collection Difference<Change Element>.Change]Returns the elements of the sequence, shuffled using the given generator as a source for randomness.
func sorted(by: (Collection Difference<Change Element>.Change, Collection Difference<Change Element>.Change) -> Bool) -> [Collection Difference<Change Element>.Change]Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.
func split(max Splits: Int, omitting Empty Subsequences: Bool, where Separator: (Collection Difference<Change Element>.Change) -> Bool) -> [Slice<Collection Difference<Change Element>>]Returns the longest possible subsequences of the collection, in order, that don’t contain elements satisfying the given predicate.
func split(separator: Collection Difference<Change Element>.Change, max Splits: Int, omitting Empty Subsequences: Bool) -> [Array Slice<Collection Difference<Change Element>.Change>]Returns the longest possible subsequences of the sequence, in order, around elements equal to the given element.
func split(separator: Collection Difference<Change Element>.Change, max Splits: Int, omitting Empty Subsequences: Bool) -> [Slice<Collection Difference<Change Element>>]Returns the longest possible subsequences of the collection, in order, around elements equal to the given element.
func starts<Possible Prefix>(with: Possible Prefix) -> BoolReturns a Boolean value indicating whether the initial elements of the sequence are the same as the elements in another sequence.
func starts<Possible Prefix>(with: Possible Prefix, by: (Collection Difference<Change Element>.Change, Possible Prefix .Element) -> Bool) -> BoolReturns a Boolean value indicating whether the initial elements of the sequence are equivalent to the elements in another sequence, using the given predicate as the equivalence test.
func suffix(Int) -> Slice<Collection Difference<Change Element>>Returns a subsequence, up to the given maximum length, containing the final elements of the collection.
func suffix(from: Collection Difference<Change Element>.Index) -> Slice<Collection Difference<Change Element>>Returns a subsequence from the specified position to the end of the collection.
func with Contiguous Storage If Available<R>((Unsafe Buffer Pointer<Collection Difference<Change Element>.Change>) -> R) -> R?Call body(p), where p is a pointer to the collection’s contiguous storage. If no such storage exists, it is first created. If the collection does not support an internal representation in a form of contiguous storage, body is not called and nil is returned.
subscript<R>(R) -> Slice<Collection Difference<Change Element>>Accesses the contiguous subrange of the collection’s elements specified by a range expression.
subscript(Range<Collection Difference<Change Element>.Index>) -> Slice<Collection Difference<Change Element>>Accesses a contiguous subrange of the collection’s elements.
subscript(Collection Difference<Change Element>.Index) -> Collection Difference<Change Element>.ElementAccesses the element at the specified position.
static func == (Collection Difference<Change Element>, Collection Difference<Change Element>) -> BoolReturns a Boolean value indicating whether two values are equal.
struct Collection Difference .IndexThe position of a collection difference.
enum Collection Difference .ChangeA single change to a collection.