On Thu, Jun 13, 2013 at 12:10 AM, Timothee Cour <span dir="ltr"><<a href="mailto:thelastmammoth@gmail.com" target="_blank">thelastmammoth@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
in the doc to executeShell (etc) it says:<div><br></div><div>Returns:<div>A struct which contains the fields int status and string output. (This will most likely change to become a std.typecons.Tuple!(int,"status",string,"output") in the future, but a compiler bug currently prevents this.)</div>

<div><br></div><div>However, it works for me when i replace </div><div>----</div><div><div><span style="white-space:pre-wrap">    </span>struct ProcessOutput { int status; string output; }</div><div><span style="white-space:pre-wrap">      </span>return ProcessOutput(wait(p.pid), cast(string) a.data);</div>

<div><div>----</div><div>by:</div><div><br></div><div></div></div><div>return Tuple!(int, "status", string, "output")(wait(p.pid), cast(string) a.data); </div></div><div>(and import std.typecons in header)</div>

<div><br></div><div>I'd like to change to this 2nd version sooner rather than later (now?) because:</div><div>* doing it now is ok since std.process was just upgraded so not too much code will be broken if we do it right away</div>

<div>* in current situation, ReturnType!executeShell !is <span style="font-family:Menlo;color:rgb(68,68,68)">ReturnType</span><span style="font-family:Menlo;color:rgb(68,68,68)">!</span><span style="font-family:Menlo;color:rgb(68,68,68)">execute which sounds silly</span></div>

<div><br></div><div>For example I wanted to add a forwarding function usable as:</div><div>"command".executeShell.outputThrows.writeln;</div><div>but it will work with executeShell and not execute (unless we make it templated), see below:</div>

<div><br></div>



<font face="Menlo">
<span style="color:#009695">string</span><span style="color:#444444"> </span><span style="color:#444444">outputThrows</span><span style="color:#444444">(</span><span style="color:#444444">ReturnType</span><span style="color:#444444">!</span><span style="color:#444444">executeShell</span><span style="color:#444444"> </span><span style="color:#444444">ret</span><span style="color:#444444">)</span><span style="color:#444444">{</span><br>


<span style="color:#444444">    </span><span style="color:#009695">import</span><span style="color:#444444"> </span><span style="color:#444444">std</span><span style="color:#444444">.</span><span style="color:#444444">exception</span><span style="color:#444444">;</span><br>


<span style="color:#444444">    </span><span style="color:#444444">enforce</span><span style="color:#444444">(</span><span style="color:#444444">!</span><span style="color:#444444">ret</span><span style="color:#444444">.</span><span style="color:#444444">status</span><span style="color:#444444">,</span><span style="color:#444444">ret</span><span style="color:#444444">.</span><span style="color:#444444">output</span><span style="color:#444444">)</span><span style="color:#444444">;</span><br>


<span style="color:#444444">    </span><span style="color:#009695">return</span><span style="color:#444444"> </span><span style="color:#444444">ret</span><span style="color:#444444">.</span><span style="color:#444444">output</span><span style="color:#444444">;</span><br>

</font><div><span style="color:rgb(68,68,68);font-family:Menlo">}</span> </div><div><b style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">Returns:</b><br style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">

<span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">A </span><span style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">struct</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"> which contains the fields </span><span style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">int status</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"> and </span><span style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">string output</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)">. (This will most likely change to become a </span><span style="font-family:Consolas,'Bitstream Vera Sans Mono','Andale Mono',Monaco,'DejaVu Sans Mono','Lucida Console',monospace;font-weight:bold;color:rgb(31,37,43);font-size:0px;background-color:rgb(31,37,43)">std.typecons.Tuple!(int,"status",string,"output")</span><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"> in the future, but a compiler bug currently prevents this.)</span></div>

</div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br></span></div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br>

</span></div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br></span></div><div><span style="color:rgb(31,37,43);font-family:Verdana,'Deja Vu','Bitstream Vera Sans',sans-serif;font-size:0px;background-color:rgb(31,37,43)"><br>

</span></div>
</blockquote></div><br><div>ping</div>