I can’t thank you enough for that.

I totally missed that you can impart behavior to all the types that are part of 
a generic type by doing a protocol on the generic type itself (i.e. extension 
Set: MyEncodable).

This approach is really what I wanted because it lets an outside user create 
their own type and then make it be serializable without *me* (as the author of 
this facility) knowing they’ve done that.

——————————————
(after some implementation)

extension Set: MyEncodable {
    func encoded() -> Any {
        return self.map { $0 }
    }
    
    func decoded(_ input: Any) -> Set {
        if let listVal = input as? [Set.Element] {
            return Set(listVal)
        }
        return self
    }
}


C++ blows.  Swift rocks.

Thank you again.


_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to