diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15f0ce4..d28e781 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI +name: ci on: push: @@ -6,33 +6,30 @@ on: - main pull_request: branches: - - '*' + - "*" workflow_dispatch: jobs: lint: - runs-on: macos-13 + runs-on: macos-latest environment: default steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 + - name: SwiftFormat version + run: swiftformat --version - name: Format lint run: swiftformat --lint . + - name: Install SwiftLint + run: brew install swiftlint + - name: SwiftLint version + run: swiftlint --version - name: Lint - run: swiftlint . + run: swiftlint lint --quiet macos-test: + runs-on: macos-14 environment: default - strategy: - matrix: - include: - - os: macos-14 - xcode: 15.2 # Swift 5.9 - - os: macos-14 - xcode: 15.3 # Swift 5.10 - runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 - - name: Select Xcode ${{ matrix.xcode }} - run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app + - uses: actions/checkout@v3 - name: Run Tests run: swift test --enable-code-coverage --parallel - name: Swift Coverage Report @@ -44,8 +41,8 @@ jobs: linux-test: runs-on: ubuntu-latest environment: default - + steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Run Tests - run: swift test --parallel \ No newline at end of file + run: swift test --parallel diff --git a/.swiftformat b/.swiftformat index 882eeb3..ecb3389 100644 --- a/.swiftformat +++ b/.swiftformat @@ -1,6 +1,6 @@ --extensionacl on-declarations --redundanttype explicit ---swiftversion 5.5 +--swiftversion 5.9 --maxwidth 120 ---header "{file}\nFilter\n\n\nMIT License\n\nCopyright © {year} Andrew Roan" ---allman false \ No newline at end of file +--header "{file}\nFilter\n\n\nMIT License\n\nCopyright Andrew Roan" +--allman false diff --git a/Sources/Filter/Collection/AnyCollectionPredicate.swift b/Sources/Filter/Collection/AnyCollectionPredicate.swift index 1ef2d9a..58beece 100644 --- a/Sources/Filter/Collection/AnyCollectionPredicate.swift +++ b/Sources/Filter/Collection/AnyCollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -17,7 +17,7 @@ public protocol AnyCollectionPredicate { /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: CollectionFilter, on keyPath: KeyPath) -> Output + static func build(from filter: CollectionFilter, on keyPath: KeyPath) -> Output where Value: Collection } @@ -28,7 +28,7 @@ extension AnyCollectionPredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: CollectionFilter) -> Output where Value: Collection { + public static func build(from filter: CollectionFilter) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Collection/CollectionFilter.swift b/Sources/Filter/Collection/CollectionFilter.swift index a81c5ae..c503c17 100644 --- a/Sources/Filter/Collection/CollectionFilter.swift +++ b/Sources/Filter/Collection/CollectionFilter.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -28,11 +28,11 @@ public enum CollectionFilter: Equatable where C: Collection, C: Equatable, C. public var unwrapped: CollectionFilter? { switch self { case let .orNil(unwrapped): - return unwrapped + unwrapped case let .notNil(unwrapped): - return unwrapped + unwrapped case .isNil: - return nil + nil } } } diff --git a/Sources/Filter/Collection/CollectionPredicate.swift b/Sources/Filter/Collection/CollectionPredicate.swift index ec99e28..835f39b 100644 --- a/Sources/Filter/Collection/CollectionPredicate.swift +++ b/Sources/Filter/Collection/CollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/Filter/Collection/OptionalAnyCollectionPredicate.swift b/Sources/Filter/Collection/OptionalAnyCollectionPredicate.swift index 2f3fce3..66883ef 100644 --- a/Sources/Filter/Collection/OptionalAnyCollectionPredicate.swift +++ b/Sources/Filter/Collection/OptionalAnyCollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -16,7 +16,7 @@ public protocol OptionalAnyCollectionPredicate: AnyCollectionPredicate { /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: CollectionFilter.Optional, on keyPath: KeyPath) + static func build(from filter: CollectionFilter.Optional, on keyPath: KeyPath) -> Output where Value: Collection } @@ -27,7 +27,7 @@ extension OptionalAnyCollectionPredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: CollectionFilter.Optional) -> Output where Value: Collection { + public static func build(from filter: CollectionFilter.Optional) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Collection/OptionalCollectionPredicate.swift b/Sources/Filter/Collection/OptionalCollectionPredicate.swift index cf1ae22..9e0d606 100644 --- a/Sources/Filter/Collection/OptionalCollectionPredicate.swift +++ b/Sources/Filter/Collection/OptionalCollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/Filter/Comparable/AnyComparablePredicate.swift b/Sources/Filter/Comparable/AnyComparablePredicate.swift index 0ecd37c..f9e8fed 100644 --- a/Sources/Filter/Comparable/AnyComparablePredicate.swift +++ b/Sources/Filter/Comparable/AnyComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -16,7 +16,7 @@ public protocol AnyComparablePredicate: AnyEquatablePredicate { /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: ComparableFilter, on keyPath: KeyPath) -> Output + static func build(from filter: ComparableFilter, on keyPath: KeyPath) -> Output where Value: Comparable } @@ -27,7 +27,7 @@ extension AnyComparablePredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: ComparableFilter) -> Output where Value: Comparable { + public static func build(from filter: ComparableFilter) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Comparable/ComparableFilter.swift b/Sources/Filter/Comparable/ComparableFilter.swift index 479ca6e..14f0e4c 100644 --- a/Sources/Filter/Comparable/ComparableFilter.swift +++ b/Sources/Filter/Comparable/ComparableFilter.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -69,11 +69,11 @@ public enum ComparableFilter: Equatable { public var unwrapped: ComparableFilter? { switch self { case let .orNil(unwrapped): - return unwrapped + unwrapped case let .notNil(unwrapped): - return unwrapped + unwrapped case .isNil: - return nil + nil } } } diff --git a/Sources/Filter/Comparable/ComparablePredicate.swift b/Sources/Filter/Comparable/ComparablePredicate.swift index c277c21..79c7d7b 100644 --- a/Sources/Filter/Comparable/ComparablePredicate.swift +++ b/Sources/Filter/Comparable/ComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/Filter/Comparable/OptionalAnyComparablePredicate.swift b/Sources/Filter/Comparable/OptionalAnyComparablePredicate.swift index ffe036c..48be3ba 100644 --- a/Sources/Filter/Comparable/OptionalAnyComparablePredicate.swift +++ b/Sources/Filter/Comparable/OptionalAnyComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -16,7 +16,7 @@ public protocol OptionalAnyComparablePredicate: AnyComparablePredicate, Optional /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: ComparableFilter.Optional, on keyPath: KeyPath) + static func build(from filter: ComparableFilter.Optional, on keyPath: KeyPath) -> Output where Value: Comparable } @@ -27,7 +27,7 @@ extension OptionalAnyComparablePredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: ComparableFilter.Optional) -> Output where Value: Comparable { + public static func build(from filter: ComparableFilter.Optional) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Comparable/OptionalComparablePredicate.swift b/Sources/Filter/Comparable/OptionalComparablePredicate.swift index e6efeeb..f709cb2 100644 --- a/Sources/Filter/Comparable/OptionalComparablePredicate.swift +++ b/Sources/Filter/Comparable/OptionalComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/Filter/Equatable/AnyEquatablePredicate.swift b/Sources/Filter/Equatable/AnyEquatablePredicate.swift index f110f9c..fb217d1 100644 --- a/Sources/Filter/Equatable/AnyEquatablePredicate.swift +++ b/Sources/Filter/Equatable/AnyEquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -17,7 +17,7 @@ public protocol AnyEquatablePredicate { /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: EquatableFilter, on keyPath: KeyPath) -> Output + static func build(from filter: EquatableFilter, on keyPath: KeyPath) -> Output where Value: Equatable } @@ -28,7 +28,7 @@ extension AnyEquatablePredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: EquatableFilter) -> Output where Value: Equatable { + public static func build(from filter: EquatableFilter) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Equatable/EquatableFilter.swift b/Sources/Filter/Equatable/EquatableFilter.swift index 33d73a8..1211dfb 100644 --- a/Sources/Filter/Equatable/EquatableFilter.swift +++ b/Sources/Filter/Equatable/EquatableFilter.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -60,11 +60,11 @@ public enum EquatableFilter: Equatable { public var unwrapped: EquatableFilter? { switch self { case let .orNil(unwrapped): - return unwrapped + unwrapped case let .notNil(unwrapped): - return unwrapped + unwrapped case .isNil: - return nil + nil } } } diff --git a/Sources/Filter/Equatable/EquatablePredicate.swift b/Sources/Filter/Equatable/EquatablePredicate.swift index 2cb6360..7748c61 100644 --- a/Sources/Filter/Equatable/EquatablePredicate.swift +++ b/Sources/Filter/Equatable/EquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/Filter/Equatable/OptionalAnyEquatablePredicate.swift b/Sources/Filter/Equatable/OptionalAnyEquatablePredicate.swift index 14d772d..ad28162 100644 --- a/Sources/Filter/Equatable/OptionalAnyEquatablePredicate.swift +++ b/Sources/Filter/Equatable/OptionalAnyEquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -16,7 +16,7 @@ public protocol OptionalAnyEquatablePredicate: AnyEquatablePredicate { /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: EquatableFilter.Optional, on keyPath: KeyPath) + static func build(from filter: EquatableFilter.Optional, on keyPath: KeyPath) -> Output where Value: Equatable } @@ -27,7 +27,7 @@ extension OptionalAnyEquatablePredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: EquatableFilter.Optional) -> Output where Value: Equatable { + public static func build(from filter: EquatableFilter.Optional) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Equatable/OptionalEquatablePredicate.swift b/Sources/Filter/Equatable/OptionalEquatablePredicate.swift index 22e85ca..d244134 100644 --- a/Sources/Filter/Equatable/OptionalEquatablePredicate.swift +++ b/Sources/Filter/Equatable/OptionalEquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/Filter/Sequence/AnySequencePredicate.swift b/Sources/Filter/Sequence/AnySequencePredicate.swift index e9f7363..7b2df8b 100644 --- a/Sources/Filter/Sequence/AnySequencePredicate.swift +++ b/Sources/Filter/Sequence/AnySequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -17,7 +17,7 @@ public protocol AnySequencePredicate { /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: SequenceFilter, on keyPath: KeyPath) -> Output + static func build(from filter: SequenceFilter, on keyPath: KeyPath) -> Output where Value: Sequence } @@ -28,7 +28,7 @@ extension AnySequencePredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: SequenceFilter) -> Output where Value: Sequence { + public static func build(from filter: SequenceFilter) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Sequence/OptionalAnySequencePredicate.swift b/Sources/Filter/Sequence/OptionalAnySequencePredicate.swift index 992de27..d03a608 100644 --- a/Sources/Filter/Sequence/OptionalAnySequencePredicate.swift +++ b/Sources/Filter/Sequence/OptionalAnySequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -16,7 +16,7 @@ public protocol OptionalAnySequencePredicate: AnySequencePredicate { /// - keyPath: KeyPath /// - Returns /// - Output - static func build(from filter: SequenceFilter.Optional, on keyPath: KeyPath) + static func build(from filter: SequenceFilter.Optional, on keyPath: KeyPath) -> Output where Value: Sequence } @@ -27,7 +27,7 @@ extension OptionalAnySequencePredicate { /// - Returns /// - Output @inlinable - public static func build(from filter: SequenceFilter.Optional) -> Output where Value: Sequence { + public static func build(from filter: SequenceFilter.Optional) -> Output { build(from: filter, on: \.self) } } diff --git a/Sources/Filter/Sequence/OptionalSequencePredicate.swift b/Sources/Filter/Sequence/OptionalSequencePredicate.swift index a6bb577..e4f45a5 100644 --- a/Sources/Filter/Sequence/OptionalSequencePredicate.swift +++ b/Sources/Filter/Sequence/OptionalSequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/Filter/Sequence/SequenceFilter.swift b/Sources/Filter/Sequence/SequenceFilter.swift index 85530ec..2badabe 100644 --- a/Sources/Filter/Sequence/SequenceFilter.swift +++ b/Sources/Filter/Sequence/SequenceFilter.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation @@ -53,11 +53,11 @@ public enum SequenceFilter: Equatable where S: Sequence, S: Equatable, S.Elem public var unwrapped: SequenceFilter? { switch self { case let .orNil(unwrapped): - return unwrapped + unwrapped case let .notNil(unwrapped): - return unwrapped + unwrapped case .isNil: - return nil + nil } } } diff --git a/Sources/Filter/Sequence/SequencePredicate.swift b/Sources/Filter/Sequence/SequencePredicate.swift index 45d52c6..1387474 100644 --- a/Sources/Filter/Sequence/SequencePredicate.swift +++ b/Sources/Filter/Sequence/SequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/FilterClosure/Closure+CollectionPredicate.swift b/Sources/FilterClosure/Closure+CollectionPredicate.swift index 9649e35..4c64800 100644 --- a/Sources/FilterClosure/Closure+CollectionPredicate.swift +++ b/Sources/FilterClosure/Closure+CollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation diff --git a/Sources/FilterClosure/Closure+ComparablePredicate.swift b/Sources/FilterClosure/Closure+ComparablePredicate.swift index 5d09e69..36de960 100644 --- a/Sources/FilterClosure/Closure+ComparablePredicate.swift +++ b/Sources/FilterClosure/Closure+ComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation diff --git a/Sources/FilterClosure/Closure+EquatablePredicate.swift b/Sources/FilterClosure/Closure+EquatablePredicate.swift index 86710bc..2243e31 100644 --- a/Sources/FilterClosure/Closure+EquatablePredicate.swift +++ b/Sources/FilterClosure/Closure+EquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation diff --git a/Sources/FilterClosure/Closure+OptionalCollectionPredicate.swift b/Sources/FilterClosure/Closure+OptionalCollectionPredicate.swift index d911d4d..d0a5f8e 100644 --- a/Sources/FilterClosure/Closure+OptionalCollectionPredicate.swift +++ b/Sources/FilterClosure/Closure+OptionalCollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -19,12 +19,12 @@ extension Closure: OptionalCollectionPredicate where Value: Collection, Value: E { switch filter { case let .orNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return true } return Closure.build(from: subFilter)(value) } case let .notNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return false } if let subFilter { return Closure.build(from: subFilter)(value) @@ -32,7 +32,7 @@ extension Closure: OptionalCollectionPredicate where Value: Collection, Value: E return true } case .isNil: - return { $0[keyPath: keyPath] == nil } + { $0[keyPath: keyPath] == nil } } } } diff --git a/Sources/FilterClosure/Closure+OptionalComparablePredicate.swift b/Sources/FilterClosure/Closure+OptionalComparablePredicate.swift index 6fcf7b0..f5c8395 100644 --- a/Sources/FilterClosure/Closure+OptionalComparablePredicate.swift +++ b/Sources/FilterClosure/Closure+OptionalComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -20,12 +20,12 @@ extension Closure: OptionalComparablePredicate where Value: Comparable { { switch filter { case let .orNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return true } return Closure.build(from: subFilter)(value) } case let .notNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return false } if let subFilter { return Closure.build(from: subFilter)(value) @@ -33,7 +33,7 @@ extension Closure: OptionalComparablePredicate where Value: Comparable { return true } case .isNil: - return { $0[keyPath: keyPath] == nil } + { $0[keyPath: keyPath] == nil } } } } diff --git a/Sources/FilterClosure/Closure+OptionalEquatablePredicate.swift b/Sources/FilterClosure/Closure+OptionalEquatablePredicate.swift index 1840cfe..6acd250 100644 --- a/Sources/FilterClosure/Closure+OptionalEquatablePredicate.swift +++ b/Sources/FilterClosure/Closure+OptionalEquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -19,12 +19,12 @@ extension Closure: OptionalEquatablePredicate where Value: Equatable { { switch filter { case let .orNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return true } return Closure.build(from: subFilter)(value) } case let .notNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return false } if let subFilter { return Closure.build(from: subFilter)(value) @@ -32,7 +32,7 @@ extension Closure: OptionalEquatablePredicate where Value: Equatable { return true } case .isNil: - return { $0[keyPath: keyPath] == nil } + { $0[keyPath: keyPath] == nil } } } } diff --git a/Sources/FilterClosure/Closure+OptionalSequencePredicate.swift b/Sources/FilterClosure/Closure+OptionalSequencePredicate.swift index 0272509..d735c86 100644 --- a/Sources/FilterClosure/Closure+OptionalSequencePredicate.swift +++ b/Sources/FilterClosure/Closure+OptionalSequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -19,12 +19,12 @@ extension Closure: OptionalSequencePredicate where Value: Sequence, Value: Equat { switch filter { case let .orNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return true } return Closure.build(from: subFilter)(value) } case let .notNil(subFilter): - return { value in + { value in guard let value = value[keyPath: keyPath] else { return false } if let subFilter { return Closure.build(from: subFilter)(value) @@ -32,7 +32,7 @@ extension Closure: OptionalSequencePredicate where Value: Sequence, Value: Equat return true } case .isNil: - return { $0[keyPath: keyPath] == nil } + { $0[keyPath: keyPath] == nil } } } } diff --git a/Sources/FilterClosure/Closure+SequencePredicate.swift b/Sources/FilterClosure/Closure+SequencePredicate.swift index d6046b8..24ed639 100644 --- a/Sources/FilterClosure/Closure+SequencePredicate.swift +++ b/Sources/FilterClosure/Closure+SequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation diff --git a/Sources/FilterClosure/Closure.swift b/Sources/FilterClosure/Closure.swift index 892e41d..2f242d2 100644 --- a/Sources/FilterClosure/Closure.swift +++ b/Sources/FilterClosure/Closure.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/FilterNSPredicate/NSExpression+ComparableOperators.swift b/Sources/FilterNSPredicate/NSExpression+ComparableOperators.swift index e51d00f..d346b3a 100644 --- a/Sources/FilterNSPredicate/NSExpression+ComparableOperators.swift +++ b/Sources/FilterNSPredicate/NSExpression+ComparableOperators.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/FilterNSPredicate/NSExpression+EquatableOperators.swift b/Sources/FilterNSPredicate/NSExpression+EquatableOperators.swift index d7e9cd4..3afc4b4 100644 --- a/Sources/FilterNSPredicate/NSExpression+EquatableOperators.swift +++ b/Sources/FilterNSPredicate/NSExpression+EquatableOperators.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/FilterNSPredicate/NSExpression+SequenceOperators.swift b/Sources/FilterNSPredicate/NSExpression+SequenceOperators.swift index 022e7b8..4efde2f 100644 --- a/Sources/FilterNSPredicate/NSExpression+SequenceOperators.swift +++ b/Sources/FilterNSPredicate/NSExpression+SequenceOperators.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/FilterNSPredicate/NSPredicate+AnyCollectionPredicate.swift b/Sources/FilterNSPredicate/NSPredicate+AnyCollectionPredicate.swift index 3ff34a9..01be1c4 100644 --- a/Sources/FilterNSPredicate/NSPredicate+AnyCollectionPredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+AnyCollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -15,9 +15,9 @@ extension NSPredicate: AnyCollectionPredicate { /// - Parameter filter: An instance of SequenceFilter representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: CollectionFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Sequence, Value: Equatable, Value.Element: Equatable { switch filter { case let .isIn(values): @@ -46,9 +46,9 @@ extension NSPredicate: AnyCollectionPredicate { /// - Parameter filter: An instance of SequenceFilter representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: CollectionFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Sequence, Value: Equatable, Value.Element: Equatable { switch filter { case let .isIn(values): diff --git a/Sources/FilterNSPredicate/NSPredicate+AnyComparablePredicate.swift b/Sources/FilterNSPredicate/NSPredicate+AnyComparablePredicate.swift index dc1a028..5fc26e6 100644 --- a/Sources/FilterNSPredicate/NSPredicate+AnyComparablePredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+AnyComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -15,31 +15,31 @@ extension NSPredicate: AnyComparablePredicate { /// - Parameter filter: An instance of ComparableFilter representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: ComparableFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Comparable { switch filter { case let .lessThan(value): - return NSExpression(forKeyPath: keyPath).lessThan(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).lessThan(NSExpression(forConstantValue: value)) case let .lessThanOrEqualTo(value): - return NSExpression(forKeyPath: keyPath).lessThanOrEqualTo(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).lessThanOrEqualTo(NSExpression(forConstantValue: value)) case let .greaterThan(value): - return NSExpression(forKeyPath: keyPath).greaterThan(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).greaterThan(NSExpression(forConstantValue: value)) case let .greaterThanOrEqualTo(value): - return NSExpression(forKeyPath: keyPath).greaterThanOrEqualTo(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).greaterThanOrEqualTo(NSExpression(forConstantValue: value)) case let .or(lhs, rhs): - return .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .orMulti(predicates): - return .or(predicates.map { build(from: $0, on: keyPath) }) + .or(predicates.map { build(from: $0, on: keyPath) }) case let .and(lhs, rhs): - return .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .andMulti(predicates): - return .and(predicates.map { build(from: $0, on: keyPath) }) + .and(predicates.map { build(from: $0, on: keyPath) }) case let .not(inverted): - return .not(build(from: inverted, on: keyPath)) + .not(build(from: inverted, on: keyPath)) case let .equatable(equatable): - return Self.build(from: equatable, on: keyPath) + Self.build(from: equatable, on: keyPath) } } @@ -49,31 +49,31 @@ extension NSPredicate: AnyComparablePredicate { /// NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: ComparableFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Comparable { switch filter { case let .lessThan(value): - return NSExpression(forKeyPath: keyPath).lessThan(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).lessThan(NSExpression(forConstantValue: value)) case let .lessThanOrEqualTo(value): - return NSExpression(forKeyPath: keyPath).lessThanOrEqualTo(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).lessThanOrEqualTo(NSExpression(forConstantValue: value)) case let .greaterThan(value): - return NSExpression(forKeyPath: keyPath).greaterThan(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).greaterThan(NSExpression(forConstantValue: value)) case let .greaterThanOrEqualTo(value): - return NSExpression(forKeyPath: keyPath).greaterThanOrEqualTo(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).greaterThanOrEqualTo(NSExpression(forConstantValue: value)) case let .or(lhs, rhs): - return .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .orMulti(predicates): - return .or(predicates.map { build(from: $0, on: keyPath) }) + .or(predicates.map { build(from: $0, on: keyPath) }) case let .and(lhs, rhs): - return .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .andMulti(predicates): - return .and(predicates.map { build(from: $0, on: keyPath) }) + .and(predicates.map { build(from: $0, on: keyPath) }) case let .not(inverted): - return .not(build(from: inverted, on: keyPath)) + .not(build(from: inverted, on: keyPath)) case let .equatable(equatable): - return Self.build(from: equatable, on: keyPath) + Self.build(from: equatable, on: keyPath) } } } diff --git a/Sources/FilterNSPredicate/NSPredicate+AnyEquatablePredicate.swift b/Sources/FilterNSPredicate/NSPredicate+AnyEquatablePredicate.swift index b5b862a..634e9ae 100644 --- a/Sources/FilterNSPredicate/NSPredicate+AnyEquatablePredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+AnyEquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -15,23 +15,23 @@ extension NSPredicate: AnyEquatablePredicate { /// - Parameter filter: An instance of EquatableFilter representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: EquatableFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Equatable { switch filter { case let .equalTo(value): - return NSExpression(forKeyPath: keyPath).equalTo(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).equalTo(NSExpression(forConstantValue: value)) case let .or(lhs, rhs): - return .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .orMulti(predicates): - return .or(predicates.map { build(from: $0, on: keyPath) }) + .or(predicates.map { build(from: $0, on: keyPath) }) case let .and(lhs, rhs): - return .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .andMulti(predicates): - return .and(predicates.map { build(from: $0, on: keyPath) }) + .and(predicates.map { build(from: $0, on: keyPath) }) case let .not(inverted): - return .not(build(from: inverted, on: keyPath)) + .not(build(from: inverted, on: keyPath)) } } @@ -40,23 +40,23 @@ extension NSPredicate: AnyEquatablePredicate { /// - Parameter filter: An instance of EquatableFilter representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: EquatableFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Equatable { switch filter { case let .equalTo(value): - return NSExpression(forKeyPath: keyPath).equalTo(NSExpression(forConstantValue: value)) + NSExpression(forKeyPath: keyPath).equalTo(NSExpression(forConstantValue: value)) case let .or(lhs, rhs): - return .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .or([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .orMulti(predicates): - return .or(predicates.map { build(from: $0, on: keyPath) }) + .or(predicates.map { build(from: $0, on: keyPath) }) case let .and(lhs, rhs): - return .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) + .and([build(from: lhs, on: keyPath), build(from: rhs, on: keyPath)]) case let .andMulti(predicates): - return .and(predicates.map { build(from: $0, on: keyPath) }) + .and(predicates.map { build(from: $0, on: keyPath) }) case let .not(inverted): - return .not(build(from: inverted, on: keyPath)) + .not(build(from: inverted, on: keyPath)) } } } diff --git a/Sources/FilterNSPredicate/NSPredicate+AnySequencePredicate.swift b/Sources/FilterNSPredicate/NSPredicate+AnySequencePredicate.swift index afb56a8..15cb087 100644 --- a/Sources/FilterNSPredicate/NSPredicate+AnySequencePredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+AnySequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -15,9 +15,9 @@ extension NSPredicate: AnySequencePredicate { /// - Parameter filter: An instance of SequenceFilter representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: SequenceFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Sequence, Value: Equatable, Value.Element: Equatable { switch filter { case let .contains(value): @@ -44,9 +44,9 @@ extension NSPredicate: AnySequencePredicate { /// - Parameter filter: An instance of SequenceFilter representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: SequenceFilter, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Sequence, Value: Equatable, Value.Element: Equatable { switch filter { case let .contains(value): diff --git a/Sources/FilterNSPredicate/NSPredicate+CompoundOperators.swift b/Sources/FilterNSPredicate/NSPredicate+CompoundOperators.swift index 6f57085..b394d37 100644 --- a/Sources/FilterNSPredicate/NSPredicate+CompoundOperators.swift +++ b/Sources/FilterNSPredicate/NSPredicate+CompoundOperators.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Sources/FilterNSPredicate/NSPredicate+OptionalAnyCollectionPredicate.swift b/Sources/FilterNSPredicate/NSPredicate+OptionalAnyCollectionPredicate.swift index ea9fdf8..cc600e0 100644 --- a/Sources/FilterNSPredicate/NSPredicate+OptionalAnyCollectionPredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+OptionalAnyCollectionPredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -16,9 +16,9 @@ extension NSPredicate: OptionalAnyCollectionPredicate { /// NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: CollectionFilter.Optional, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Collection, Value: Equatable, Value.Element: Equatable { switch filter { case let .orNil(subFilter): diff --git a/Sources/FilterNSPredicate/NSPredicate+OptionalAnyComparablePredicate.swift b/Sources/FilterNSPredicate/NSPredicate+OptionalAnyComparablePredicate.swift index d225810..044112c 100644 --- a/Sources/FilterNSPredicate/NSPredicate+OptionalAnyComparablePredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+OptionalAnyComparablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -16,9 +16,9 @@ extension NSPredicate: OptionalAnyComparablePredicate { /// NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: ComparableFilter.Optional, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Comparable { switch filter { case let .orNil(subFilter): diff --git a/Sources/FilterNSPredicate/NSPredicate+OptionalAnyEquatablePredicate.swift b/Sources/FilterNSPredicate/NSPredicate+OptionalAnyEquatablePredicate.swift index b9e2baf..e801d87 100644 --- a/Sources/FilterNSPredicate/NSPredicate+OptionalAnyEquatablePredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+OptionalAnyEquatablePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -15,9 +15,9 @@ extension NSPredicate: OptionalAnyEquatablePredicate { /// - Parameter filter: An instance of EquatableFilter.Optional representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: EquatableFilter.Optional, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Equatable { switch filter { case let .orNil(subFilter): diff --git a/Sources/FilterNSPredicate/NSPredicate+OptionalAnySequencePredicate.swift b/Sources/FilterNSPredicate/NSPredicate+OptionalAnySequencePredicate.swift index 3a02e62..7c47f83 100644 --- a/Sources/FilterNSPredicate/NSPredicate+OptionalAnySequencePredicate.swift +++ b/Sources/FilterNSPredicate/NSPredicate+OptionalAnySequencePredicate.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import Foundation @@ -15,9 +15,9 @@ extension NSPredicate: OptionalAnySequencePredicate { /// - Parameter filter: An instance of SequenceFilter.Optional representing the logic of the resulting NSPredicate. /// - Parameter keyPath: A keypath instructing what value to use for evaluating the predicate. @inlinable - public static func build( + public static func build( from filter: SequenceFilter.Optional, - on keyPath: KeyPath + on keyPath: KeyPath ) -> NSPredicate where Value: Sequence, Value: Equatable, Value.Element: Equatable { switch filter { case let .orNil(subFilter): diff --git a/Tests/FilterClosureTests/CollectionFilterClosureTests.swift b/Tests/FilterClosureTests/CollectionFilterClosureTests.swift index b30fe1c..897dca3 100644 --- a/Tests/FilterClosureTests/CollectionFilterClosureTests.swift +++ b/Tests/FilterClosureTests/CollectionFilterClosureTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterClosure diff --git a/Tests/FilterClosureTests/ComparableFilterClosureTests.swift b/Tests/FilterClosureTests/ComparableFilterClosureTests.swift index 6a11fef..a189e4f 100644 --- a/Tests/FilterClosureTests/ComparableFilterClosureTests.swift +++ b/Tests/FilterClosureTests/ComparableFilterClosureTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterClosure diff --git a/Tests/FilterClosureTests/EquatableFilterClosureTests.swift b/Tests/FilterClosureTests/EquatableFilterClosureTests.swift index 25df0fd..77c07cc 100644 --- a/Tests/FilterClosureTests/EquatableFilterClosureTests.swift +++ b/Tests/FilterClosureTests/EquatableFilterClosureTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterClosure diff --git a/Tests/FilterClosureTests/SequenceFilterClosureTests.swift b/Tests/FilterClosureTests/SequenceFilterClosureTests.swift index fdb45bb..8b11c22 100644 --- a/Tests/FilterClosureTests/SequenceFilterClosureTests.swift +++ b/Tests/FilterClosureTests/SequenceFilterClosureTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterClosure diff --git a/Tests/FilterNSPredicateTests/CollectionFilterNSPredicateTests.swift b/Tests/FilterNSPredicateTests/CollectionFilterNSPredicateTests.swift index d82d40a..794fcfd 100644 --- a/Tests/FilterNSPredicateTests/CollectionFilterNSPredicateTests.swift +++ b/Tests/FilterNSPredicateTests/CollectionFilterNSPredicateTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterNSPredicate diff --git a/Tests/FilterNSPredicateTests/ComparableFilterNSPredicateTests.swift b/Tests/FilterNSPredicateTests/ComparableFilterNSPredicateTests.swift index f4ae325..c559eec 100644 --- a/Tests/FilterNSPredicateTests/ComparableFilterNSPredicateTests.swift +++ b/Tests/FilterNSPredicateTests/ComparableFilterNSPredicateTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterNSPredicate diff --git a/Tests/FilterNSPredicateTests/EquatableFilterNSPredicateTests.swift b/Tests/FilterNSPredicateTests/EquatableFilterNSPredicateTests.swift index 0d91a07..d496c4f 100644 --- a/Tests/FilterNSPredicateTests/EquatableFilterNSPredicateTests.swift +++ b/Tests/FilterNSPredicateTests/EquatableFilterNSPredicateTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterClosure diff --git a/Tests/FilterNSPredicateTests/NSPredicate+ClosureHelper.swift b/Tests/FilterNSPredicateTests/NSPredicate+ClosureHelper.swift index fd9d28b..5b170a4 100644 --- a/Tests/FilterNSPredicateTests/NSPredicate+ClosureHelper.swift +++ b/Tests/FilterNSPredicateTests/NSPredicate+ClosureHelper.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Foundation diff --git a/Tests/FilterNSPredicateTests/SequenceFilterNSPredicateTests.swift b/Tests/FilterNSPredicateTests/SequenceFilterNSPredicateTests.swift index 4d38d0f..4ff10c6 100644 --- a/Tests/FilterNSPredicateTests/SequenceFilterNSPredicateTests.swift +++ b/Tests/FilterNSPredicateTests/SequenceFilterNSPredicateTests.swift @@ -4,7 +4,7 @@ // // MIT License // -// Copyright © 2024 Andrew Roan +// Copyright Andrew Roan import Filter import FilterNSPredicate