Identifier
is a generic struct backed by a UUID, which can be specialized for the model type it identifies and provides unique, decentralized identity in a value type. It is Equatable, Hashable, and Codable, serializing to a simple UUID string.
Instead of using string identifiers in your models:
struct Comment: Equatable, Codable {
let postID: String
let authorID: String
let text: String
let date: Date
}
You can use typed identifiers, which help ensure an ID for a model of one type is never accidentally used in place of another:
struct Comment: Equatable, Codable {
let postID: Identifier<Post>
let authorID: Identifier<User>
let text: String
let date: Date
}
Add the following line to your Cartfile:
github "mattrubin/Identifier" ~> 1.1
Then run carthage update Identifier
to install the latest version of the framework.
Be sure to check the Carthage README file for the latest instructions on adding frameworks to an application.
Add the following line to your Podfile:
pod 'Identifier', '~> 1.1'
Identifier, like all pods written in Swift, can only be integrated as a framework. Make sure to add the line use_frameworks!
to your Podfile or target to opt into frameworks instead of static libraries.
Then run pod install
to install the latest version of the framework.
Add the following line to the dependencies section of your package manifest:
.package(url: "https://github.com/mattrubin/Identifier.git", from: "1.1.0"),
Then add "Identifier"
to the dependencies array of any target which should be linked with this library.
Identifier is released under the MIT License.