Skip to content

Commit 3e3d1ef

Browse files
authored
Merge pull request #9 from FlineDev/wip/negated-bool-binding
Write the inverted value through a negated Bool binding
2 parents 9e4459b + bc68893 commit 3e3d1ef

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

‎Sources/HandySwiftUI/Extensions/BindingExt.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import SwiftUI
1717
public prefix func ! (value: Binding<Bool>) -> Binding<Bool> {
1818
Binding<Bool>(
1919
get: { !value.wrappedValue },
20-
set: { value.wrappedValue = $0 }
20+
set: { value.wrappedValue = !$0 }
2121
)
2222
}
2323

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import SwiftUI
2+
import Testing
3+
4+
@testable import HandySwiftUI
5+
6+
@MainActor
7+
struct BindingExtTests {
8+
@Test
9+
func negatedBindingWritesTheInvertedValue() {
10+
var stored = false
11+
let binding = Binding(get: { stored }, set: { stored = $0 })
12+
let negated = !binding
13+
14+
#expect(negated.wrappedValue == true)
15+
16+
negated.wrappedValue = false
17+
#expect(stored == true)
18+
19+
negated.wrappedValue = true
20+
#expect(stored == false)
21+
}
22+
}

0 commit comments

Comments
 (0)