Contents

southkin/cansubscribe

```swift

Usage & Sample

var cancellables: Set<AnyCancellable> = []
struct MyStruct {
    let str:String
    let int:Int
}
@CanSubscribe var myString:String? = "a"
@CanSubscribe var myInt:Int = 1
@CanSubscribe var myStruct:MyStruct? = .init(str:"q", int:9)

print("str : \(myString!)")
print("int : \(myInt)")
print("struct : \(myStruct!)")

myString = "z"
myInt = 999
myStruct = .init(str:"x", int:888)

print("str : \(myString!)")
print("int : \(myInt)")
print("struct : \(myStruct!)")

$myString.publisher.sink {print("str-sink : \($0!)")}.store(in: &cancellables)
$myInt.publisher.sink {print("int-sink : \($0)")}.store(in: &cancellables)
$myStruct.publisher.sink {print("struct-sink : \($0!)")}.store(in: &cancellables)

myString = "b"
myInt = 2
myStruct = .init(str:"w", int:8)
myString = "c"
myInt = 3
myStruct = .init(str:"e", int:7)

print("str : \(myString!)")
print("int : \(myInt)")
print("struct : \(myStruct!)")

log

str : a
int : 1
struct : MyStruct(str: "q", int: 9)
str : z
int : 999
struct : MyStruct(str: "x", int: 888)
str-sink : z
int-sink : 999
struct-sink : MyStruct(str: "x", int: 888)
str-sink : b
int-sink : 2
struct-sink : MyStruct(str: "w", int: 8)
str-sink : c
int-sink : 3
struct-sink : MyStruct(str: "e", int: 7)
str : c
int : 3
struct : MyStruct(str: "e", int: 7)

subscriber count

print($myString.subscriberCount)

Package Metadata

Repository: southkin/cansubscribe

Default branch: main

README: README.md