Releases: kaascevich/Rapid
Rapid 3.0.0
Hello, I still exist! Sorry for not updating for... oh my god, has it actually been a year and a week since I last made a release?
A bunch of this update is dedicated to bringing Rapid up-to-date with all the fancy-schmancy newness of Swift 6.
Full Changelog: v2.3.0...v3.0.0
Additions
~=operator forRegex!!operator for calling a never-returning function when optional unwrapping failsAnyTypeandNothingtypealiases forAny.TypeandVoid, respectivelysum()andproduct()methods forNumericsequencescompacted()method forSequence**and**=operatorsExpressibleByEmptyArrayLiteralandExpressibleByEmptyDictionaryLiteralprotocols
Updates
- Updated
?!operator with typedthrows
Deprecations
- There's now a
count(where:)method in the standard library, rendering one of Rapid'scount(of:)methods obsolete. This method has thus been deprecated, and will be removed in Rapid 4.count(where:)should work as a drop-in replacement for your projects -- and if you were using trailing closures, you might not even have to update your code at all!- The overload of
count(of:)that takes an element instead of a predicate was kept, since the standard library doesn't have a direct equivalent to it (yet).
Removals
++,--,&++, and&--operators
Breaking Changes
- Changed the
countparameter ofString.*(_:_:)to be aUIntinstead of anInt
Other
- Changed license from the GNU GPL v3 to the MIT License
- What this practically means is that, from this version (3.0.0) onwards, Rapid can now legally be used in software that isn't open source (as well as some other things that stem from or alongside this). No existing users should be affected by this change.
- General documentation polish
- Migrated tests from Quick/Nimble to swift-testing
Rapid 2.3.0
- Added
appendInterpolation(_:format:)andappendInterpolation(_:if:)string interpolation methods SetAlgebranow has+,+=,-, and-=operators- Added
~=operators forErrorandKeyPath - Added
sorted(by:)andsorted(by:using:)methods toSequence - The package previously did not build on anything other than macOS. This has hopefully been fixed.
Full Changelog: v2.2.0...v2.3.0
Rapid 2.2.0
CollectionOfOnenow conforms toExpressibleByArrayLiteral- Added an
asIntproperty and aninit(fromInt:)initializer toBool - Minor documentation improvements
Full Changelog: v2.1.1...v2.2.0
Rapid 2.1.1
EmptyCollectionnow conforms toExpressibleByArrayLiteralandExpressibleByDictionaryLiteral, with element types ofNeverto prevent use of non-empty literals
Full Changelog: v2.1.0...v2.1.1
Rapid 2.1.0
- Added
mutate(_:using:)function to mutate values directly PartialRangeFrom,PartialRangeThrough, andPartialRangeUpTonow conform toEquatable,Hashable,CustomStringConvertible,CustomDebugStringConvertible, andCustomReflectable- Added
AnyEquatable, a type-erased wrapper forEquatable
Full Changelog: v2.0.0...v2.1.0
Rapid 2.0.0
Release Notes
isBetween(_:)now accepts aRangeExpressioninstead of only aClosedRange- Replaced the
?!operator'sErrorTypewithsome Error - The
++,--,&++, and&--operators have been marked as unavailable. They will be removed entirely in Rapid 3. - Added
minutes(_:),hours(_:),days(_:), andweeks(_:)static methods toDuration- Each method has two overloads: one taking
some BinaryInteger, and one taking aDouble
- Each method has two overloads: one taking
Full Changelog: v1.3.0...v2.0.0
Rapid 1.3.0
Release Notes
- General documentation improvements (fixing typos and whatnot).
Potentially Breaking Changes
repeat(_:)now starts iteration from 0 instead of 1, to more closely match the behavior of the standard library- Issues caused by this should be trivial to fix -- just add 1 to the loop index each time you use it
- Removed
@inlinablefrom everything -- it doesn't make life any easier
Full Changelog: v1.2.0...v1.3.0
Rapid 1.2.0
Release Notes
- The
++,--,&++, and&--operators have been deprecated; see this Swift Evolution proposal for reasons as to why. Use+= 1,-= 1,&+= 1, and&-= 1instead. The operators will be marked as unavailable in Rapid 2, and will be removed entirely in Rapid 3. Clampednow conforms toSendablewhen itsValuetype isSendable- Added the
<-operator as an alias forconfigure(_:using:) - Added
isNilOrEmptyandisNotNilOrEmptyfor optional collections
Full Changelog: v1.1.0...v1.2.0
Rapid 1.1.0
Release Notes
- A
factorial()method has been added toBinaryInteger - Added
@Clamped,@Transformed, and@Validatedproperty wrappers - Added
clamped(to:)andclamp(to:)methods toComparable
Full Changelog: v1.0.0...v1.1.0
🎉 Rapid 1.0.0 🎉
I'm really bad at making incremental releases.
Release Notes
Here are the most major changes:
- Rapid now has vastly improved documentation all around
Chainablehas been removed in favor of global functionsthen(_:)for value types has been moved toconfigure(_:using:)- The dedicated
then(_:)method for reference types has been removed do(_:)has been moved torun(with:do:)
Other, more minor changes:
- Operator aliases --
≠,≤and≥-- have been added - A global
πconstant forDouble.pihas been added - The
@inlinableattribute has been applied to most methods and properties - The implementation of
last(where:)has been changed to usefirst(where:)instead of afor-inloop - A default value for the
Componentassociated type ofResultBuilderhas been added - The
throwsandrethrowskeywords have been added to theStringandArrayresult builder initializers SimpleResultBuilderhas been renamed toResultBuilder- The
?!operator for throwing an error when optional unwrapping fails has been added
I've also decided that Rapid will be kept API stable from this point onward to the best of my ability.
Full Changelog: v0.2.0...v1.0.0