Skip to content

Instantly share code, notes, and snippets.

@beechtom
Last active October 5, 2023 20:02
Show Gist options
  • Save beechtom/e79f222741261f612cdf60aed3bbcc49 to your computer and use it in GitHub Desktop.
Save beechtom/e79f222741261f612cdf60aed3bbcc49 to your computer and use it in GitHub Desktop.
SectionedQuery-03
import SwiftData
import SwiftUI
@propertyWrapper
struct SectionedQuery<SectionIdentifier, Result>
where SectionIdentifier: Hashable, Result: PersistentModel {
private let sectionIdentifier: KeyPath<Result, SectionIdentifier>
private var results: [Result]
var wrappedValue: SectionedResults<SectionIdentifier, Result> {
SectionedResults(sectionIdentifier: sectionIdentifier,
results: results)
}
init<Value>(_ sectionIdentifier: KeyPath<Result, SectionIdentifier>,
filter: Predicate<Result>? = nil,
sort keyPath: KeyPath<Result, Value>,
order: SortOrder = .forward,
animation: Animation = .default) where Value: Comparable {
self.sectionIdentifier = sectionIdentifier
self.results = []
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment