A collection of insertions and removals that describe the difference between two ordered collection states.
SDK
- Xcode 11.0+
Framework
- Swift Standard Library
A collection of insertions and removals that describe the difference between two ordered collection states.
SDK
Framework
typealias Collection Difference .Element
A type representing the sequence’s elements.
typealias Collection Difference .Indices
A type that represents the indices that are valid for subscripting the collection, in ascending order.
typealias Collection Difference .Iterator
A type that provides the collection’s iteration interface and encapsulates its iteration state.
typealias Collection Difference .Sub Sequence
A 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: Int
The number of elements in the collection.
var end Index: Collection Difference<Change Element>.Index
The 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: Int
The 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: Bool
A 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>.Index
The position of the first element in a nonempty collection.
var underestimated Count: Int
A value less than or equal to the number of elements in the collection.
func all Satisfy((Collection Difference<Change Element>.Change) -> Bool) -> Bool
Returns 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) -> Bool
Returns a Boolean value indicating whether the sequence contains the given element.
func contains(where: (Collection Difference<Change Element>.Change) -> Bool) -> Bool
Returns 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) -> Int
Returns 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) -> Bool
Returns 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) -> Bool
Returns 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) -> Bool
Offsets 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>.Index
Returns 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>.Index
Returns 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) -> Bool
Returns 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) -> Result
Returns 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) -> ()) -> Result
Returns 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) -> Bool
Returns 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) -> Bool
Returns 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>.Element
Accesses the element at the specified position.
static func == (Collection Difference<Change Element>, Collection Difference<Change Element>) -> Bool
Returns a Boolean value indicating whether two values are equal.
struct Collection Difference .Index
The position of a collection difference.
enum Collection Difference .Change
A single change to a collection.