You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by gi...@apache.org on 2021/06/17 21:10:38 UTC

[thrift-website] branch asf-staging updated: Automatic Site Publish by Buildbot

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/thrift-website.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new 906fdd1  Automatic Site Publish by Buildbot
906fdd1 is described below

commit 906fdd109f941b3450de3359c57c80c6799334ab
Author: buildbot <us...@infra.apache.org>
AuthorDate: Thu Jun 17 21:10:35 2021 +0000

    Automatic Site Publish by Buildbot
---
 output/docs/Languages.html                     |  19 +--
 output/docs/committers/HowToThriftWebsite.html |   4 +-
 output/docs/install/debian.html                |   5 -
 output/download.html                           |  10 +-
 output/index.html                              |  10 +-
 output/lib/haxe.html                           |  52 +++----
 output/lib/hs.html                             | 110 ++++----------
 output/tutorial/delphi.html                    |   8 +-
 output/tutorial/go.html                        |  13 +-
 output/tutorial/haxe.html                      |  40 ++---
 output/tutorial/hs.html                        | 201 ++++++++-----------------
 output/tutorial/netstd.html                    | 144 +++++++++---------
 12 files changed, 229 insertions(+), 387 deletions(-)

diff --git a/output/docs/Languages.html b/output/docs/Languages.html
index d4023e2..e4e07f3 100644
--- a/output/docs/Languages.html
+++ b/output/docs/Languages.html
@@ -149,7 +149,7 @@ Thrift&#8217;s core protocol is TBinary, supported by all languages except for J
 <td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/d/README.md">Dlang</a></td>
 <!-- Since -----------------><td>0.9.0</td>
 <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td>2.075.1</td><td>2.087.0</td>
+<!-- Language Levels -------><td>2.087.0</td><td>2.087.0</td>
 <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
 <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
 <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
@@ -171,7 +171,7 @@ Thrift&#8217;s core protocol is TBinary, supported by all languages except for J
 <td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/delphi/README.md">Delphi</a></td>
 <!-- Since -----------------><td>0.8.0</td>
 <!-- Build Systems ---------><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td>2010</td><td>unknown</td>
+<!-- Language Levels -------><td>2010</td><td>Sydney 10.4.1</td>
 <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
 <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
 <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
@@ -182,7 +182,7 @@ Thrift&#8217;s core protocol is TBinary, supported by all languages except for J
 <td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/netstd/README.md">.NET Standard</a></td>
 <!-- Since -----------------><td>0.13.0</td>
 <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td colspan="2">.NET 4.5+, .NET Standard 2.x</td>
+<!-- Language Levels -------><td colspan="2">.NET 4.5+, .NET Standard 2.x, .NET 5.0</td>
 <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
 <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
 <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
@@ -212,21 +212,10 @@ Thrift&#8217;s core protocol is TBinary, supported by all languages except for J
 <td align="left"><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20THRIFT%20AND%20component%20in%20(%22Go%20-%20Compiler%22%2C%20%22Go%20-%20Library%22)%20and%20status%20not%20in%20(fixed%2C%20resolved%2C%20closed)">Go</a></td>
 </tr>
 <tr align="center">
-<td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/hs/README.md">Haskell</a></td>
-<!-- Since -----------------><td>0.5.0</td>
-<!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
-<!-- Language Levels -------><td>7.10.3</td><td>8.0.2</td>
-<!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
-<!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Servers ---------------><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<td align="left"><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20THRIFT%20AND%20component%20in%20(%22Haskell%20-%20Compiler%22%2C%20%22Haskell%20-%20Library%22)%20and%20status%20not%20in%20(fixed%2C%20resolved%2C%20closed)">Haskell</a></td>
-</tr>
-<tr align="center">
 <td align="left"><a href="https://github.com/apache/thrift/blob/master/lib/haxe/README.md">Haxe</a></td>
 <!-- Since -----------------><td>0.9.3</td>
 <!-- Build Systems ---------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
-<!-- Language Levels -------><td>3.2.1</td><td>3.4.4</td>
+<!-- Language Levels -------><td>4.1.5</td><td>4.2.1</td>
 <!-- Low-Level Transports --><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
 <!-- Transport Wrappers ----><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cred.png" alt="" /></td>
 <!-- Protocols -------------><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td><td><img src="doc/images/cgrn.png" alt="Yes" /></td>
diff --git a/output/docs/committers/HowToThriftWebsite.html b/output/docs/committers/HowToThriftWebsite.html
index 22d67e1..4536239 100644
--- a/output/docs/committers/HowToThriftWebsite.html
+++ b/output/docs/committers/HowToThriftWebsite.html
@@ -101,8 +101,8 @@ consistent experience with the various markdown parsers deployed by the CMS.</p>
 file” <a href="https://svn.apache.org/repos/asf/thrift/cms-site/trunk/lib/path.pm">lib/path.pm</a>. Update
 the following values and then following <b>Updating the Website</b> section below</p>
 
-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>current_release: "0.14.1"
-current_release_date: "2021-MAR-08"
+<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>current_release: "0.14.2"
+current_release_date: "2021-JUN-17"
 </code></pre></div></div>
 
 <h3 id="updating-the-website">Updating the website</h3>
diff --git a/output/docs/install/debian.html b/output/docs/install/debian.html
index def4304..27d5aa6 100644
--- a/output/docs/install/debian.html
+++ b/output/docs/install/debian.html
@@ -113,11 +113,6 @@ sudo ./b2 install
       <li>apt-transport-https dotnet-sdk-5.0 aspnetcore-runtime-5.0</li>
     </ul>
   </li>
-  <li>Haskell
-    <ul>
-      <li>ghc cabal-install libghc-binary-dev libghc-network-dev libghc-http-dev</li>
-    </ul>
-  </li>
   <li>Thrift Compiler for Windows
     <ul>
       <li>mingw-w64 mingw-w64-x86-64-dev nsis</li>
diff --git a/output/download.html b/output/download.html
index 37e5a29..5e510bd 100644
--- a/output/download.html
+++ b/output/download.html
@@ -50,19 +50,19 @@
 
     <div class="container">
       <h2 id="release">Release</h2>
-<p>The latest stable release of Thrift is 0.14.1 (released on 2021-MAR-08).</p>
+<p>The latest stable release of Thrift is 0.14.2 (released on 2021-JUN-17).</p>
 
 <ul>
-  <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.1/thrift-0.14.1.tar.gz">thrift-0.14.1.tar.gz</a> [<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.asc">PGP</a>]
-[<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.md5">MD5</a>]</li>
-  <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.1/thrift-0.14.1.exe">Thrift compiler for Windows (thrift-0.14.1.exe)</a> [<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.exe.asc">PGP</a>] [<a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.exe.md5">MD5</a>]</li>
+  <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.2/thrift-0.14.2.tar.gz">thrift-0.14.2.tar.gz</a> [<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.asc">PGP</a>]
+[<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.md5">MD5</a>]</li>
+  <li><a href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.2/thrift-0.14.2.exe">Thrift compiler for Windows (thrift-0.14.2.exe)</a> [<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.exe.asc">PGP</a>] [<a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.exe.md5">MD5</a>]</li>
 </ul>
 
 <h2 id="maven-artifact">Maven artifact</h2>
 <pre><code>&lt;dependency&gt;
   &lt;groupId&gt;org.apache.thrift&lt;/groupId&gt;
   &lt;artifactId&gt;libthrift&lt;/artifactId&gt;
-  &lt;version&gt;0.14.1&lt;/version&gt;
+  &lt;version&gt;0.14.2&lt;/version&gt;
 &lt;/dependency&gt;
 </code></pre>
 
diff --git a/output/index.html b/output/index.html
index bcca8c5..aec8dfd 100644
--- a/output/index.html
+++ b/output/index.html
@@ -80,19 +80,19 @@
   </div>
   <div class="span3 well center pull-right">
     <h2>Download</h2>
-    <p>Apache Thrift v0.14.1</p>
+    <p>Apache Thrift v0.14.2</p>
     <p>
-      <a class="btn btn-large" href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.1/thrift-0.14.1.tar.gz">
-          Download <small>v0.14.1</small>
+      <a class="btn btn-large" href="http://www.apache.org/dyn/closer.cgi?path=/thrift/0.14.2/thrift-0.14.2.tar.gz">
+          Download <small>v0.14.2</small>
       </a>
     </p>
     <p>
       <small>
-       <a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.md5">MD5</a>
+       <a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.md5">MD5</a>
       </small>
       |
       <small>
-       <a href="https://www.apache.org/dist/thrift/0.14.1/thrift-0.14.1.tar.gz.asc">PGP</a>
+       <a href="https://www.apache.org/dist/thrift/0.14.2/thrift-0.14.2.tar.gz.asc">PGP</a>
       </small>
     </p>
     <p>
diff --git a/output/lib/haxe.html b/output/lib/haxe.html
index 6cbff9a..539db43 100644
--- a/output/lib/haxe.html
+++ b/output/lib/haxe.html
@@ -54,16 +54,14 @@
 
 <h2 id="haxe-setup">Haxe setup</h2>
 
-<p>Thrift requires Haxe 3.1.3. Installers for Windows and OSX
+<p>Thrift requires Haxe 4.2.1. Installers for Windows and OSX
 platforms are available at <code>http://haxe.org/download</code>.</p>
 
 <p>Depending on the desired targets, you may have to install the appropriate HaxeLibs 
-after installing Haxe itself. For example, if you plan to target C#, Java and C++,
-enter the following commands after installing Haxe:</p>
+after installing Haxe itself. For example, if you plan to target C++, enter the 
+following command after installing Haxe:</p>
 
 <pre><code>haxelib install hxcpp
-haxelib install hxjava
-haxelib install hxcs
 </code></pre>
 
 <p>For other targets, please consult the Haxe documentation whether or not any additional
@@ -95,15 +93,15 @@ sudo ldconfig
 
 <h2 id="thrift-haxe-bindings">Thrift Haxe bindings</h2>
 
-<p>Thrift Haxe bindings can be set up via the <code>haxelib</code> tool<br />
-either from the official ASF repo, or via the github mirror.</p>
+<p>Thrift Haxe bindings can be set up via the <code>haxelib</code> tool  as usual.
+Alternatively, the &#8220;github&#8221; method can be used.</p>
 
 <ul>
   <li>
-    <p>To set up any <strong>stable version</strong>, choose the appropriate branch (e.g. <code>0.12.0</code>):</p>
+    <p>To set up any <strong>stable version</strong>, choose the appropriate branch (e.g. <code>0.14.1</code>):</p>
 
     <ul>
-      <li><code>haxelib git thrift https://github.com/apache/thrift.git 0.12.0 lib/haxe</code></li>
+      <li><code>haxelib git thrift https://github.com/apache/thrift.git 0.14.1 lib/haxe</code></li>
     </ul>
   </li>
   <li>
@@ -123,33 +121,21 @@ or build from source, depending on your operating system. Appropriate
 downloads and more information can be found at http://thrift.apache.org</p>
 
 <p>To get started, visit the /tutorial/haxe and /test/haxe dirs for examples. 
-If you are using HIDE or the FlashDevelop IDE, you&#8217;ll find appropriate 
-project files in these folders.</p>
+If you are using the HaxeDevelop IDE, you&#8217;ll find appropriate project files 
+in these folders.</p>
 
-<h1 id="current-status">Current status</h1>
-<ul>
-  <li>tested with Haxe C++ target</li>
-  <li>tested with Haxe PHP target (console/web server, binary protocols)</li>
-  <li>transports: Socket, HTTP (servers run inside PHP server/PHP target only), Stream</li>
-  <li>protocols: Binary, JSON, Multiplex, Compact</li>
-  <li>tutorial client and server available</li>
-  <li>cross-test client and server available</li>
-</ul>
-
-<h1 id="further-developments">Further developments</h1>
-<ul>
-  <li>improve to work with C#, Java and JavaScript Haxe/OpenFL targets</li>
-  <li>improve to work with more (ideally all) Haxe/OpenFL targets</li>
-  <li>add HTTP server, update tutorial and tests accordingly</li>
-</ul>
-
-<h1 id="known-restrictions">Known restrictions</h1>
+<h1 id="breaking-changes">Breaking changes</h1>
+<p>This version requires Haxe 4 and cannot be used with earlier versions.</p>
 
-<p>Although designed with maximum portability in mind, for technical reasons some platforms
-may only support parts of the library, or not be compatible at all.</p>
+<p>It is recommended to clear out all gen-haxe contents once before switching 
+to the new version. Otherwise you may run into troubles with leftovers from 
+previous versions.</p>
 
-<p>Javascript:
-- tutorial fails to build because of unsupported Sys.args</p>
+<p>The compiler option <code>callbacks</code> is now obsolete. The compiler will always 
+generate a dual interface (i.e. with optional callback style) for use on the 
+client side, plus a new <code>_service</code> interface to be used for server 
+implementations. Consequentially, your client and server implementations will
+need some manual intervention.</p>
 
 <h1 id="php-http-server-notes">PHP HTTP Server notes</h1>
 
diff --git a/output/lib/hs.html b/output/lib/hs.html
index 270d043..db667c5 100644
--- a/output/lib/hs.html
+++ b/output/lib/hs.html
@@ -50,89 +50,37 @@
 
     <div class="container">
       
-<h1 id="compile">Compile</h1>
-
-<p>Use Cabal to compile and install; ./configure uses Cabal underneath, and that
-path is not yet well tested. Thrift&#8217;s library and generated code should compile
-with pretty much any GHC extensions or warnings you enable (or disable).
-Please report this not being the case as a bug on
-https://issues.apache.org/jira/secure/CreateIssue!default.jspa</p>
-
-<p>Chances you&#8217;ll need to muck a bit with Cabal flags to install Thrift:</p>
-
-<p>CABAL_CONFIGURE_FLAGS=&#8221;&#8211;user&#8221; ./configure</p>
-
-<h1 id="base-types">Base Types</h1>
-
-<p>The mapping from Thrift types to Haskell&#8217;s is:</p>
-
-<ul>
-  <li>double -&gt; Double</li>
-  <li>byte -&gt; Data.Int.Int8</li>
-  <li>i16 -&gt; Data.Int.Int16</li>
-  <li>i32 -&gt; Data.Int.Int32</li>
-  <li>i64 -&gt; Data.Int.Int64</li>
-  <li>string -&gt; Text</li>
-  <li>binary -&gt; Data.ByteString.Lazy</li>
-  <li>bool -&gt; Boolean</li>
-</ul>
-
-<h1 id="enums">Enums</h1>
-
-<p>Become Haskell &#8216;data&#8217; types. Use fromEnum to get out the int value.</p>
-
-<h1 id="lists">Lists</h1>
-
-<p>Become Data.Vector.Vector from the vector package.</p>
-
-<h1 id="maps-and-sets">Maps and Sets</h1>
-
-<p>Become Data.HashMap.Strict.Map and Data.HashSet.Set from the
-unordered-containers package.</p>
-
-<h1 id="structs">Structs</h1>
-
-<p>Become records. Field labels are ugly, of the form f_STRUCTNAME_FIELDNAME. All
-fields are Maybe types.</p>
-
-<h1 id="exceptions">Exceptions</h1>
-
-<p>Identical to structs. Use them with throw and catch from Control.Exception.</p>
-
-<h1 id="client">Client</h1>
-
-<p>Just a bunch of functions. You may have to import a bunch of client files to
-deal with inheritance.</p>
-
-<h1 id="interface">Interface</h1>
-
-<p>You should only have to import the last one in the chain of inheritors. To make
-an interface, declare a label:</p>
-
-<p>data MyIface = MyIface</p>
-
-<p>and then declare it an instance of each iface class, starting with the superest
-class and proceeding down (all the while defining the methods).  Then pass your
-label to process as the handler.</p>
-
-<h1 id="processor">Processor</h1>
-
-<p>Just a function that takes a handler label, protocols. It calls the
-superclasses process if there is a superclass.</p>
-
-<h1 id="releasing-to-hackage">Releasing to Hackage</h1>
-
-<p>Using the <a href="../../build/docker/README.md">Docker Container for Ubuntu Bionic</a>, run:</p>
+<p><select name="st">
+<option selected="selected" value="commit">commit</option>
+<option value="grep">grep</option>
+<option value="author">author</option>
+<option value="committer">committer</option>
+<option value="pickaxe">pickaxe</option>
+</select> <a href="/repos/asf?p=thrift.git;a=search_help" title="search help">?</a> search:
+<input type="text" name="s" />
+<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span>&lt;/div&gt;
+&lt;/form&gt;</p>
+<div class="page_body">
+<br /><br />
+404 - Cannot find file
+<br />
+</div>
+<div class="page_footer">
+<div class="page_footer_text">Apache Thrift</div>
+<a class="rss_logo" href="/repos/asf?p=thrift.git;a=rss;f=lib/hs/README.md" title="history of lib/hs/README.md RSS feed">RSS</a>
+<a class="rss_logo" href="/repos/asf?p=thrift.git;a=atom;f=lib/hs/README.md" title="history of lib/hs/README.md Atom feed">Atom</a>
+</div>
+<script type="text/javascript" src="/static/gitweb.js"></script>
 
-<pre><code>root@e941f5311545:/thrift/src# ./bootstrap.sh &amp;&amp; ./configure
-root@e941f5311545:/thrift/src# cd lib/hs &amp;&amp; make dist-local
-</code></pre>
+<script type="text/javascript">
+window.onload = function () {
+	var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' };
+	onloadTZSetup('local', tz_cookie, 'datetime');
+};
+</script>
 
-<p>This will produce a <code>lib/hs/dist/thrift-&lt;version&gt;.tar.gz</code> file.  Take this
-file and upload it as a Haskell Hackage
-<a href="https://hackage.haskell.org/upload#candidates">package candidate</a> and 
-check to make sure all the information is correct.  Assuming all is satisfactory,
-you can upload the package as official using the link at the top of the page.</p>
+<p>&lt;/body&gt;
+&lt;/html&gt;</p>
 
 <p class="snippet_footer">This page was generated by Apache Thrift's <strong>source tree docs</strong>:
 <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=lib/hs/README.md">lib/hs/README.md</a>
diff --git a/output/tutorial/delphi.html b/output/tutorial/delphi.html
index 0fa163f..c1c4afd 100644
--- a/output/tutorial/delphi.html
+++ b/output/tutorial/delphi.html
@@ -91,8 +91,8 @@ All Apache Thrift tutorials require that you have:
   <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span><span class="p">.</span><span class="n">WinHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Transport.WinHTTP.pas'</span><span class="p">,</span>
   <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span><span class="p">.</span><span class="n">MsxmlHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Transport.MsxmlHTTP.pas'</span><span class="p">,</span>
   <span class="n">Thrift</span><span class="p">.</span><span class="n">WinHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.WinHTTP.pas'</span><span class="p">,</span>
-  <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Shared.pas'</span><span class="p">,</span>
-  <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
+  <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Shared.pas'</span><span class="p">,</span>
+  <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
 
 
 <span class="k">type</span>
@@ -194,8 +194,8 @@ All Apache Thrift tutorials require that you have:
   <span class="n">Thrift</span><span class="p">.</span><span class="n">Server</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Server.pas'</span><span class="p">,</span>
   <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.Transport.pas'</span><span class="p">,</span>
   <span class="n">Thrift</span><span class="p">.</span><span class="n">WinHTTP</span> <span class="k">in</span> <span class="s">'..\..\..\lib\delphi\src\Thrift.WinHTTP.pas'</span><span class="p">,</span>
-  <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Shared.pas'</span><span class="p">,</span>
-  <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
+  <span class="n">Shared</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Shared.pas'</span><span class="p">,</span>
+  <span class="n">Tutorial</span> <span class="k">in</span> <span class="s">'..\gen-delphi\Tutorial.pas'</span><span class="p">;</span>
 
 
 <span class="k">type</span>
diff --git a/output/tutorial/go.html b/output/tutorial/go.html
index 739677a..32d2db8 100644
--- a/output/tutorial/go.html
+++ b/output/tutorial/go.html
@@ -79,9 +79,9 @@ To use a specific version of the library, either clone the repository for that v
 	<span class="s">"context"</span>
 	<span class="s">"crypto/tls"</span>
 	<span class="s">"fmt"</span>
-	<span class="s">"tutorial"</span>
 
 	<span class="s">"github.com/apache/thrift/lib/go/thrift"</span>
+	<span class="s">"github.com/apache/thrift/tutorial/go/gen-go/tutorial"</span>
 <span class="p">)</span>
 
 <span class="n">var</span> <span class="n">defaultCtx</span> <span class="o">=</span> <span class="n">context</span><span class="p">.</span><span class="n">Background</span><span class="p">()</span>
@@ -163,8 +163,9 @@ To use a specific version of the library, either clone the repository for that v
 <div class="highlight"><pre class="codehilite"><code><span class="n">import</span> <span class="p">(</span>
 	<span class="s">"crypto/tls"</span>
 	<span class="s">"fmt"</span>
+
 	<span class="s">"github.com/apache/thrift/lib/go/thrift"</span>
-	<span class="s">"tutorial"</span>
+	<span class="s">"github.com/apache/thrift/tutorial/go/gen-go/tutorial"</span>
 <span class="p">)</span>
 
 <span class="n">func</span> <span class="nf">runServer</span><span class="p">(</span><span class="n">transportFactory</span> <span class="n">thrift</span><span class="p">.</span><span class="n">TTransportFactory</span><span class="p">,</span> <span class="n">protocolFactory</span> <span class="n">thrift</span><span class="p">.</span><span class="n">TProtocolFactory</span><span class="p">,</span> <span class="n">addr</span> <span class="n">string</span><span class="p">,</span> <span class [...]
@@ -181,7 +182,7 @@ To use a specific version of the library, either clone the repository for that v
 	<span class="err">}</span> <span class="k">else</span> <span class="p">{</span>
 		<span class="n">transport</span><span class="p">,</span> <span class="n">err</span> <span class="o">=</span> <span class="n">thrift</span><span class="p">.</span><span class="n">NewTServerSocket</span><span class="p">(</span><span class="n">addr</span><span class="p">)</span>
 	<span class="p">}</span>
-	
+
 	<span class="k">if</span> <span class="n">err</span> <span class="o">!=</span> <span class="n">nil</span> <span class="p">{</span>
 		<span class="k">return</span> <span class="n">err</span>
 	<span class="p">}</span>
@@ -192,7 +193,6 @@ To use a specific version of the library, either clone the repository for that v
 
 	<span class="n">fmt</span><span class="p">.</span><span class="n">Println</span><span class="p">(</span><span class="s">"Starting the simple server... on "</span><span class="p">,</span> <span class="n">addr</span><span class="p">)</span>
 	<span class="k">return</span> <span class="n">server</span><span class="p">.</span><span class="n">Serve</span><span class="p">()</span>
-<span class="err">}</span>
 </code></pre></div>
 <p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
 <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/go/src/server.go">tutorial/go/src/server.go</a>
@@ -203,9 +203,10 @@ To use a specific version of the library, either clone the repository for that v
 <div class="highlight"><pre class="codehilite"><code><span class="n">import</span> <span class="p">(</span>
 	<span class="s">"context"</span>
 	<span class="s">"fmt"</span>
-	<span class="s">"shared"</span>
 	<span class="s">"strconv"</span>
-	<span class="s">"tutorial"</span>
+
+	<span class="s">"github.com/apache/thrift/tutorial/go/gen-go/shared"</span>
+	<span class="s">"github.com/apache/thrift/tutorial/go/gen-go/tutorial"</span>
 <span class="p">)</span>
 
 <span class="n">type</span> <span class="n">CalculatorHandler</span> <span class="k">struct</span> <span class="p">{</span>
diff --git a/output/tutorial/haxe.html b/output/tutorial/haxe.html
index 011c652..6de1428 100644
--- a/output/tutorial/haxe.html
+++ b/output/tutorial/haxe.html
@@ -88,6 +88,7 @@ import shared.*;
 enum Prot {
     binary;
     json;
+	compact;
 }
 
 enum Trns {
@@ -168,12 +169,12 @@ class Main {
     #if ! (flash || js)
 
     private static function GetHelp() : String {
-        return Sys.executablePath()+"  modus  trnsOption  transport  protocol\n"
+        return Sys.programPath+"  modus  layered  transport  protocol\n"
         +"Options:\n"
-        +"  modus:       client, server   (default: client)\n"
-        +"  trnsOption:  framed, buffered (default: none)\n"
-        +"  transport:   socket, http     (default: socket)\n"
-        +"  protocol:    binary, json     (default: binary)\n"
+        +"  modus:       client, server          (default: client)\n"
+        +"  layered:     framed, buffered        (default: none)\n"
+        +"  transport:   socket, http            (default: socket)\n"
+        +"  protocol:    binary, json, compact   (default: binary)\n"
         +"\n"
         +"All arguments are optional.\n";
     }
@@ -216,6 +217,9 @@ class Main {
                 } else if ( arg == "json") {
                     prot = json;
                     ++step;
+                } else if ( arg == "compact") {
+                    prot = compact;
+                    ++step;
                 } else {
                     throw "Unknown protocol "+arg;
                 }
@@ -273,6 +277,9 @@ class Main {
         case json:
              trace("- JSON protocol");
              protocol = new TJSONProtocol( transport);
+        case compact:
+             trace("- compact protocol");
+             protocol = new TCompactProtocol( transport);
         default:
             throw "Unhandled protocol";
         }
@@ -288,7 +295,7 @@ class Main {
         var client = ClientSetup();
 
         try {
-              client.ping();
+            client.ping();
             trace("ping() successful");
         } catch(error : TException) {
             trace('ping() failed: $error');
@@ -366,11 +373,12 @@ class Main {
             #else
               trace("- http transport");
               transport = new TWrappingServerTransport(
-                      new TStreamTransport(
-                        new TFileStream("php://input", Read),
-                        new TFileStream("php://output", Append)
-                        )
-                      );
+                new TStreamTransport(
+                  new TFileStream("php://input", Read),
+                  new TFileStream("php://output", Append),
+                  null
+                )
+              );
 
             #end
         default:
@@ -378,14 +386,6 @@ class Main {
         }
 
         // optional: layered transport
-        var transfactory : TTransportFactory = null;
-        if ( framed) {
-            trace("- framed transport");
-            transfactory = new TFramedTransportFactory();
-        } else if ( buffered) {
-            trace("- buffered transport");
-            transfactory = new TBufferedTransportFactory();
-        }
 </code></pre></div>
 <p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
 <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/haxe/src/Main.hx">tutorial/haxe/src/Main.hx</a>
@@ -411,7 +411,7 @@ import tutorial.*;
 import shared.*;
 
 
-class CalculatorHandler implements Calculator {
+class CalculatorHandler implements Calculator_service {
 
     private var log = new IntMap&lt;SharedStruct&gt;();
 
diff --git a/output/tutorial/hs.html b/output/tutorial/hs.html
index c7ad98b..efb0718 100644
--- a/output/tutorial/hs.html
+++ b/output/tutorial/hs.html
@@ -68,151 +68,74 @@ All Apache Thrift tutorials require that you have:
 
 <h3 id="client">Client</h3>
 
-<div class="highlight"><pre class="codehilite"><code><span class="n">import</span> <span class="n">qualified</span> <span class="n">Calculator</span>
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">Calculator_Client</span> <span class="n">as</span> <span class="n">Client</span>
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">SharedService_Client</span> <span class="n">as</span> <span class="n">SClient</span>
-<span class="n">import</span> <span class="n">Tutorial_Types</span>
-<span class="n">import</span> <span class="n">SharedService_Iface</span>
-<span class="n">import</span> <span class="n">Shared_Types</span>
-
-<span class="n">import</span> <span class="n">Thrift</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span><span class="p">.</span><span class="n">Handle</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Server</span>
-
-<span class="n">import</span> <span class="n">Control</span><span class="p">.</span><span class="n">Exception</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Maybe</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Text</span><span class="p">.</span><span class="n">Lazy</span>
-<span class="n">import</span> <span class="n">Text</span><span class="p">.</span><span class="n">Printf</span>
-<span class="n">import</span> <span class="n">Network</span>
-
-<span class="n">main</span> <span class="o">=</span> <span class="k">do</span>
-  <span class="n">transport</span>  <span class="o">&lt;-</span> <span class="n">hOpen</span> <span class="p">(</span><span class="s">"localhost"</span><span class="p">,</span> <span class="n">PortNumber</span> <span class="mi">9090</span><span class="p">)</span>
-  <span class="n">let</span> <span class="n">binProto</span> <span class="o">=</span> <span class="n">BinaryProtocol</span> <span class="n">transport</span>
-  <span class="n">let</span> <span class="n">client</span> <span class="o">=</span> <span class="p">(</span><span class="n">binProto</span><span class="p">,</span> <span class="n">binProto</span><span class="p">)</span>
-
-  <span class="n">Client</span><span class="p">.</span><span class="n">ping</span> <span class="n">client</span>
-  <span class="n">print</span> <span class="s">"ping()"</span>
-
-  <span class="n">sum</span> <span class="o">&lt;-</span> <span class="n">Client</span><span class="p">.</span><span class="n">add</span> <span class="n">client</span> <span class="mi">1</span> <span class="mi">1</span>
-  <span class="n">printf</span> <span class="s">"1+1=%d</span><span class="se">\n</span><span class="s">"</span> <span class="n">sum</span>
-
-
-  <span class="n">let</span> <span class="n">work</span> <span class="o">=</span> <span class="n">Work</span> <span class="p">{</span> <span class="n">work_op</span> <span class="o">=</span> <span class="n">Operation_DIVIDE</span><span class="p">,</span>
-                    <span class="n">work_num1</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
-                    <span class="n">work_num2</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
-                    <span class="n">work_comment</span> <span class="o">=</span> <span class="n">Nothing</span>
-                  <span class="p">}</span>
-
-  <span class="n">Control</span><span class="p">.</span><span class="n">Exception</span><span class="p">.</span><span class="k">catch</span> <span class="p">(</span><span class="n">printf</span> <span class="s">"1/0=%d</span><span class="se">\n</span><span class="s">"</span> <span class="o">=&lt;&lt;</span> <span class="n">Client</span><span class="p">.</span><span class="n">calculate</span> <span class="n">client</span> <span class="mi">1</span> <span class="n">work</span><span class="p [...]
-        <span class="p">(</span><span class="err">\</span><span class="n">e</span> <span class="o">-&gt;</span> <span class="n">printf</span> <span class="s">"InvalidOperation %s</span><span class="se">\n</span><span class="s">"</span> <span class="p">(</span><span class="n">show</span> <span class="p">(</span><span class="n">e</span> <span class="o">::</span> <span class="n">InvalidOperation</span><span class="p">)))</span>
-
-
-  <span class="n">let</span> <span class="n">work</span> <span class="o">=</span> <span class="n">Work</span> <span class="p">{</span> <span class="n">work_op</span> <span class="o">=</span> <span class="n">Operation_SUBTRACT</span><span class="p">,</span>
-                    <span class="n">work_num1</span> <span class="o">=</span> <span class="mi">15</span><span class="p">,</span>
-                    <span class="n">work_num2</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span>
-                    <span class="n">work_comment</span> <span class="o">=</span> <span class="n">Nothing</span>
-                  <span class="p">}</span>
-
-  <span class="n">diff</span> <span class="o">&lt;-</span> <span class="n">Client</span><span class="p">.</span><span class="n">calculate</span> <span class="n">client</span> <span class="mi">1</span> <span class="n">work</span>
-  <span class="n">printf</span> <span class="s">"15-10=%d</span><span class="se">\n</span><span class="s">"</span> <span class="n">diff</span>
-
-  <span class="n">log</span> <span class="o">&lt;-</span> <span class="n">SClient</span><span class="p">.</span><span class="n">getStruct</span> <span class="n">client</span> <span class="mi">1</span>
-  <span class="n">printf</span> <span class="s">"Check log: %s</span><span class="se">\n</span><span class="s">"</span> <span class="err">$</span> <span class="n">unpack</span> <span class="err">$</span> <span class="n">sharedStruct_value</span> <span class="n">log</span>
-
-  <span class="o">--</span> <span class="n">Close</span><span class="o">!</span>
-</code></pre></div>
+<div class="highlight"><pre class="codehilite"><code><span class="o">&lt;</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"a"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"search"</span> <span class="o">/&gt;</span>
+<span class="o">&lt;</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"h"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"HEAD"</span> <span class="o">/&gt;</span>
+<span class="o">&lt;</span><span class="n">select</span> <span class="n">name</span><span class="o">=</span><span class="s">"st"</span> <span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">selected</span><span class="o">=</span><span class="s">"selected"</span> <span class="n">value</span><span class="o">=</span><span class="s">"commit"</span><span class="o">&gt;</span><span class="n">commit</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"grep"</span><span class="o">&gt;</span><span class="n">grep</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"author"</span><span class="o">&gt;</span><span class="n">author</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"committer"</span><span class="o">&gt;</span><span class="n">committer</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"pickaxe"</span><span class="o">&gt;</span><span class="n">pickaxe</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;/</span><span class="n">select</span><span class="o">&gt;</span> <span class="o">&lt;</span><span class="n">a</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=search_help"</span> <span class="n">title</span><span class="o">=</span><span class="s">"search help"</span><span class="o">&gt;?&lt;/</span><span class="n">a</span><span class="o">&gt;</span> <span class="n">search</span><span class="o">:</span>
+<span class="o">&lt;</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"text"</span> <span class="n">name</span><span class="o">=</span><span class="s">"s"</span>  <span class="o">/&gt;</span>
+<span class="o">&lt;</span><span class="n">span</span> <span class="n">title</span><span class="o">=</span><span class="s">"Extended regular expression"</span><span class="o">&gt;&lt;</span><span class="n">label</span><span class="o">&gt;&lt;</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"checkbox"</span> <span class="n">name</span><span class="o">=</span><span class="s">"sr"</span> <span class="n">value</span><span class="o">=</spa [...]
+<span class="o">&lt;/</span><span class="n">form</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_body"</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">br</span> <span class="o">/&gt;&lt;</span><span class="n">br</span> <span class="o">/&gt;</span>
+<span class="mi">404</span> <span class="o">-</span> <span class="n">Cannot</span> <span class="n">find</span> <span class="n">file</span>
+<span class="o">&lt;</span><span class="n">br</span> <span class="o">/&gt;</span>
+<span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer"</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer_text"</span><span class="o">&gt;</span><span class="n">Apache</span> <span class="n">Thrift</span><span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=rss;f=tutorial/hs/HaskellClient.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellClient.hs RSS feed"</span><span class="o">&gt;</span><span class="n">RSS</span><span class="o">&lt;/</span><span class [...]
+<span class="o">&lt;</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=atom;f=tutorial/hs/HaskellClient.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellClient.hs Atom feed"</span><span class="o">&gt;</span><span class="n">Atom</span><span class="o">&lt;/</span><span cl [...]
+<span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span> <span class="n">src</span><span class="o">=</span><span class="s">"/static/gitweb.js"</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="o">&gt;</span>
+<span class="n">window</span><span class="p">.</span><span class="n">onload</span> <span class="o">=</span> <span class="n">function</span> <span class="p">()</span> <span class="p">{</span>
+	<span class="n">var</span> <span class="n">tz_cookie</span> <span class="o">=</span> <span class="p">{</span> <span class="n">name</span><span class="o">:</span> <span class="err">'</span><span class="n">gitweb_tz</span><span class="err">'</span><span class="p">,</span> <span class="n">expires</span><span class="o">:</span> <span class="mi">14</span><span class="p">,</span> <span class="n">path</span><span class="o">:</span> <span class="sc">'/'</span> <span class="p">};</span>
+	<span class="n">onloadTZSetup</span><span class="p">(</span><span class="err">'</span><span class="n">local</span><span class="err">'</span><span class="p">,</span> <span class="n">tz_cookie</span><span class="p">,</span> <span class="err">'</span><span class="n">datetime</span><span class="err">'</span><span class="p">);</span>
+<span class="p">};</span>
+<span class="o">&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
+<span class="o">&lt;/</span><span class="n">body</span><span class="o">&gt;</span>
+<span class="o">&lt;/</span><span class="n">html</span><span class="o">&gt;</span></code></pre></div>
 <p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
 <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/hs/HaskellClient.hs">tutorial/hs/HaskellClient.hs</a>
 </p>
 
 <h3 id="server">Server</h3>
 
-<div class="highlight"><pre class="codehilite"><code><span class="p">{</span><span class="o">-</span><span class="err">#</span> <span class="n">LANGUAGE</span> <span class="n">OverloadedStrings</span> <span class="err">#</span><span class="o">-</span><span class="p">}</span>
-
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">Calculator</span>
-<span class="n">import</span> <span class="n">Calculator_Iface</span>
-<span class="n">import</span> <span class="n">Tutorial_Types</span>
-<span class="n">import</span> <span class="n">SharedService_Iface</span>
-<span class="n">import</span> <span class="n">Shared_Types</span>
-
-<span class="n">import</span> <span class="n">Thrift</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Transport</span>
-<span class="n">import</span> <span class="n">Thrift</span><span class="p">.</span><span class="n">Server</span>
-
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Int</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">String</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Maybe</span>
-<span class="n">import</span> <span class="n">Text</span><span class="p">.</span><span class="n">Printf</span>
-<span class="n">import</span> <span class="n">Control</span><span class="p">.</span><span class="n">Exception</span> <span class="p">(</span><span class="k">throw</span><span class="p">)</span>
-<span class="n">import</span> <span class="n">Control</span><span class="p">.</span><span class="n">Concurrent</span><span class="p">.</span><span class="n">MVar</span>
-<span class="n">import</span> <span class="n">qualified</span> <span class="n">Data</span><span class="p">.</span><span class="n">Map</span> <span class="n">as</span> <span class="n">M</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Map</span> <span class="p">((</span><span class="o">!</span><span class="p">))</span>
-<span class="n">import</span> <span class="n">Data</span><span class="p">.</span><span class="n">Monoid</span>
-
-<span class="n">data</span> <span class="n">CalculatorHandler</span> <span class="o">=</span> <span class="n">CalculatorHandler</span> <span class="p">{</span><span class="n">mathLog</span> <span class="o">::</span> <span class="n">MVar</span> <span class="p">(</span><span class="n">M</span><span class="p">.</span><span class="n">Map</span> <span class="n">Int32</span> <span class="n">SharedStruct</span><span class="p">)}</span>
-
-<span class="n">newCalculatorHandler</span> <span class="o">=</span> <span class="k">do</span>
-  <span class="n">log</span> <span class="o">&lt;-</span> <span class="n">newMVar</span> <span class="n">mempty</span>
-  <span class="k">return</span> <span class="err">$</span> <span class="n">CalculatorHandler</span> <span class="n">log</span>
-
-<span class="n">instance</span> <span class="n">SharedService_Iface</span> <span class="n">CalculatorHandler</span> <span class="n">where</span>
-  <span class="n">getStruct</span> <span class="n">self</span> <span class="n">k</span> <span class="o">=</span> <span class="k">do</span>
-    <span class="n">myLog</span> <span class="o">&lt;-</span> <span class="n">readMVar</span> <span class="p">(</span><span class="n">mathLog</span> <span class="n">self</span><span class="p">)</span>
-    <span class="k">return</span> <span class="err">$</span> <span class="p">(</span><span class="n">myLog</span> <span class="o">!</span> <span class="n">k</span><span class="p">)</span>
-
-
-<span class="n">instance</span> <span class="n">Calculator_Iface</span> <span class="n">CalculatorHandler</span> <span class="n">where</span>
-  <span class="n">ping</span> <span class="n">_</span> <span class="o">=</span>
-    <span class="n">print</span> <span class="s">"ping()"</span>
-
-  <span class="n">add</span> <span class="n">_</span> <span class="n">n1</span> <span class="n">n2</span> <span class="o">=</span> <span class="k">do</span>
-    <span class="n">printf</span> <span class="s">"add(%d,%d)</span><span class="se">\n</span><span class="s">"</span> <span class="n">n1</span> <span class="n">n2</span>
-    <span class="k">return</span> <span class="p">(</span><span class="n">n1</span> <span class="o">+</span> <span class="n">n2</span><span class="p">)</span>
-
-  <span class="n">calculate</span> <span class="n">self</span> <span class="n">mlogid</span> <span class="n">mwork</span> <span class="o">=</span> <span class="k">do</span>
-    <span class="n">printf</span> <span class="s">"calculate(%d, %s)</span><span class="se">\n</span><span class="s">"</span> <span class="n">logid</span> <span class="p">(</span><span class="n">show</span> <span class="n">work</span><span class="p">)</span>
-
-    <span class="n">let</span> <span class="n">val</span> <span class="o">=</span> <span class="k">case</span> <span class="n">op</span> <span class="n">work</span> <span class="n">of</span>
-                <span class="n">Operation_ADD</span> <span class="o">-&gt;</span>
-                    <span class="n">num1</span> <span class="n">work</span> <span class="o">+</span> <span class="n">num2</span> <span class="n">work</span>
-                <span class="n">Operation_SUBTRACT</span> <span class="o">-&gt;</span>
-                    <span class="n">num1</span> <span class="n">work</span> <span class="o">-</span> <span class="n">num2</span> <span class="n">work</span>
-                <span class="n">Operation_MULTIPLY</span> <span class="o">-&gt;</span>
-                    <span class="n">num1</span> <span class="n">work</span> <span class="o">*</span> <span class="n">num2</span> <span class="n">work</span>
-                <span class="n">Operation_DIVIDE</span> <span class="o">-&gt;</span>
-                    <span class="k">if</span> <span class="n">num2</span> <span class="n">work</span> <span class="o">==</span> <span class="mi">0</span> <span class="n">then</span>
-                        <span class="k">throw</span> <span class="err">$</span>
-                              <span class="n">InvalidOperation</span> <span class="err">{</span>
-                                 <span class="n">invalidOperation_whatOp</span> <span class="o">=</span> <span class="n">fromIntegral</span> <span class="err">$</span> <span class="n">fromEnum</span> <span class="err">$</span> <span class="n">op</span> <span class="n">work</span><span class="p">,</span>
-                                 <span class="n">invalidOperation_why</span> <span class="o">=</span> <span class="s">"Cannot divide by 0"</span>
-                                            <span class="err">}</span>
-                    <span class="k">else</span>
-                        <span class="n">num1</span> <span class="n">work</span> <span class="err">`</span><span class="n">div</span><span class="err">`</span> <span class="n">num2</span> <span class="n">work</span>
-
-    <span class="n">let</span> <span class="n">logEntry</span> <span class="o">=</span> <span class="n">SharedStruct</span> <span class="n">logid</span> <span class="p">(</span><span class="n">fromString</span> <span class="err">$</span> <span class="n">show</span> <span class="err">$</span> <span class="n">val</span><span class="p">)</span>
-    <span class="n">modifyMVar_</span> <span class="p">(</span><span class="n">mathLog</span> <span class="n">self</span><span class="p">)</span> <span class="err">$</span> <span class="k">return</span> <span class="p">.(</span><span class="n">M</span><span class="p">.</span><span class="n">insert</span> <span class="n">logid</span> <span class="n">logEntry</span><span class="p">)</span>
-
-    <span class="k">return</span> <span class="err">$</span><span class="o">!</span> <span class="n">val</span>
-
-   <span class="n">where</span>
-     <span class="o">--</span> <span class="n">stupid</span> <span class="n">dynamic</span> <span class="n">languages</span> <span class="n">f</span><span class="err">'</span><span class="n">ing</span> <span class="n">it</span> <span class="n">up</span>
-     <span class="n">num1</span> <span class="o">=</span> <span class="n">work_num1</span>
-     <span class="n">num2</span> <span class="o">=</span> <span class="n">work_num2</span>
-     <span class="n">op</span> <span class="o">=</span> <span class="n">work_op</span>
-     <span class="n">logid</span> <span class="o">=</span> <span class="n">mlogid</span>
-     <span class="n">work</span> <span class="o">=</span> <span class="n">mwork</span>
-
-  <span class="n">zip</span> <span class="n">_</span> <span class="o">=</span>
-    <span class="n">print</span> <span class="s">"zip()"</span>
-
-<span class="n">main</span> <span class="o">=</span>  <span class="k">do</span>
-  <span class="n">handler</span> <span class="o">&lt;-</span> <span class="n">newCalculatorHandler</span>
-  <span class="n">print</span> <span class="s">"Starting the server..."</span>
-  <span class="n">runBasicServer</span> <span class="n">handler</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">process</span> <span class="mi">9090</span>
-</code></pre></div>
+<div class="highlight"><pre class="codehilite"><code><span class="o">&lt;</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"a"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"search"</span> <span class="o">/&gt;</span>
+<span class="o">&lt;</span><span class="n">input</span> <span class="n">name</span><span class="o">=</span><span class="s">"h"</span> <span class="n">type</span><span class="o">=</span><span class="s">"hidden"</span> <span class="n">value</span><span class="o">=</span><span class="s">"HEAD"</span> <span class="o">/&gt;</span>
+<span class="o">&lt;</span><span class="n">select</span> <span class="n">name</span><span class="o">=</span><span class="s">"st"</span> <span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">selected</span><span class="o">=</span><span class="s">"selected"</span> <span class="n">value</span><span class="o">=</span><span class="s">"commit"</span><span class="o">&gt;</span><span class="n">commit</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"grep"</span><span class="o">&gt;</span><span class="n">grep</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"author"</span><span class="o">&gt;</span><span class="n">author</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"committer"</span><span class="o">&gt;</span><span class="n">committer</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">option</span> <span class="n">value</span><span class="o">=</span><span class="s">"pickaxe"</span><span class="o">&gt;</span><span class="n">pickaxe</span><span class="o">&lt;/</span><span class="n">option</span><span class="o">&gt;</span>
+<span class="o">&lt;/</span><span class="n">select</span><span class="o">&gt;</span> <span class="o">&lt;</span><span class="n">a</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=search_help"</span> <span class="n">title</span><span class="o">=</span><span class="s">"search help"</span><span class="o">&gt;?&lt;/</span><span class="n">a</span><span class="o">&gt;</span> <span class="n">search</span><span class="o">:</span>
+<span class="o">&lt;</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"text"</span> <span class="n">name</span><span class="o">=</span><span class="s">"s"</span>  <span class="o">/&gt;</span>
+<span class="o">&lt;</span><span class="n">span</span> <span class="n">title</span><span class="o">=</span><span class="s">"Extended regular expression"</span><span class="o">&gt;&lt;</span><span class="n">label</span><span class="o">&gt;&lt;</span><span class="n">input</span> <span class="n">type</span><span class="o">=</span><span class="s">"checkbox"</span> <span class="n">name</span><span class="o">=</span><span class="s">"sr"</span> <span class="n">value</span><span class="o">=</spa [...]
+<span class="o">&lt;/</span><span class="n">form</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_body"</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">br</span> <span class="o">/&gt;&lt;</span><span class="n">br</span> <span class="o">/&gt;</span>
+<span class="mi">404</span> <span class="o">-</span> <span class="n">Cannot</span> <span class="n">find</span> <span class="n">file</span>
+<span class="o">&lt;</span><span class="n">br</span> <span class="o">/&gt;</span>
+<span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer"</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">div</span> <span class="k">class</span><span class="o">=</span><span class="s">"page_footer_text"</span><span class="o">&gt;</span><span class="n">Apache</span> <span class="n">Thrift</span><span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=rss;f=tutorial/hs/HaskellServer.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellServer.hs RSS feed"</span><span class="o">&gt;</span><span class="n">RSS</span><span class="o">&lt;/</span><span class [...]
+<span class="o">&lt;</span><span class="n">a</span> <span class="k">class</span><span class="o">=</span><span class="s">"rss_logo"</span> <span class="n">href</span><span class="o">=</span><span class="s">"/repos/asf?p=thrift.git;a=atom;f=tutorial/hs/HaskellServer.hs"</span> <span class="n">title</span><span class="o">=</span><span class="s">"history of tutorial/hs/HaskellServer.hs Atom feed"</span><span class="o">&gt;</span><span class="n">Atom</span><span class="o">&lt;/</span><span cl [...]
+<span class="o">&lt;/</span><span class="n">div</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span> <span class="n">src</span><span class="o">=</span><span class="s">"/static/gitweb.js"</span><span class="o">&gt;&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
+<span class="o">&lt;</span><span class="n">script</span> <span class="n">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="o">&gt;</span>
+<span class="n">window</span><span class="p">.</span><span class="n">onload</span> <span class="o">=</span> <span class="n">function</span> <span class="p">()</span> <span class="p">{</span>
+	<span class="n">var</span> <span class="n">tz_cookie</span> <span class="o">=</span> <span class="p">{</span> <span class="n">name</span><span class="o">:</span> <span class="err">'</span><span class="n">gitweb_tz</span><span class="err">'</span><span class="p">,</span> <span class="n">expires</span><span class="o">:</span> <span class="mi">14</span><span class="p">,</span> <span class="n">path</span><span class="o">:</span> <span class="sc">'/'</span> <span class="p">};</span>
+	<span class="n">onloadTZSetup</span><span class="p">(</span><span class="err">'</span><span class="n">local</span><span class="err">'</span><span class="p">,</span> <span class="n">tz_cookie</span><span class="p">,</span> <span class="err">'</span><span class="n">datetime</span><span class="err">'</span><span class="p">);</span>
+<span class="p">};</span>
+<span class="o">&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
+<span class="o">&lt;/</span><span class="n">body</span><span class="o">&gt;</span>
+<span class="o">&lt;/</span><span class="n">html</span><span class="o">&gt;</span></code></pre></div>
 <p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
 <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/hs/HaskellServer.hs">tutorial/hs/HaskellServer.hs</a>
 </p>
diff --git a/output/tutorial/netstd.html b/output/tutorial/netstd.html
index b2a3b32..49ff67b 100644
--- a/output/tutorial/netstd.html
+++ b/output/tutorial/netstd.html
@@ -94,7 +94,7 @@ All Apache Thrift tutorials require that you have:
 <span class="p">{</span>
     <span class="k">public</span> <span class="k">class</span> <span class="nc">Program</span>
     <span class="p">{</span>
-        <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ServiceCollection</span><span class="p">();</span>
+        <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span><span class="p">();</span>
         <span class="k">private</span> <span class="k">static</span> <span class="n">ILogger</span> <span class="n">Logger</span><span class="p">;</span>
         <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">TConfiguration</span> <span class="n">Configuration</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>  <span class="c1">// new TConfiguration() if  needed</span>
 
@@ -340,17 +340,13 @@ All Apache Thrift tutorials require that you have:
         <span class="k">private</span> <span class="k">static</span> <span class="n">TProtocol</span> <span class="n">MakeProtocol</span><span class="p">(</span><span class="n">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">,</span> <span class="n">TTransport</span> <span class="n">transport</span><span class="p">)</span>
         <span class="p">{</span>
             <span class="n">Protocol</span> <span class="n">selectedProtocol</span> <span class="o">=</span> <span class="n">GetProtocol</span><span class="p">(</span><span class="n">args</span><span class="p">);</span>
-            <span class="k">switch</span> <span class="p">(</span><span class="n">selectedProtocol</span><span class="p">)</span>
+            <span class="k">return</span> <span class="n">selectedProtocol</span> <span class="k">switch</span>
             <span class="p">{</span>
-                <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span><span class="p">:</span>
-                    <span class="k">return</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
-                <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span><span class="p">:</span>
-                    <span class="k">return</span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
-                <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span><span class="p">:</span>
-                    <span class="k">return</span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">);</span>
-                <span class="nl">default:</span>
-                    <span class="k">throw</span> <span class="k">new</span> <span class="n">Exception</span><span class="p">(</span><span class="s">"unhandled protocol"</span><span class="p">);</span>
-            <span class="p">}</span>
+                <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">),</span>
+                <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">),</span>
+                <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">(</span><span class="n">transport</span><span class="p">),</span>
+                <span class="n">_</span> <span class="o">=&gt;</span> <span class="k">throw</span> <span class="k">new</span> <span class="n">Exception</span><span class="p">(</span><span class="s">"unhandled protocol"</span><span class="p">),</span>
+            <span class="p">};</span>
         <span class="p">}</span>
 
         <span class="k">private</span> <span class="k">static</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">RunClientAsync</span><span class="p">(</span><span class="n">TProtocol</span> <span class="n">protocol</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">multiplex</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
@@ -386,12 +382,12 @@ All Apache Thrift tutorials require that you have:
 
             <span class="c1">// Async version</span>
 
-            <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} PingAsync()"</span><span class="p">);</span>
-            <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">pingAsync</span><span class="p">(</span><span class="n">cancellationToken</span><span class="p">);</span>
+            <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Ping()"</span><span class="p">);</span>
+            <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">ping</span><span class="p">(</span><span class="n">cancellationToken</span><span class="p">);</span>
 
-            <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} AddAsync(1,1)"</span><span class="p">);</span>
-            <span class="n">var</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">addAsync</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">cancellationToken</span><span class="p">);</span>
-            <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} AddAsync(1,1)={sum}"</span><span class="p">);</span>
+            <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Add(1,1)"</span><span class="p">);</span>
+            <span class="n">var</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">cancellationToken</span><span class="p">);</span>
+            <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Add(1,1)={sum}"</span><span class="p">);</span>
 
             <span class="n">var</span> <span class="n">work</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Work</span>
             <span class="p">{</span>
@@ -402,11 +398,15 @@ All Apache Thrift tutorials require that you have:
 
             <span class="k">try</span>
             <span class="p">{</span>
-                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} CalculateAsync(1)"</span><span class="p">);</span>
-                <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">calculateAsync</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">work</span><span class="p">,</span> <span class="n">cancellationToken</span><span class="p">);</span>
+                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Calculate(1)"</span><span class="p">);</span>
+                <span class="n">await</span> <span class="n">client</span><span class="p">.</span><span class="n">calculate</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">work</span><span class="p">,</span> <span class="n">cancellationToken</span><span class="p">);</span>
                 <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Whoa we can divide by 0"</span><span class="p">);</span>
             <span class="p">}</span>
             <span class="k">catch</span> <span class="p">(</span><span class="n">InvalidOperation</span> <span class="n">io</span><span class="p">)</span>
+            <span class="p">{</span>
+                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"{client.ClientId} Invalid operation: "</span> <span class="o">+</span> <span class="n">io</span><span class="p">);</span>
+            <span class="p">}</span>
+
 </code></pre></div>
 <p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
 <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/netstd/Client/Program.cs">tutorial/netstd/Client/Program.cs</a>
@@ -444,7 +444,7 @@ All Apache Thrift tutorials require that you have:
 <span class="p">{</span>
     <span class="k">public</span> <span class="k">class</span> <span class="nc">Program</span>
     <span class="p">{</span>
-        <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ServiceCollection</span><span class="p">();</span>
+        <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">ServiceCollection</span> <span class="n">ServiceCollection</span> <span class="o">=</span> <span class="k">new</span><span class="p">();</span>
         <span class="k">private</span> <span class="k">static</span> <span class="n">ILogger</span> <span class="n">Logger</span><span class="p">;</span>
         <span class="k">private</span> <span class="k">static</span> <span class="n">readonly</span> <span class="n">TConfiguration</span> <span class="n">Configuration</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>  <span class="c1">// new TConfiguration() if  needed</span>
 
@@ -585,55 +585,30 @@ All Apache Thrift tutorials require that you have:
 
         <span class="k">private</span> <span class="k">static</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">RunSelectedConfigurationAsync</span><span class="p">(</span><span class="n">Transport</span> <span class="n">transport</span><span class="p">,</span> <span class="n">Buffering</span> <span class="n">buffering</span><span class="p">,</span> <span class="n">Protocol</span> <span class="n">protocol</span><span class="p">,</span> <span class="kt">bool< [...]
         <span class="p">{</span>
-            <span class="n">TServerTransport</span> <span class="n">serverTransport</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
-            <span class="k">switch</span> <span class="p">(</span><span class="n">transport</span><span class="p">)</span>
+            <span class="n">TServerTransport</span> <span class="n">serverTransport</span> <span class="o">=</span> <span class="n">transport</span> <span class="k">switch</span>
             <span class="p">{</span>
-                <span class="k">case</span> <span class="n">Transport</span><span class="p">.</span><span class="n">Tcp</span><span class="p">:</span>
-                    <span class="n">serverTransport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">);</span>
-                    <span class="k">break</span><span class="p">;</span>
-                <span class="k">case</span> <span class="n">Transport</span><span class="p">.</span><span class="n">NamedPipe</span><span class="p">:</span>
-                    <span class="n">serverTransport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TNamedPipeServerTransport</span><span class="p">(</span><span class="s">".test"</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">);</span>
-                    <span class="k">break</span><span class="p">;</span>
-                <span class="k">case</span> <span class="n">Transport</span><span class="p">.</span><span class="n">TcpTls</span><span class="p">:</span>
-                    <span class="n">serverTransport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TTlsServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">,</span>
-                        <span class="n">GetCertificate</span><span class="p">(),</span> <span class="n">ClientCertValidator</span><span class="p">,</span> <span class="n">LocalCertificateSelectionCallback</span><span class="p">);</span>
-                    <span class="k">break</span><span class="p">;</span>
-            <span class="p">}</span>
+                <span class="n">Transport</span><span class="p">.</span><span class="n">Tcp</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">),</span>
+                <span class="n">Transport</span><span class="p">.</span><span class="n">NamedPipe</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TNamedPipeServerTransport</span><span class="p">(</span><span class="s">".test"</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">,</span> <span class="n">NamedPipeClientFlags</span><span class="p">.</span><span class="n">None</span><span class="p">),</span>
+                <span class="n">Transport</span><span class="p">.</span><span class="n">TcpTls</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TTlsServerSocketTransport</span><span class="p">(</span><span class="mi">9090</span><span class="p">,</span> <span class="n">Configuration</span><span class="p">,</span> <span class="n">GetCertificate</span><span class="p">(),</span> <span class="n">ClientCertValidator</span><span class="p">,</span> <span class="n">L [...]
+                <span class="n">_</span> <span class="o">=&gt;</span> <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentException</span><span class="p">(</span><span class="s">"unsupported value $transport"</span><span class="p">,</span> <span class="n">nameof</span><span class="p">(</span><span class="n">transport</span><span class="p">)),</span>
+            <span class="p">};</span>
 
-            <span class="n">TTransportFactory</span> <span class="n">transportFactory</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
-            <span class="k">switch</span> <span class="p">(</span><span class="n">buffering</span><span class="p">)</span>
+            <span class="n">TTransportFactory</span> <span class="n">transportFactory</span> <span class="o">=</span> <span class="n">buffering</span> <span class="k">switch</span>
             <span class="p">{</span>
-                <span class="k">case</span> <span class="n">Buffering</span><span class="p">.</span><span class="n">Buffered</span><span class="p">:</span>
-                    <span class="n">transportFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TBufferedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
-                    <span class="k">break</span><span class="p">;</span>
-
-                <span class="k">case</span> <span class="n">Buffering</span><span class="p">.</span><span class="n">Framed</span><span class="p">:</span>
-                    <span class="n">transportFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TFramedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
-                    <span class="k">break</span><span class="p">;</span>
-
-                <span class="nl">default:</span> <span class="c1">// layered transport(s) are optional</span>
-                    <span class="n">Debug</span><span class="p">.</span><span class="n">Assert</span><span class="p">(</span><span class="n">buffering</span> <span class="o">==</span> <span class="n">Buffering</span><span class="p">.</span><span class="n">None</span><span class="p">,</span> <span class="s">"unhandled case"</span><span class="p">);</span>
-                    <span class="k">break</span><span class="p">;</span>
-            <span class="p">}</span>
+                <span class="n">Buffering</span><span class="p">.</span><span class="n">Buffered</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TBufferedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+                <span class="n">Buffering</span><span class="p">.</span><span class="n">Framed</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TFramedTransport</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+                <span class="c1">// layered transport(s) are optional</span>
+                <span class="n">Buffering</span><span class="p">.</span><span class="n">None</span> <span class="o">=&gt;</span> <span class="n">null</span><span class="p">,</span>
+                <span class="n">_</span> <span class="o">=&gt;</span> <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentException</span><span class="p">(</span><span class="s">"unsupported value $buffering"</span><span class="p">,</span> <span class="n">nameof</span><span class="p">(</span><span class="n">buffering</span><span class="p">)),</span>
+            <span class="p">};</span>
 
-            <span class="n">TProtocolFactory</span> <span class="n">protocolFactory</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span>
-            <span class="k">switch</span> <span class="p">(</span><span class="n">protocol</span><span class="p">)</span>
+            <span class="n">TProtocolFactory</span> <span class="n">protocolFactory</span> <span class="o">=</span> <span class="n">protocol</span> <span class="k">switch</span>
             <span class="p">{</span>
-                <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span><span class="p">:</span>
-                    <span class="n">protocolFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
-                    <span class="k">break</span><span class="p">;</span>
-
-                <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span><span class="p">:</span>
-                    <span class="n">protocolFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
-                    <span class="k">break</span><span class="p">;</span>
-
-                <span class="k">case</span> <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span><span class="p">:</span>
-                    <span class="n">protocolFactory</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">();</span>
-                    <span class="k">break</span><span class="p">;</span>
-
-                <span class="nl">default:</span>
-                    <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentOutOfRangeException</span><span class="p">(</span><span class="n">nameof</span><span class="p">(</span><span class="n">protocol</span><span class="p">),</span> <span class="n">protocol</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
-            <span class="p">}</span>
+                <span class="n">Protocol</span><span class="p">.</span><span class="n">Binary</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+                <span class="n">Protocol</span><span class="p">.</span><span class="n">Compact</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TCompactProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+                <span class="n">Protocol</span><span class="p">.</span><span class="n">Json</span> <span class="o">=&gt;</span> <span class="k">new</span> <span class="n">TJsonProtocol</span><span class="p">.</span><span class="n">Factory</span><span class="p">(),</span>
+                <span class="n">_</span> <span class="o">=&gt;</span> <span class="k">throw</span> <span class="k">new</span> <span class="n">ArgumentException</span><span class="p">(</span><span class="s">"unsupported value $protocol"</span><span class="p">,</span> <span class="n">nameof</span><span class="p">(</span><span class="n">protocol</span><span class="p">)),</span>
+            <span class="p">};</span>
 
             <span class="n">var</span> <span class="n">handler</span> <span class="o">=</span> <span class="k">new</span> <span class="n">CalculatorAsyncHandler</span><span class="p">();</span>
             <span class="n">ITAsyncProcessor</span> <span class="n">processor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">AsyncProcessor</span><span class="p">(</span><span class="n">handler</span><span class="p">);</span>
@@ -794,39 +769,64 @@ All Apache Thrift tutorials require that you have:
 
         <span class="k">public</span> <span class="k">class</span> <span class="nc">CalculatorAsyncHandler</span> <span class="o">:</span> <span class="n">Calculator</span><span class="p">.</span><span class="n">IAsync</span>
         <span class="p">{</span>
-            <span class="k">private</span> <span class="n">readonly</span> <span class="n">Dictionary</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="n">SharedStruct</span><span class="o">&gt;</span> <span class="n">_log</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Dictionary</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="n">SharedStruct</span><span class="o" [...]
+            <span class="k">private</span> <span class="n">readonly</span> <span class="n">Dictionary</span><span class="o">&lt;</span><span class="kt">int</span><span class="p">,</span> <span class="n">SharedStruct</span><span class="o">&gt;</span> <span class="n">_log</span> <span class="o">=</span> <span class="k">new</span><span class="p">();</span>
 
             <span class="k">public</span> <span class="n">CalculatorAsyncHandler</span><span class="p">()</span>
             <span class="p">{</span>
             <span class="p">}</span>
 
-            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o">&lt;</span><span class="n">SharedStruct</span><span class="o">&gt;</span> <span class="n">getStructAsync</span><span class="p">(</span><span class="kt">int</span> <span class="n">key</span><span class="p">,</span>
+            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o">&lt;</span><span class="n">SharedStruct</span><span class="o">&gt;</span> <span class="n">getStruct</span><span class="p">(</span><span class="kt">int</span> <span class="n">key</span><span class="p">,</span>
                 <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
             <span class="p">{</span>
-                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"GetStructAsync({0})"</span><span class="p">,</span> <span class="n">key</span><span class="p">);</span>
+                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"GetStruct({0})"</span><span class="p">,</span> <span class="n">key</span><span class="p">);</span>
                 <span class="k">return</span> <span class="n">await</span> <span class="n">Task</span><span class="p">.</span><span class="n">FromResult</span><span class="p">(</span><span class="n">_log</span><span class="p">[</span><span class="n">key</span><span class="p">]);</span>
             <span class="p">}</span>
 
-            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">pingAsync</span><span class="p">(</span><span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
+            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span> <span class="n">ping</span><span class="p">(</span><span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
             <span class="p">{</span>
-                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"PingAsync()"</span><span class="p">);</span>
+                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="s">"Ping()"</span><span class="p">);</span>
                 <span class="n">await</span> <span class="n">Task</span><span class="p">.</span><span class="n">CompletedTask</span><span class="p">;</span>
             <span class="p">}</span>
 
-            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">addAsync</span><span class="p">(</span><span class="kt">int</span> <span class="n">num1</span><span class="p">,</span> <span class="kt">int</span> <span class="n">num2</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p"> [...]
+            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">add</span><span class="p">(</span><span class="kt">int</span> <span class="n">num1</span><span class="p">,</span> <span class="kt">int</span> <span class="n">num2</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
             <span class="p">{</span>
-                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"AddAsync({num1},{num2})"</span><span class="p">);</span>
+                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"Add({num1},{num2})"</span><span class="p">);</span>
                 <span class="k">return</span> <span class="n">await</span> <span class="n">Task</span><span class="p">.</span><span class="n">FromResult</span><span class="p">(</span><span class="n">num1</span> <span class="o">+</span> <span class="n">num2</span><span class="p">);</span>
             <span class="p">}</span>
 
-            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">calculateAsync</span><span class="p">(</span><span class="kt">int</span> <span class="n">logid</span><span class="p">,</span> <span class="n">Work</span> <span class="n">w</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class= [...]
+            <span class="k">public</span> <span class="n">async</span> <span class="n">Task</span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">calculate</span><span class="p">(</span><span class="kt">int</span> <span class="n">logid</span><span class="p">,</span> <span class="n">Work</span> <span class="n">w</span><span class="p">,</span> <span class="n">CancellationToken</span> <span class="n">cancellationToken</span><span class="p">)</span>
             <span class="p">{</span>
-                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"CalculateAsync({logid}, [{w.Op},{w.Num1},{w.Num2}])"</span><span class="p">);</span>
+                <span class="n">Logger</span><span class="p">.</span><span class="n">LogInformation</span><span class="p">(</span><span class="err">$</span><span class="s">"Calculate({logid}, [{w.Op},{w.Num1},{w.Num2}])"</span><span class="p">);</span>
 
                 <span class="kt">int</span> <span class="n">val</span><span class="p">;</span>
                 <span class="k">switch</span> <span class="p">(</span><span class="n">w</span><span class="p">.</span><span class="n">Op</span><span class="p">)</span>
                 <span class="p">{</span>
                     <span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">ADD</span><span class="p">:</span>
+                        <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">+</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+                        <span class="k">break</span><span class="p">;</span>
+
+                    <span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">SUBTRACT</span><span class="p">:</span>
+                        <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">-</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+                        <span class="k">break</span><span class="p">;</span>
+
+                    <span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">MULTIPLY</span><span class="p">:</span>
+                        <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">*</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+                        <span class="k">break</span><span class="p">;</span>
+
+                    <span class="k">case</span> <span class="n">Operation</span><span class="p">.</span><span class="n">DIVIDE</span><span class="p">:</span>
+                        <span class="k">if</span> <span class="p">(</span><span class="n">w</span><span class="p">.</span><span class="n">Num2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
+                        <span class="p">{</span>
+                            <span class="n">var</span> <span class="n">io</span> <span class="o">=</span> <span class="k">new</span> <span class="n">InvalidOperation</span>
+                            <span class="p">{</span>
+                                <span class="n">WhatOp</span> <span class="o">=</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span> <span class="n">w</span><span class="p">.</span><span class="n">Op</span><span class="p">,</span>
+                                <span class="n">Why</span> <span class="o">=</span> <span class="s">"Cannot divide by 0"</span>
+                            <span class="p">};</span>
+
+                            <span class="k">throw</span> <span class="n">io</span><span class="p">;</span>
+                        <span class="p">}</span>
+                        <span class="n">val</span> <span class="o">=</span> <span class="n">w</span><span class="p">.</span><span class="n">Num1</span> <span class="o">/</span> <span class="n">w</span><span class="p">.</span><span class="n">Num2</span><span class="p">;</span>
+                        <span class="k">break</span><span class="p">;</span>
+
 </code></pre></div>
 <p class="snippet_footer">This snippet was generated by Apache Thrift's <strong>source tree docs</strong>:
 <a href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;hb=HEAD;f=tutorial/netstd/Server/Program.cs">tutorial/netstd/Server/Program.cs</a>