[swift-evolution] [proposal] Either in the Swift Standard Library

Brent Royal-Gordon brent at architechies.com
Mon Feb 8 08:34:34 CST 2016

> I would have probably just used an Either[String, Date],  Either[enum, Date] where enum is not necessarily an error - it could be a invalid( string) , and empty type, or a date type.  It would allow me to deal with special cases or not….  

Personally, rather than use Either<String, NSDate> with its generic .Left and .Right, I would think this would give you better code:

	enum ValidatedDate {
		static let dateFormatter = ...
		case Invalid (String)
		case Valid (NSDate)
		init(_ dateString: String) {
			if let date = ValidatedDate.dateFormatter.dateFromString(dateString) {
				self = .Valid (date)
			else {
				self = .Invalid (dateString)

Now there's no question whether Left is valid or invalid.

Brent Royal-Gordon

More information about the swift-evolution mailing list