Skip to content
Swift Evolution preview package for SE-0270.
Swift
Branch: master
Clone or download

Latest commit

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Sources
Tests/SE0270_RangeSet_Tests
.gitignore
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE.txt
Package.swift
README.md

README.md

SE0270_RangeSet

SE0270_RangeSet is a standalone library that implements the Swift Evolution proposal SE-0270: Add Collection Operations on Noncontiguous Elements. You can use this package independently, or as part of the standard library preview package.

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

Contributions to this package and the standard library preview package are welcomed and encouraged!

You can’t perform that action at this time.