CodableOptionSet

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
    }
}

就这么简单。尽情享用 :)