CodableOptionSet 允许你轻松地让你的 OptionSet 遵循 Codable 协议,并为你自动处理 init(from decoder: Decoder)
和 encode(to encoder: Encoder)
的实现。你只需要在你的 OptionSet 中添加 @EasilyCodableOptionSet
注解即可。
CodableOptionSet 目前仅可通过 SPM (Swift 包管理器) 获取。
@EasilyCodableOptionSet struct MyOptionSet: OptionSet {
var rawValue: Int
static let optionOne = MyOptionSet(rawValue: 1 << 0)
static let optionTwo: MyOptionSet = .init(rawValue: 1 << 1)
static let optionThree: MyOptionSet = MyOptionSet(rawValue: 1 << 2)
static let all: MyOptionSet = [.optionOne, .optionTwo, .optionThree]
init(rawValue: Int) {
self.rawValue = rawValue
}
}
就这么简单。尽情享用 :)