Releases: square/predicate-builder
Releases · square/predicate-builder
1.0.2
1.0.1
1.0.0
Added
- Result builder-based DSL for declarative predicate composition
- DSL types
Value
,And
,Or
,Not
,AnyMembers
,NoMembers
- String comparisons
like
,starts(with:)
,ends(with:)
,in
- Collection operations
contains(_:)
- Predicate literals
true
,false
,NSPredicate
(for composing custom prdicates using an expression string for a predicate type that does not yet exist in the DSL)
- Operators
==
,!=
,<
,<=
,>
,>=
,&&
,||
,!
#PredicateBuilder
macro for Swift 5.9 users- Disallow
Foundation.Predicate
types in the DSL- While in beta at the time of writing, the
#Predicate
macro does not offer as much type safety when converting itself toNSPredicate
--and contains some of the same runtime crash pitfalls as the string-based predicate expression language. This restriction will be re-evaluated when Swift 5.9 is fully-released.
- While in beta at the time of writing, the
- Allow
TypedPredicate
types to be constructed with a key path which is agnostic about the optionality of itsValue
- Constrain the builder to
NSManagedObject
subclasses.- This allows for enhanced type safety over the previous
NSObject
constraint, as@NSManaged
stored properties are guaranteed to be operable with the predicate expression language
- This allows for enhanced type safety over the previous