[swift-evolution] Proposal: conversion protocol naming conventions

Brent Royal-Gordon brent at architechies.com
Tue Dec 15 17:30:02 CST 2015

>>> resentable is probably a lot better than CustomStringRepresentationExpressible
>> Representable is what I would have used if I wasn't trying to make a minimal change or if RawRepresentable didn't already use it for bidirectional conversion, so I agree that it is better than both Expressible and Projectable.
> Let's run with the idea that everything is up for grabs and that better names will better serve the developer community in the long run. In such a case, if the core naming patterns were established as Convertible for bidirectional conversion, would RawConvertible be such a bad thing?

I actually think `Representable` better implies two-way than `Convertible` does. A representation is a way of expressing something in a different form; a conversion is a specific act of transforming one thing to another. To me, the former sounds more like a round trip than the latter.

So I suggest:

	protocol IntegerLiteralInitializable {...} // or maybe ‘Creatable’, to cover the factory method case?
	protocol RawRepresentable {…}
	protocol CustomStringConvertible {…}

Brent Royal-Gordon

More information about the swift-evolution mailing list