[swift-evolution] [Proposal] Foundation Swift Archival & Serialization

Itai Ferber iferber at apple.com
Mon Mar 20 14:31:43 CDT 2017


I don’t think there’s much of a difference between adding an 
"optional" primitive (which has a default implementation in terms of a 
different primitive) and simply having that type adopt `Codable` itself 
and not be a primitive. You can still switch on the type dynamically 
(and we do), but you don’t need the optional overload for it.

On 19 Mar 2017, at 19:33, Jonathan Hull wrote:

> > On Mar 17, 2017, at 1:23 PM, Brent Royal-Gordon via swift-evolution 
> <swift-evolution at swift.org> wrote:
>>
>>> (Also, is there any sense in adding `Date` to this set, since it 
>>> needs special treatment in many of our formats?)
>>>
>>> We’ve considered adding Date to this list. However, this means 
>>> that any format that is a part of this system needs to be able to 
>>> make a decision about how to format dates. Many binary formats have 
>>> no native representations of dates, so this is not necessarily a 
>>> guarantee that all formats can make.
>>>
>>> Looking for additional opinions on this one.
>>>
>> I think that, if you're taking the view that you want to provide a 
>> set of pre-specified primitive methods as a list of things you want 
>> encoders to make a policy decision about, Date is a good candidate. 
>> But as I said earlier, I'd prefer to radically reduce the set of 
>> primitives, not add to it.
>>
>> IIUC, two of your three proposed, Foundation-provided coders need to 
>> do something special with dates; perhaps one of the three needs to do 
>> something special with different integer sizes and types. Think of 
>> that as a message about your problem domain.
>
> Have you considered having a very small set of true primitives, and a 
> larger set of optional primitives.  For the optional primitives, a 
> default implementation would be provided that converts it to/from one 
> of the true primitives (e.g. date <—> string), but it would still 
> provide an override point for formats that want to support it more 
> directly.
>
> Thanks,
> Jon


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170320/2b130958/attachment.html>


More information about the swift-evolution mailing list