Mm, the point I’m trying to get at here is that JSON is inherently
untyped while Swift is strongly typed, and the two don’t line up.
It doesn’t really make sense to ask to decode an existential because
there’s not enough type information to influence what you get back.
On 19 Oct 2017, at 13:20, David Sweeris wrote:
I think if you can figure that out, you’re halfway to letting
protocols conform to themselves.
(Syntactically, I would probably say that something like
“Codable.Self” would read well, but I think that already means
something. Maybe the answer will become clearer when we rework the
reflection APIs?)
Sent from my iPhone
On Oct 19, 2017, at 13:13, Itai Ferber <ifer...@apple.com> wrote:
Even then, that wouldn’t necessarily help in the general case. If
you decode {"key" : 1} as [String : Codable], what concrete type
would 1 have? Int? Double? Int8? (Arguments can be made for any one
of these, but the key here is that it is inherently ambiguous and
there isn’t necessarily a good answer.)
On 19 Oct 2017, at 12:57, David Sweeris wrote:
On Oct 19, 2017, at 12:50 PM, David Baraff via swift-users
<swift-users@swift.org> wrote:
Yes; this is a case where anywhere in the code base I want to just
say
struct MyNewType : Codable {
// add codable datatypes
}
and don’t want/can’t always go to the centralized place to add it
in.
Is there some extension-like trick I can pull off that lets me spread
the implementation out over different files/libraries?
Ah, ok.
No, I don't think you'll be able to do that until/unless Swift gets
more macro/metaprogramming features. Maybe if protocols ever get to
conform to themselves? That's a common request, but implementing it
is apparently beyond tricky. I'm pretty sure somebody's working on
it, but "bigger fish" and all that...
- Dave Sweeris
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users