Contents

swiftlang/swift-se0270-range-set

**SE0270_RangeSet** is a standalone library that implements the Swift Evolution proposal

Functionality

SE0270_RangeSet provides operations on noncontiguous subranges of collections, such as subranges(where:) and moveSubranges(_:to:), as well as the supporting RangeSet type.

import SE0270_RangeSet

var numbers = [10, 12, -5, 14, -3, -9, 15]
let negatives = numbers.subranges(where: { $0 < 0 })
// numbers[negatives].count == 3

numbers.moveSubranges(negatives, to: 0)
// numbers == [-5, -3, -9, 10, 12, 14, 15]

Usage

You can add this library as a dependency to any Swift package. Add this line to the dependencies parameter in your Package.swift file:

.package(
    url: "https://github.com/apple/swift-se0270-range-set",
    from: "1.0.0"),

Next, add the module as a dependency for your targets that will use the library:

.product(name: "SE0270_RangeSet", package: "swift-se0270-range-set"),

You can now use import SE0270_RangeSet to make the library available in any Swift file.

Contributing

We are no longer taking contributions to this repo. Please see the [guide for Contributing to Swift][contributing] for other opportunities within the Swift project. Thanks to all past contributors!

[proposal]: https://github.com/apple/swift-evolution/blob/master/proposals/0270-rangeset-and-collection-operations.md [stdlib-preview]: https://github.com/apple/swift-standard-library-preview [user-forums]: https://forums.swift.org/c/swift-users/ [bugs]: https://bugs.swift.org [evolution-process]: https://github.com/apple/swift-evolution/blob/master/process.md [contributing]: https://swift.org/contributing

Package Metadata

Repository: swiftlang/swift-se0270-range-set

Default branch: main

README: README.md