<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">The idea (at least for me) is to namespace the enum within the protocol, so that users of the protocol have everything neatly packaged. &nbsp;Right now I have to make a Separate “FoozleErrors” enum, which just feels messy.<div class=""><br class=""></div><div class="">I would really like to see us be able to nest Structs, Enums, and even other Protocols within a protocol, and it would just act as a namespace. &nbsp;Wil is right though, that if we can only have one, Enums give us the most bang for our buck. &nbsp;That is the case I run into most often. &nbsp;In addition to Error Enums, I also have a lot of places where protocol functions return a classification (as an enum), and it is cluttering the top-level namespace with things named “Foozle____".</div><div class=""><br class=""></div><div class="">It isn’t a huge issue (it doesn’t stop me from doing anything), but it is an annoyance that I run into all the time… &nbsp;I view the fact that Swift doesn’t support this as a bug.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon<br class=""><div class=""><div class=""><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 8, 2017, at 6:10 PM, Akshay Hegde &lt;<a href="mailto:akshay_hegde@me.com" class="">akshay_hegde@me.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Wouldn’t the following work just as well for providing a namespace?<div class=""><br class=""></div><div class=""><span style="font-family: SFMono-Regular; font-size: 12px;" class="">struct Foozle {</span><br style="font-family: SFMono-Regular; font-size: 12px;" class="">&nbsp; &nbsp;&nbsp;<span style="font-family: SFMono-Regular; font-size: 12px;" class="">enum Errors: Error {</span><br style="font-family: SFMono-Regular; font-size: 12px;" class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span style="font-family: SFMono-Regular; font-size: 12px;" class="">case malformedFoozle</span><br style="font-family: SFMono-Regular; font-size: 12px;" class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span style="font-family: SFMono-Regular; font-size: 12px;" class="">case tooManyFoozles</span><br style="font-family: SFMono-Regular; font-size: 12px;" class="">&nbsp; &nbsp;&nbsp;<span style="font-family: SFMono-Regular; font-size: 12px;" class="">}</span><br style="font-family: SFMono-Regular; font-size: 12px;" class=""><font face="SFMono-Regular" class=""><span style="font-size: 12px;" class="">}</span></font></div><div class=""><div class=""></div></div><div class="">
<div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space;" class=""><br class="">~Akshay</div>

</div>
<div class=""><br class=""><blockquote type="cite" class=""><div class="">On Jul 8, 2017, at 17:24, Jonathan Hull via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">I *really* want this as well.<br class=""><br class="">I think there was a serious proposal to do this early in Swift 4. &nbsp;Not sure why it stalled, but I seem to remember it being technically possible.<br class=""><br class="">Thanks,<br class="">Jon<br class=""><br class=""><blockquote type="cite" class="">On Jul 8, 2017, at 4:21 PM, William Shipley via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class="">Does anyone know if there's some good tech reason to not allow, like:<br class=""><br class="">protocol Foozle {<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>enum Errors: Error {<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>case malformedFoozle<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">        </span>case tooManyFoozles<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>}<br class="">}<br class=""><br class="">Like, to me all this is doing is giving “Errors” a nice namespace, but the compiler might have other thoughts.<br class=""><br class="">-W<br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></blockquote><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></div></div></div></body></html>