<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 17, 2017, at 2:43 PM, Matthew Johnson 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 style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">On Mar 17, 2017, at 3:42 PM, Joe Groff 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="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I hope that Mirror will ultimately be superseded by key paths:<div class=""><br class=""></div><div class=""><a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170313/033998.html" class="">https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20170313/033998.html</a></div><div class=""><br class=""></div><div class="">Key paths address the mutability limitations of mirror, and give you the ability to work with arbitrary values in a dictionary-like way that Mirror does without an intermediary type. While the initial key path proposal lacks the dynamic discovery of key paths by name/index/etc., that would be a natural future direction to go in. Being able to build or query key paths dynamically would also solve other problems with Mirror, such as not being able to discover the structure of a value without an instance of the value.</div></div></div></blockquote><div class=""><br class=""></div><div class="">This all sounds so incredible! &nbsp;I’m really looking forward to dynamic discovery and manipulation of key paths, especially without needing an instance of the type to do it. &nbsp;It can’t come soon enough - I already have a project where it could come in very handy!</div></div></div></blockquote></div><br class=""><div class="">+1. &nbsp;I have a project right now that could use this tomorrow (and another one which is on hold until something like this becomes available).</div><div class=""><br class=""></div><div class="">The project I am working on now would use it for auto-generating user interfaces (right now I need to use getter &amp; setter closures). The one on hold would use it for hooking together parts of the event system (basically I need KVO, but made it using Protocol-oriented design… which was great until I realized I needed KVO).</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon</div></body></html>