shareup/atomic
Atomic is a lightweight [property wrapper](https://nshipster.com/propertywrapper/) that guarantees thread-safe access to properties decorated with the @Atomic attribute.
Usage
class Task {
@Atomic var title: String
init(title: String) {
$title = Atomic(title)
}
}
let task = Task(title: "Buy groceries")
DispatchQueue.global().async { task.title = "Buy flowers" }
DispatchQueue.global().async { task.title = "Clean kitchen" }Installation
Swift Package Manager
To use Atomic with the Swift Package Manager, add a dependency to your Package.swift file:
let package = Package(
dependencies: [
.package(url: "https://github.com/shareup/atomic.git", .upToNextMajor(from: "1.0.0"))
]
)Linux is not currently supported
Package Metadata
Repository: shareup/atomic
Default branch: main
README: README.md