diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-05-07 15:22:54 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-05-07 15:22:54 +0200 |
| commit | fdb4633d3e9158e457d57e820df6e1efb4df39c2 (patch) | |
| tree | 176cad99cb9befc0a65a7af02561019e811814de /Map/Data/Store.swift | |
| parent | 75a0e4509a70055851b085f3f7293ae1cf48164c (diff) | |
Update to support notes + new style2.0.0
Diffstat (limited to 'Map/Data/Store.swift')
| -rw-r--r-- | Map/Data/Store.swift | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Map/Data/Store.swift b/Map/Data/Store.swift new file mode 100644 index 0000000..7860f33 --- /dev/null +++ b/Map/Data/Store.swift @@ -0,0 +1,18 @@ +import Foundation + +final class Store<State, Action>: ObservableObject { + @Published private(set) var state: State + + private let reducer: Reducer<State, Action> + + init(initialState: State, reducer: @escaping Reducer<State, Action>) { + self.state = initialState + self.reducer = reducer + } + + func send(_ action: Action) { + reducer(&state, action) + } +} + +typealias Reducer<State, Action> = (inout State, Action) -> Void |