[swift-evolution] Figuring out what you get for free
felixcloutier at icloud.com
Tue Sep 12 11:13:48 CDT 2017
If you look at the source for Sequence <https://github.com/apple/swift/blob/master/stdlib/public/core/Sequence.swift#L325>, you can see that the protocol declares a ton of methods and properties; but in fact, all you need to provide is Element, Iterator and makeIterator. The rest comes for free, but can be specialized.
Of course, I don't want to work more than I need to. However, I find that I'm having trouble figuring out what I get for free when I implement a protocol. In principle, I like conditional conformances and synthesized implementation of protocol methods, but I find that they both make it harder to figure out what I need to implement, and what are going to be the performance characteristics of methods that I choose to not implement.
I feel like this is perceived to be a problem by a lot of other people. Is there anything that can make it easier to figure out what you get for free?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution