<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">This would be possible, but I have the following concerns about doing something like this:</p>

<ul>
<li>This would only be available when Foundation is imported (since this would require access to <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">JSONEncoder</code>). This could make debugging confusing if you don’t always import Foundation</li>
<li>What do you get when encoding a value fails? Or for values which would otherwise require a strategy to encode correctly? (e.g. you’ve got a property whose value is <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">Double.infinity</code> which is unrepresentable in JSON)</li>
<li>From some experience, I feel like this could lead to easy abuse of conversion to JSON (what’s easier, creating a <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">JSONEncoder</code> and encoding, or asking for the <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">debugDescription</code> on a type?)… Once people start relying on this, too, we’ll have compatibility problems if we ever want to change the format</li>
<li>And along with that, I don’t necessarily feel comfortable with promoting JSON in this way. It’s very popular today, but then again, there was a time where XML was the format du jour… 😬</li>
</ul>

<p dir="auto">Interested in hearing more thoughts and input, though!</p>

<p dir="auto">On 12 Jul 2017, at 15:51, William Shipley via swift-evolution wrote:</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><p dir="auto">Would it be possible for items that implement &lt;Codable&gt; to automatically get &lt;CustomDebugStringConvertible&gt; with a default implementation that just calls encode into a JSON blob and then dumps it to the screen?<br>
<br>
Any drawbacks to doing this?<br>
<br>
-Wil<br>
_______________________________________________<br>
swift-evolution mailing list<br>
swift-evolution@swift.org<br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color:#777">https://lists.swift.org/mailman/listinfo/swift-evolution</a></p>
</blockquote></div>
<div style="white-space:normal">
</div>
</div>
</body>
</html>