teaclave-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ms...@apache.org
Subject [incubator-teaclave-website] branch asf-staging updated: Update documentation
Date Thu, 25 Jun 2020 01:19:48 GMT
This is an automated email from the ASF dual-hosted git repository.

mssun pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/incubator-teaclave-website.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new aff344b  Update documentation
aff344b is described below

commit aff344bebeabd58e6b604a3e9ea8823824ef2156
Author: Mingshen Sun <bob@mssun.me>
AuthorDate: Wed Jun 24 18:19:22 2020 -0700

    Update documentation
---
 404.html                                           |    6 +-
 ...0.styles.276899be.css => 0.styles.3816ff58.css} |    2 +-
 assets/js/18.ceecb868.js                           |    1 -
 assets/js/18.e0fae52f.js                           |    1 +
 assets/js/29.0e63fe14.js                           |    1 -
 assets/js/29.fda9cb2c.js                           |    1 +
 assets/js/34.3d838801.js                           |    1 +
 assets/js/{34.7f5ac389.js => 35.31d16501.js}       |    2 +-
 assets/js/{35.9740b903.js => 36.5a4294cc.js}       |    2 +-
 assets/js/{36.241dcc10.js => 37.bbcb697c.js}       |    2 +-
 assets/js/{37.d036b4e8.js => 38.662d6114.js}       |    2 +-
 assets/js/{38.f24d0f9e.js => 39.36927cd1.js}       |    2 +-
 assets/js/{39.37708e39.js => 40.8deb04af.js}       |    2 +-
 assets/js/{40.d604dbc1.js => 41.f06c001d.js}       |    2 +-
 assets/js/{41.cb034786.js => 42.f30a8a6f.js}       |    2 +-
 assets/js/{42.fafc6140.js => 43.e9194566.js}       |    2 +-
 assets/js/{43.243bc326.js => 44.17272a5c.js}       |    2 +-
 assets/js/{44.3240bdef.js => 45.6b9fc22a.js}       |    2 +-
 assets/js/{45.5a762309.js => 46.600a4f09.js}       |    2 +-
 assets/js/{46.1cccf412.js => 47.48ca0745.js}       |    2 +-
 assets/js/{47.6b9abfee.js => 48.7a13c249.js}       |    2 +-
 assets/js/{48.9b2661d6.js => 49.04697209.js}       |    2 +-
 assets/js/{49.318d8471.js => 50.b280bc10.js}       |    2 +-
 assets/js/{50.6bda3c49.js => 51.8d470269.js}       |    2 +-
 assets/js/{6.90f2a867.js => 6.84f5aa4a.js}         |    2 +-
 assets/js/7.08dcb0e2.js                            |    1 +
 assets/js/7.3ccd00a2.js                            |    1 -
 assets/js/{app.daefd8f1.js => app.60600aa0.js}     |    8 +-
 .../08/19/apache-incubation-proposal/index.html    |    6 +-
 .../index.html                                     |    6 +-
 .../podling-teaclave-report-april-2020/index.html  |    6 +-
 blog/index.html                                    |    6 +-
 community/index.html                               |    8 +-
 contributing/index.html                            |    8 +-
 contributors/index.html                            |    8 +-
 docs/access-control/index.html                     |    8 +-
 docs/build-system/index.html                       |    8 +-
 docs/builtin-functions/index.html                  |   12 +-
 docs/codebase/attestation/index.html               |    8 +-
 docs/codebase/cli/index.html                       |    8 +-
 docs/codebase/config/index.html                    |    8 +-
 docs/codebase/dcap/index.html                      |    8 +-
 docs/codebase/docker/index.html                    |    8 +-
 docs/codebase/examples/index.html                  |    8 +-
 docs/codebase/executor/index.html                  |    8 +-
 docs/codebase/file-agent/index.html                |    8 +-
 docs/codebase/function/index.html                  |    8 +-
 docs/codebase/keys/index.html                      |    8 +-
 docs/codebase/rpc/index.html                       |    8 +-
 docs/codebase/runtime/index.html                   |    8 +-
 docs/codebase/sdk/index.html                       |    8 +-
 docs/codebase/services/index.html                  |    8 +-
 docs/codebase/tests/index.html                     |    8 +-
 docs/codebase/third-party/index.html               |    8 +-
 docs/codebase/worker/index.html                    |    8 +-
 docs/crates-app/index.html                         |    2 +-
 docs/crates-app/settings.html                      |    4 +-
 .../humantime/enum.DurationError.html              |    8 +-
 .../humantime/enum.TimestampError.html             |    8 +-
 docs/crates-enclave/quote/all.html                 |    2 +-
 docs/crates-enclave/quote/index.html               |   24 +-
 docs/crates-enclave/quote/macro.quote.html         |  127 +-
 docs/crates-enclave/quote/macro.quote_spanned.html |   22 +-
 docs/crates-enclave/quote/sidebar-items.js         |    2 +-
 docs/crates-enclave/quote/trait.ToTokens.html      |   16 +-
 .../crates-enclave/quote/trait.TokenStreamExt.html |   16 +-
 docs/crates-enclave/search-index.js                |    2 +-
 docs/crates-enclave/serde_json/struct.Number.html  |   72 +-
 .../serde_json/value/struct.Number.html            |   72 +-
 .../sgx_trts/cpu_feature/enum.Feature.html         |    6 +-
 .../sgx_tstd/default/trait.Default.html            |    2 +-
 docs/crates-enclave/sgx_tstd/ffi/struct.CStr.html  |    2 +-
 .../crates-enclave/sgx_tstd/rt/fn.global_exit.html |    2 +-
 .../sgx_tstd/rt/static.GLOBAL_DTORS.html           |    2 +-
 docs/crates-enclave/source-files.js                |    2 +-
 .../crates-sgx/vendor/quick-error/src/lib.rs.html  | 2627 ++++++++++++++++++++
 docs/crates-enclave/src/quote/ext.rs.html          |   40 +-
 docs/crates-enclave/src/quote/lib.rs.html          |  864 +++----
 docs/crates-enclave/src/quote/runtime.rs.html      |  546 +---
 docs/crates-enclave/src/quote/to_tokens.rs.html    |   32 +-
 .../crates-sgx/vendor/serde/src/macros.rs.html     |  475 ++++
 .../crates-sgx/vendor/sgx_types/src/macros.rs.html |  459 ++++
 .../crates-sgx/vendor/sgx_trts/src/macros.rs.html  |  155 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../crates-sgx/vendor/inventory/src/lib.rs.html    |  715 ++++++
 .../sgx_trusted_lib/binder/src/macros.rs.html      |  267 ++
 .../crates-sgx/vendor/serde/src/macros.rs.html     |  475 ++++
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../teaclave_test_utils/struct.TestCase.html       |    2 +-
 .../fn.ecall_ipc_entry_point.html                  |    2 +-
 .../toml/de/struct.Deserializer.html               |   52 +-
 docs/crates-enclave/toml/value/enum.Value.html     |   50 +-
 docs/development-tips/index.html                   |    8 +-
 .../index.html                                     |   83 +-
 docs/index.html                                    |   10 +-
 docs/mutual-attestation/index.html                 |    8 +-
 docs/my-first-function/index.html                  |   12 +-
 docs/rust-guildeline/index.html                    |    8 +-
 docs/threat-model/index.html                       |    8 +-
 index.html                                         |    8 +-
 teaclave/binder/index.html                         |    8 +-
 teaclave/common/index.html                         |    8 +-
 teaclave/common/protected_fs_rs/index.html         |    8 +-
 teaclave/common/rusty_leveldb_sgx/index.html       |    8 +-
 teaclave/crypto/index.html                         |    8 +-
 teaclave/index.html                                |   14 +-
 teaclave/types/index.html                          |    8 +-
 123 files changed, 8439 insertions(+), 1614 deletions(-)

diff --git a/404.html b/404.html
index cdec341..6c3d535 100644
--- a/404.html
+++ b/404.html
@@ -7,13 +7,13 @@
     <meta name="generator" content="VuePress 1.5.0">
     
     <meta name="description" content="Apache Teaclave (incubating) is an open source universal secure computing platform, making computation on privacy-sensitive data safe and simple.">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/9.825606df.js" as="script"><link rel="prefetch" href="/assets/js/1.bd8d225e.js"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98.js"><link rel="prefetch" href="/assets/js/13.2f28d91f.js"><link rel="prefet [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/9.825606df.js" as="script"><link rel="prefetch" href="/assets/js/1.bd8d225e.js"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98.js"><link rel="prefetch" href="/assets/js/13.2f28d91f.js"><link rel="prefet [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>That's a Four-Oh-Four.</blockquote> <a href="/" class="router-link-active">
       Take me home.
     </a></div></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/9.825606df.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/9.825606df.js" defer></script>
   </body>
 </html>
diff --git a/assets/css/0.styles.276899be.css b/assets/css/0.styles.3816ff58.css
similarity index 97%
rename from assets/css/0.styles.276899be.css
rename to assets/css/0.styles.3816ff58.css
index cc2b04c..15a7891 100644
--- a/assets/css/0.styles.276899be.css
+++ b/assets/css/0.styles.3816ff58.css
@@ -1 +1 @@
-code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>cod [...]
\ No newline at end of file
+code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>cod [...]
\ No newline at end of file
diff --git a/assets/js/18.ceecb868.js b/assets/js/18.ceecb868.js
deleted file mode 100644
index dadb2ab..0000000
--- a/assets/js/18.ceecb868.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{401:function(t,e,a){"use strict";a.r(e);var r=a(27),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-a-universal-secure-computing-platform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-a-universal-secure-computing-platform"}},[t._v("#")]),t._v(" Teaclave: A Universal Secure Computing Plat [...]
\ No newline at end of file
diff --git a/assets/js/18.e0fae52f.js b/assets/js/18.e0fae52f.js
new file mode 100644
index 0000000..67c98de
--- /dev/null
+++ b/assets/js/18.e0fae52f.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{401:function(t,e,a){"use strict";a.r(e);var r=a(27),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-a-universal-secure-computing-platform"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-a-universal-secure-computing-platform"}},[t._v("#")]),t._v(" Teaclave: A Universal Secure Computing Plat [...]
\ No newline at end of file
diff --git a/assets/js/29.0e63fe14.js b/assets/js/29.0e63fe14.js
deleted file mode 100644
index bca3369..0000000
--- a/assets/js/29.0e63fe14.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{412:function(t,e,a){"use strict";a.r(e);var i=a(27),o=Object(i.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-documentation"}},[t._v("#")]),t._v(" Teaclave Documentation")]),t._v(" "),a("h2",{attrs:{id:"try"}},[a("a",{staticClass:"header- [...]
\ No newline at end of file
diff --git a/assets/js/29.fda9cb2c.js b/assets/js/29.fda9cb2c.js
new file mode 100644
index 0000000..8d3b11f
--- /dev/null
+++ b/assets/js/29.fda9cb2c.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{412:function(t,e,a){"use strict";a.r(e);var i=a(27),o=Object(i.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"teaclave-documentation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-documentation"}},[t._v("#")]),t._v(" Teaclave Documentation")]),t._v(" "),a("h2",{attrs:{id:"try"}},[a("a",{staticClass:"header- [...]
\ No newline at end of file
diff --git a/assets/js/34.3d838801.js b/assets/js/34.3d838801.js
new file mode 100644
index 0000000..d10df9c
--- /dev/null
+++ b/assets/js/34.3d838801.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{417:function(t,e,n){"use strict";n.r(e);var a=n(27),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"write-functions-in-python"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#write-functions-in-python"}},[t._v("#")]),t._v(" Write Functions in Python")]),t._v(" "),n("p",[t._v("The Teaclave platform provides a [...]
\ No newline at end of file
diff --git a/assets/js/34.7f5ac389.js b/assets/js/35.31d16501.js
similarity index 97%
rename from assets/js/34.7f5ac389.js
rename to assets/js/35.31d16501.js
index abef434..a36b90e 100644
--- a/assets/js/34.7f5ac389.js
+++ b/assets/js/35.31d16501.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{417:function(e,t,a){"use strict";a.r(t);var n=a(27),s=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"mutual-attestation-why-and-how"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mutual-attestation-why-and-how"}},[e._v("#")]),e._v(" Mutual Attestation: Why and How")]),e._v(" "),a("p",[e._v("The standard pro [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{418:function(e,t,a){"use strict";a.r(t);var n=a(27),s=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"mutual-attestation-why-and-how"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mutual-attestation-why-and-how"}},[e._v("#")]),e._v(" Mutual Attestation: Why and How")]),e._v(" "),a("p",[e._v("The standard pro [...]
\ No newline at end of file
diff --git a/assets/js/35.9740b903.js b/assets/js/36.5a4294cc.js
similarity index 98%
rename from assets/js/35.9740b903.js
rename to assets/js/36.5a4294cc.js
index 0f51578..619f103 100644
--- a/assets/js/35.9740b903.js
+++ b/assets/js/36.5a4294cc.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{418:function(e,t,a){"use strict";a.r(t);var n=a(27),s=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"my-first-function"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#my-first-function"}},[e._v("#")]),e._v(" My First Function")]),e._v(" "),a("p",[e._v("This documentation will guide you through executing your [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{419:function(e,t,a){"use strict";a.r(t);var n=a(27),s=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"my-first-function"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#my-first-function"}},[e._v("#")]),e._v(" My First Function")]),e._v(" "),a("p",[e._v("This documentation will guide you through executing your [...]
\ No newline at end of file
diff --git a/assets/js/36.241dcc10.js b/assets/js/37.bbcb697c.js
similarity index 97%
rename from assets/js/36.241dcc10.js
rename to assets/js/37.bbcb697c.js
index 3e36ae6..c5c14ce 100644
--- a/assets/js/36.241dcc10.js
+++ b/assets/js/37.bbcb697c.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{419:function(e,t,a){"use strict";a.r(t);var n=a(27),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"rust-development-guideline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rust-development-guideline"}},[e._v("#")]),e._v(" Rust Development Guideline")]),e._v(" "),a("p",[e._v("This doc defines some guideli [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{420:function(e,t,a){"use strict";a.r(t);var n=a(27),r=Object(n.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"rust-development-guideline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rust-development-guideline"}},[e._v("#")]),e._v(" Rust Development Guideline")]),e._v(" "),a("p",[e._v("This doc defines some guideli [...]
\ No newline at end of file
diff --git a/assets/js/37.d036b4e8.js b/assets/js/38.662d6114.js
similarity index 97%
rename from assets/js/37.d036b4e8.js
rename to assets/js/38.662d6114.js
index 1e14c85..58098c6 100644
--- a/assets/js/37.d036b4e8.js
+++ b/assets/js/38.662d6114.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{420:function(e,t,n){"use strict";n.r(t);var a=n(27),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"threat-model"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#threat-model"}},[e._v("#")]),e._v(" Threat Model")]),e._v(" "),n("p",[e._v("With its strongest security setting applied, Teaclave guarantees data\n [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{421:function(e,t,n){"use strict";n.r(t);var a=n(27),o=Object(a.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"threat-model"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#threat-model"}},[e._v("#")]),e._v(" Threat Model")]),e._v(" "),n("p",[e._v("With its strongest security setting applied, Teaclave guarantees data\n [...]
\ No newline at end of file
diff --git a/assets/js/38.f24d0f9e.js b/assets/js/39.36927cd1.js
similarity index 92%
rename from assets/js/38.f24d0f9e.js
rename to assets/js/39.36927cd1.js
index 5eecca1..fe7c2e2 100644
--- a/assets/js/38.f24d0f9e.js
+++ b/assets/js/39.36927cd1.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{421:function(e,t,a){"use strict";a.r(t);var s=a(27),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),a("p",[e._v("In this directory, we implement some examples to illustrate how to register\ninput/ [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{422:function(e,t,a){"use strict";a.r(t);var s=a(27),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),a("p",[e._v("In this directory, we implement some examples to illustrate how to register\ninput/ [...]
\ No newline at end of file
diff --git a/assets/js/39.37708e39.js b/assets/js/40.8deb04af.js
similarity index 96%
rename from assets/js/39.37708e39.js
rename to assets/js/40.8deb04af.js
index efc6c09..26b945d 100644
--- a/assets/js/39.37708e39.js
+++ b/assets/js/40.8deb04af.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{422:function(e,t,n){"use strict";n.r(t);var i=n(27),o=Object(i.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"function-executors"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#function-executors"}},[e._v("#")]),e._v(" Function Executors")]),e._v(" "),n("p",[e._v("Function executor is one of the core component in a F [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{423:function(e,t,n){"use strict";n.r(t);var i=n(27),o=Object(i.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"function-executors"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#function-executors"}},[e._v("#")]),e._v(" Function Executors")]),e._v(" "),n("p",[e._v("Function executor is one of the core component in a F [...]
\ No newline at end of file
diff --git a/assets/js/40.d604dbc1.js b/assets/js/41.f06c001d.js
similarity index 91%
rename from assets/js/40.d604dbc1.js
rename to assets/js/41.f06c001d.js
index 649b02a..8bb6775 100644
--- a/assets/js/40.d604dbc1.js
+++ b/assets/js/41.f06c001d.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{423:function(e,t,i){"use strict";i.r(t);var n=i(27),a=Object(n.a)({},(function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"file-agent"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#file-agent"}},[this._v("#")]),this._v(" File Agent")]),this._v(" "),t("p",[this._v("The file agent is a component in the execution service. The mai [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{424:function(e,t,i){"use strict";i.r(t);var n=i(27),a=Object(n.a)({},(function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"file-agent"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#file-agent"}},[this._v("#")]),this._v(" File Agent")]),this._v(" "),t("p",[this._v("The file agent is a component in the execution service. The mai [...]
\ No newline at end of file
diff --git a/assets/js/41.cb034786.js b/assets/js/42.f30a8a6f.js
similarity index 96%
rename from assets/js/41.cb034786.js
rename to assets/js/42.f30a8a6f.js
index 72fca45..0c0a935 100644
--- a/assets/js/41.cb034786.js
+++ b/assets/js/42.f30a8a6f.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{424:function(t,e,i){"use strict";i.r(e);var n=i(27),a=Object(n.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"built-in-functions"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#built-in-functions"}},[t._v("#")]),t._v(" Built-in Functions")]),t._v(" "),i("p",[t._v("Since Teaclave is a FaaS-like platform, users can def [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{425:function(t,e,i){"use strict";i.r(e);var n=i(27),a=Object(n.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"built-in-functions"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#built-in-functions"}},[t._v("#")]),t._v(" Built-in Functions")]),t._v(" "),i("p",[t._v("Since Teaclave is a FaaS-like platform, users can def [...]
\ No newline at end of file
diff --git a/assets/js/42.fafc6140.js b/assets/js/43.e9194566.js
similarity index 95%
rename from assets/js/42.fafc6140.js
rename to assets/js/43.e9194566.js
index 472f48b..f38fe92 100644
--- a/assets/js/42.fafc6140.js
+++ b/assets/js/43.e9194566.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{425:function(e,t,a){"use strict";a.r(t);var r=a(27),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"keys-and-certificates-in-teaclave"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#keys-and-certificates-in-teaclave"}},[e._v("#")]),e._v(" Keys and Certificates in Teaclave")]),e._v(" "),a("p",[e._v("This dir [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{426:function(e,t,a){"use strict";a.r(t);var r=a(27),n=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"keys-and-certificates-in-teaclave"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#keys-and-certificates-in-teaclave"}},[e._v("#")]),e._v(" Keys and Certificates in Teaclave")]),e._v(" "),a("p",[e._v("This dir [...]
\ No newline at end of file
diff --git a/assets/js/43.243bc326.js b/assets/js/44.17272a5c.js
similarity index 97%
rename from assets/js/43.243bc326.js
rename to assets/js/44.17272a5c.js
index 5c0695b..c65ad04 100644
--- a/assets/js/43.243bc326.js
+++ b/assets/js/44.17272a5c.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{426:function(e,n,t){"use strict";t.r(n);var s=t(27),a=Object(s.a)({},(function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"rpc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rpc"}},[e._v("#")]),e._v(" RPC")]),e._v(" "),t("p",[e._v("This directory contains an RPC implementation over attested TLS connection\nwritten in Rust, provi [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{427:function(e,n,t){"use strict";t.r(n);var s=t(27),a=Object(s.a)({},(function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"rpc"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rpc"}},[e._v("#")]),e._v(" RPC")]),e._v(" "),t("p",[e._v("This directory contains an RPC implementation over attested TLS connection\nwritten in Rust, provi [...]
\ No newline at end of file
diff --git a/assets/js/44.3240bdef.js b/assets/js/45.6b9fc22a.js
similarity index 91%
rename from assets/js/44.3240bdef.js
rename to assets/js/45.6b9fc22a.js
index 19869e7..001bd66 100644
--- a/assets/js/44.3240bdef.js
+++ b/assets/js/45.6b9fc22a.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{427:function(e,t,n){"use strict";n.r(t);var i=n(27),r=Object(i.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"executor-runtime"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#executor-runtime"}},[e._v("#")]),e._v(" Executor Runtime")]),e._v(" "),n("p",[e._v("This directory contains implementations of executor's runti [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{428:function(e,t,n){"use strict";n.r(t);var i=n(27),r=Object(i.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"executor-runtime"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#executor-runtime"}},[e._v("#")]),e._v(" Executor Runtime")]),e._v(" "),n("p",[e._v("This directory contains implementations of executor's runti [...]
\ No newline at end of file
diff --git a/assets/js/45.5a762309.js b/assets/js/46.600a4f09.js
similarity index 86%
rename from assets/js/45.5a762309.js
rename to assets/js/46.600a4f09.js
index b86dcea..2ad667e 100644
--- a/assets/js/45.5a762309.js
+++ b/assets/js/46.600a4f09.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{428:function(e,t,s){"use strict";s.r(t);var a=s(27),n=Object(a.a)({},(function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"client-sdk"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#client-sdk"}},[this._v("#")]),this._v(" Client SDK")]),this._v(" "),t("p",[this._v("This directory provides Teaclave client SDK in different langua [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{429:function(e,t,s){"use strict";s.r(t);var a=s(27),n=Object(a.a)({},(function(){var e=this.$createElement,t=this._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"client-sdk"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#client-sdk"}},[this._v("#")]),this._v(" Client SDK")]),this._v(" "),t("p",[this._v("This directory provides Teaclave client SDK in different langua [...]
\ No newline at end of file
diff --git a/assets/js/46.1cccf412.js b/assets/js/47.48ca0745.js
similarity index 98%
rename from assets/js/46.1cccf412.js
rename to assets/js/47.48ca0745.js
index 99f31e8..c35aa12 100644
--- a/assets/js/46.1cccf412.js
+++ b/assets/js/47.48ca0745.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{429:function(e,t,n){"use strict";n.r(t);var a=n(27),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"teaclave-services"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-services"}},[e._v("#")]),e._v(" Teaclave Services")]),e._v(" "),n("p",[e._v("This directory contains protocol definitions and impleme [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{430:function(e,t,n){"use strict";n.r(t);var a=n(27),r=Object(a.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"teaclave-services"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-services"}},[e._v("#")]),e._v(" Teaclave Services")]),e._v(" "),n("p",[e._v("This directory contains protocol definitions and impleme [...]
\ No newline at end of file
diff --git a/assets/js/47.6b9abfee.js b/assets/js/48.7a13c249.js
similarity index 96%
rename from assets/js/47.6b9abfee.js
rename to assets/js/48.7a13c249.js
index ea9bd14..e1b49d1 100644
--- a/assets/js/47.6b9abfee.js
+++ b/assets/js/48.7a13c249.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{430:function(t,e,s){"use strict";s.r(e);var a=s(27),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"test-harness-and-test-cases"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#test-harness-and-test-cases"}},[t._v("#")]),t._v(" Test Harness and Test Cases")]),t._v(" "),s("p",[t._v("This directory contains al [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{431:function(t,e,s){"use strict";s.r(e);var a=s(27),n=Object(a.a)({},(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"test-harness-and-test-cases"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#test-harness-and-test-cases"}},[t._v("#")]),t._v(" Test Harness and Test Cases")]),t._v(" "),s("p",[t._v("This directory contains al [...]
\ No newline at end of file
diff --git a/assets/js/48.9b2661d6.js b/assets/js/49.04697209.js
similarity index 95%
rename from assets/js/48.9b2661d6.js
rename to assets/js/49.04697209.js
index 590c7d5..2723919 100644
--- a/assets/js/48.9b2661d6.js
+++ b/assets/js/49.04697209.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{431:function(e,t,r){"use strict";r.r(t);var n=r(27),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"third-party-dependency-vendoring"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#third-party-dependency-vendoring"}},[e._v("#")]),e._v(" Third-Party Dependency Vendoring")]),e._v(" "),r("p",[e._v("For Teaclav [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{432:function(e,t,r){"use strict";r.r(t);var n=r(27),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"third-party-dependency-vendoring"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#third-party-dependency-vendoring"}},[e._v("#")]),e._v(" Third-Party Dependency Vendoring")]),e._v(" "),r("p",[e._v("For Teaclav [...]
\ No newline at end of file
diff --git a/assets/js/49.318d8471.js b/assets/js/50.b280bc10.js
similarity index 88%
rename from assets/js/49.318d8471.js
rename to assets/js/50.b280bc10.js
index 069395b..2cc85db 100644
--- a/assets/js/49.318d8471.js
+++ b/assets/js/50.b280bc10.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{432:function(t,e,s){"use strict";s.r(e);var a=s(27),n=Object(a.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"types"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#types"}},[this._v("#")]),this._v(" Types")]),this._v(" "),e("p",[this._v("This directory defines common types (useful structs and traits) such as file,\ [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{433:function(t,e,s){"use strict";s.r(e);var a=s(27),n=Object(a.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"types"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#types"}},[this._v("#")]),this._v(" Types")]),this._v(" "),e("p",[this._v("This directory defines common types (useful structs and traits) such as file,\ [...]
\ No newline at end of file
diff --git a/assets/js/50.6bda3c49.js b/assets/js/51.8d470269.js
similarity index 95%
rename from assets/js/50.6bda3c49.js
rename to assets/js/51.8d470269.js
index b5aa722..89aeb5e 100644
--- a/assets/js/50.6bda3c49.js
+++ b/assets/js/51.8d470269.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{433:function(e,t,r){"use strict";r.r(t);var n=r(27),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"teaclave-worker"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-worker"}},[e._v("#")]),e._v(" Teaclave Worker")]),e._v(" "),r("p",[e._v("The worker layer in Teaclave is a thin layer to manage executo [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{434:function(e,t,r){"use strict";r.r(t);var n=r(27),a=Object(n.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h1",{attrs:{id:"teaclave-worker"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#teaclave-worker"}},[e._v("#")]),e._v(" Teaclave Worker")]),e._v(" "),r("p",[e._v("The worker layer in Teaclave is a thin layer to manage executo [...]
\ No newline at end of file
diff --git a/assets/js/6.90f2a867.js b/assets/js/6.84f5aa4a.js
similarity index 96%
rename from assets/js/6.90f2a867.js
rename to assets/js/6.84f5aa4a.js
index 695f7fb..c227aa9 100644
--- a/assets/js/6.90f2a867.js
+++ b/assets/js/6.84f5aa4a.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{315:function(t,n,e){"use strict";e.d(n,"d",(function(){return r})),e.d(n,"a",(function(){return l})),e.d(n,"i",(function(){return u})),e.d(n,"f",(function(){return o})),e.d(n,"g",(function(){return s})),e.d(n,"h",(function(){return c})),e.d(n,"b",(function(){return f})),e.d(n,"e",(function(){return h})),e.d(n,"k",(function(){return d})),e.d(n,"l",(function(){return p})),e.d(n,"c",(function(){return g})),e.d(n,"j",(function(){return [...]
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{315:function(t,n,e){"use strict";e.d(n,"d",(function(){return r})),e.d(n,"a",(function(){return l})),e.d(n,"i",(function(){return u})),e.d(n,"f",(function(){return o})),e.d(n,"g",(function(){return s})),e.d(n,"h",(function(){return c})),e.d(n,"b",(function(){return f})),e.d(n,"e",(function(){return h})),e.d(n,"k",(function(){return d})),e.d(n,"l",(function(){return p})),e.d(n,"c",(function(){return g})),e.d(n,"j",(function(){return [...]
\ No newline at end of file
diff --git a/assets/js/7.08dcb0e2.js b/assets/js/7.08dcb0e2.js
new file mode 100644
index 0000000..c4d4ea2
--- /dev/null
+++ b/assets/js/7.08dcb0e2.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{345:function(t,e,n){},387:function(t,e,n){"use strict";var i=n(345);n.n(i).a},435:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(387),n(27)),a=Object(r.a)(i,void 0,void 0,!1,null,"385f24c3 [...]
\ No newline at end of file
diff --git a/assets/js/7.3ccd00a2.js b/assets/js/7.3ccd00a2.js
deleted file mode 100644
index e32b528..0000000
--- a/assets/js/7.3ccd00a2.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{344:function(t,e,n){},386:function(t,e,n){"use strict";var i=n(344);n.n(i).a},434:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(386),n(27)),a=Object(r.a)(i,void 0,void 0,!1,null,"385f24c3 [...]
\ No newline at end of file
diff --git a/assets/js/app.daefd8f1.js b/assets/js/app.60600aa0.js
similarity index 56%
rename from assets/js/app.daefd8f1.js
rename to assets/js/app.60600aa0.js
index ec0956d..f23357a 100644
--- a/assets/js/app.daefd8f1.js
+++ b/assets/js/app.60600aa0.js
@@ -1,13 +1,13 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,i,c=e[0],s=e[1],u=e[2],f=0,p=[];f<c.length;f++)i=c[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r]);for(l&&l(e);p.length;)p.shift()();return a.push.apply(a,u||[]),n()}function n(){for(var t,e=0;e<a.length;e++){for(var n=a[e],r=!0,c=1;c<n.length;c++){var s=n[c];0!==o[s]&&(r=!1)}r&&(a.splice(e--,1),t=i( [...]
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,i,c=e[0],s=e[1],u=e[2],p=0,f=[];p<c.length;p++)i=c[p],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&f.push(o[i][0]),o[i]=0;for(r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r]);for(l&&l(e);f.length;)f.shift()();return a.push.apply(a,u||[]),n()}function n(){for(var t,e=0;e<a.length;e++){for(var n=a[e],r=!0,c=1;c<n.length;c++){var s=n[c];0!==o[s]&&(r=!1)}r&&(a.splice(e--,1),t=i( [...]
 /*!
  * Vue.js v2.6.11
  * (c) 2014-2019 Evan You
  * Released under the MIT License.
- */var r=Object.freeze({});function o(t){return null==t}function a(t){return null!=t}function i(t){return!0===t}function c(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function s(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function l(t){return"[object Object]"===u.call(t)}function f(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t [...]
+ */var r=Object.freeze({});function o(t){return null==t}function a(t){return null!=t}function i(t){return!0===t}function c(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function s(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function l(t){return"[object Object]"===u.call(t)}function p(t){return"[object RegExp]"===u.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t [...]
 /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
- * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(t,e,n){return t<e?e:t>n?n:t}function a(t){ret [...]
+ * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(t,e,n){return t<e?e:t>n?n:t}function a(t){ret [...]
 /*!
   * vue-router v3.1.6
   * (c) 2020 Evan You
   * @license MIT
-  */function i(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function c(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function s(t,e){for(var n in e)t[n]=e[n];return t}var u={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,a=e.data;a.routerView=!0;for(var i=o.$createElement,c=n.name,u=o.$route,f=o._routerViewCache||(o._routerViewCache={}),p=0,d=!1;o&&o._routerRo [...]
\ No newline at end of file
+  */function i(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function c(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function s(t,e){for(var n in e)t[n]=e[n];return t}var u={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,a=e.data;a.routerView=!0;for(var i=o.$createElement,c=n.name,u=o.$route,p=o._routerViewCache||(o._routerViewCache={}),f=0,d=!1;o&&o._routerRo [...]
\ No newline at end of file
diff --git a/blog/2019/08/19/apache-incubation-proposal/index.html b/blog/2019/08/19/apache-incubation-proposal/index.html
index d1fc87b..a3ab30c 100644
--- a/blog/2019/08/19/apache-incubation-proposal/index.html
+++ b/blog/2019/08/19/apache-incubation-proposal/index.html
@@ -17,8 +17,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/blog/2019/08/19/apache-incubation-proposal/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/8.a136c641.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/11.dbe339ef.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/12.780ced98.js"><link rel="prefetch" href="/assets/js/13.2f28d91f [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/8.a136c641.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/11.dbe339ef.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/12.780ced98.js"><link rel="prefetch" href="/assets/js/13.2f28d91f [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
@@ -490,6 +490,6 @@ The list is sorted alphabetically:
 
 The Incubator PMC
 </code></pre></div></div></article></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/8.a136c641.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/11.dbe339ef.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/8.a136c641.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/11.dbe339ef.js" defer></script>
   </body>
 </html>
diff --git a/blog/2019/12/31/podling-teaclave-report-january-2020/index.html b/blog/2019/12/31/podling-teaclave-report-january-2020/index.html
index b0dfd7b..2fb42e4 100644
--- a/blog/2019/12/31/podling-teaclave-report-january-2020/index.html
+++ b/blog/2019/12/31/podling-teaclave-report-january-2020/index.html
@@ -17,8 +17,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/blog/2019/12/31/podling-teaclave-report-january-2020/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/8.a136c641.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/12.780ced98.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/13.2f28d91f [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/8.a136c641.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/12.780ced98.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/13.2f28d91f [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
@@ -105,6 +105,6 @@ lot of changes need to be done. The mentors and infra teams help us a
 lot on the transfer.</p> <h3 id="is-the-ppmc-managing-the-podling-s-brand-trademarks"><a href="#is-the-ppmc-managing-the-podling-s-brand-trademarks" class="header-anchor">#</a> Is the PPMC managing the podling's brand / trademarks?</h3> <p>We don't find any 3rd parties incorrectly using the podling's name and
 brand. The VP, Brand has approve the project name.
 (PODLINGNAMESEARCH-175)</p></div></article></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/8.a136c641.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/12.780ced98.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/8.a136c641.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/12.780ced98.js" defer></script>
   </body>
 </html>
diff --git a/blog/2020/03/31/podling-teaclave-report-april-2020/index.html b/blog/2020/03/31/podling-teaclave-report-april-2020/index.html
index 96d5d6f..cdedd74 100644
--- a/blog/2020/03/31/podling-teaclave-report-april-2020/index.html
+++ b/blog/2020/03/31/podling-teaclave-report-april-2020/index.html
@@ -17,8 +17,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/blog/2020/03/31/podling-teaclave-report-april-2020/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/8.a136c641.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/13.2f28d91f.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/8.a136c641.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/13.2f28d91f.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
@@ -113,6 +113,6 @@ when main refactoring is done.</li></ul> <h3 id="how-would-you-assess-the-podlin
 work focus on improving the design and documents to make the project more
 approachable for newcomers.</p> <h3 id="have-your-mentors-been-helpful-and-responsive"><a href="#have-your-mentors-been-helpful-and-responsive" class="header-anchor">#</a> Have your mentors been helpful and responsive?</h3> <p>Yes, our mentors help use to resolve the mailing list moderator issues.</p> <h3 id="is-the-ppmc-managing-the-podling-s-brand-trademarks"><a href="#is-the-ppmc-managing-the-podling-s-brand-trademarks" class="header-anchor">#</a> Is the PPMC managing the podling's br [...]
 The VP, Brand has approve the project name. (PODLINGNAMESEARCH-175)</p></div></article></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/8.a136c641.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/13.2f28d91f.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/8.a136c641.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/13.2f28d91f.js" defer></script>
   </body>
 </html>
diff --git a/blog/index.html b/blog/index.html
index d796f6a..41b49c3 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -13,8 +13,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/blog/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/10.44d9840a.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/6.90f2a867.js" as="script"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98.js"><link rel="prefetch" href="/assets/js/13.2f28d91f [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/10.44d9840a.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/6.84f5aa4a.js" as="script"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98.js"><link rel="prefetch" href="/assets/js/13.2f28d91f [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
@@ -90,6 +90,6 @@
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <!----> [...]
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/10.44d9840a.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/6.90f2a867.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/10.44d9840a.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/6.84f5aa4a.js" defer></script>
   </body>
 </html>
diff --git a/community/index.html b/community/index.html
index b1f1457..48d5d5b 100644
--- a/community/index.html
+++ b/community/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/community/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/15.0c91c219.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/15.0c91c219.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 development related activities (issues, pull requests from GitHub) and
 community discussions</li></ul> <p>To subscribe, just send an email to <code>dev-subscribe@apache.teaclave.org</code>.</p> <h2 id="github-issues"><a href="#github-issues" class="header-anchor">#</a> GitHub Issues</h2> <p>You can also ask questions, propose features, and report bugs in Teaclave's
 <a href="https://github.com/apache/incubator-teaclave/issues" target="_blank" rel="noopener noreferrer">GitHub issues<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 8 [...]
@@ -114,6 +114,6 @@ blockchain-based, open-source protocol that lets anyone perform computations
 on encrypted data, bringing privacy to smart contracts and public
 blockchains.</li> <li><a href="https://github.com/scs/substraTEE" target="_blank" rel="noopener noreferrer">substraTEE<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2  [...]
 Framework for substrate blockchains.</li></ul></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">6/17/2020, 1:58:31 PM</span></div></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/15.0c91c219.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/15.0c91c219.js" defer></script>
   </body>
 </html>
diff --git a/contributing/index.html b/contributing/index.html
index 83be0de..520bb91 100644
--- a/contributing/index.html
+++ b/contributing/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/contributing/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/16.2d93bfb1.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/16.2d93bfb1.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 contribute to Teaclave in many ways: reporting issues, requesting new features,
 proposing better designs, fixing bugs, implementing functions, improving
 documents, trying novel research ideas or even by simply using and promoting
@@ -103,6 +103,6 @@ want to propose features.</p> <h2 id="send-pull-requests"><a href="#send-pull-re
 code inplace, and <code>make CLI=1</code> to lint Rust code with Rust clippy.</li> <li>Commit/push the changes and send a pull request on GitHub. Please kindly
 write some background and details for this PR (we also provide a PR template
 to guild you with writing a high-quality pull request).</li></ol></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">6/7/2020, 6:47:18 PM</span></div></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/16.2d93bfb1.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/16.2d93bfb1.js" defer></script>
   </body>
 </html>
diff --git a/contributors/index.html b/contributors/index.html
index e5faca8..37bce7c 100644
--- a/contributors/index.html
+++ b/contributors/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/contributors/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/17.50c5dae1.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/17.50c5dae1.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 1 [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 Everyone is more than welcome to contribute and make the project better.</p> <h2 id="mentors"><a href="#mentors" class="header-anchor">#</a> Mentors</h2> <p>Teaclave is now part of the Apache Incubator. We are fortunate to have the
 following mentors.</p> <ul><li>Felix Cheung</li> <li>Furkan Kamaci</li> <li>Jianyong Dai</li> <li>Luciano Resende</li> <li>Matt Sicker</li> <li>Zhijie Shen</li></ul> <h2 id="committers"><a href="#committers" class="header-anchor">#</a> Committers</h2> <p>Committers are people who have made substantial contribution to the project and
 being active. In committers, the role of
@@ -101,6 +101,6 @@ being active. In committers, the role of
 oversight of Teaclave. Please contact the community if you'd like to become a
 member of regular committers or PPMC of Teaclave.</p> <ul><li><a href="https://github.com/mssun" target="_blank" rel="noopener noreferrer">Mingshen Sun<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48 [...]
 contributions it receives.</p> <p>List of external contributors of Teaclave and Teaclave SGX SDK (in alphabetical order):</p> <ul><li><a href="https://github.com/akhilles" target="_blank" rel="noopener noreferrer">Akhil Velagapudi<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8, [...]
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/17.50c5dae1.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/17.50c5dae1.js" defer></script>
   </body>
 </html>
diff --git a/docs/access-control/index.html b/docs/access-control/index.html
index c3706a0..e5a08f5 100644
--- a/docs/access-control/index.html
+++ b/docs/access-control/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/access-control/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/30.359b1921.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/30.359b1921.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 Unlike in traditional settings where only one entitiy, group, or role is
 involved in an action, in multi-party computation tasks an access is aproved or
 denified by combinging the decisions of all stakeholders. Ownership is also
@@ -154,6 +154,6 @@ dealing with badly shaped requests. Contributions are welcome!</p></div> <footer
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/30.359b1921.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/30.359b1921.js" defer></script>
   </body>
 </html>
diff --git a/docs/build-system/index.html b/docs/build-system/index.html
index 080fe58..4c4c4fc 100644
--- a/docs/build-system/index.html
+++ b/docs/build-system/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/build-system/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/31.19bd47de.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/31.19bd47de.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 signing, etc. for various components written in different languages (e.g., Rust, C,
 Python) for different targets (e.g., Linux and SGX). In this document, we will
 introduce our build system in details.</p> <h2 id="quick-start"><a href="#quick-start" class="header-anchor">#</a> Quick Start</h2> <ol><li>Download and <a href="https://cmake.org/install/" target="_blank" rel="noopener noreferrer">install<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4 [...]
@@ -125,6 +125,6 @@ with <code>-DCOV=ON</code>.</li></ul> <h3 id="misc"><a href="#misc" class="heade
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/31.19bd47de.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/31.19bd47de.js" defer></script>
   </body>
 </html>
diff --git a/docs/builtin-functions/index.html b/docs/builtin-functions/index.html
index f1fcb7d..427489d 100644
--- a/docs/builtin-functions/index.html
+++ b/docs/builtin-functions/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/builtin-functions/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/32.a081ec8f.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/32.a081ec8f.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 platform. One simple way is to write Python scripts and register them as functions,
 and the scripts will be executed by the <em>MesaPy executor</em>. Another way is to add native
 functions as built-in functions, and they will be managed by the <em>Built-in executor</em>.
@@ -180,13 +180,13 @@ the Python client SDK. Basically, this process includes registering input/output
 files, creating tasks, approving tasks, invoking tasks and getting execution
 results. You can see more details in the <code>examples/python</code> directory.</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">6/19/2020, 3:13:12 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
       ←
-      <a href="/docs/my-first-function/" class="prev">
-        My First Function
+      <a href="/docs/functions-in-python/" class="prev">
+        Write Functions in Python
       </a></span> <span class="next"><a href="/docs/threat-model/">
         Threat Model
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/32.a081ec8f.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/32.a081ec8f.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/attestation/index.html b/docs/codebase/attestation/index.html
index e4bbbee..fdbb61f 100644
--- a/docs/codebase/attestation/index.html
+++ b/docs/codebase/attestation/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/attestation/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/19.e8a71db3.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/19.e8a71db3.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 Teaclave.</p> <p>Attestation is the process of demonstrating that a software component is running
 properly on a Trusted Execution Environment (e.g., Intel SGX).</p> <p>Teaclave combines the remote attestation with a TLS connection to improve the
 trustworthiness of two endpoints. Once established, it has attested that the
@@ -130,6 +130,6 @@ file.</p></div> <footer class="page-edit"><!----> <div class="last-updated"><spa
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/19.e8a71db3.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/19.e8a71db3.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/cli/index.html b/docs/codebase/cli/index.html
index 3d40675..4547169 100644
--- a/docs/codebase/cli/index.html
+++ b/docs/codebase/cli/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/cli/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/21.63f7363b.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/21.63f7363b.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 interactive with the platform. The command line tool has several sub-commands:</p> <ul><li><code>encrypt</code>/<code>decrypt</code>: These two subcommands are to encrypt/decrypt data used on
 the platform. Supported algorithms include AES-GCM (128bit and 256 bit), and
 Teaclave File (128bit).</li> <li><code>verify</code>: Verify the signatures of the enclave info (which contains <code>MRSIGNER</code>
@@ -107,6 +107,6 @@ platform with the client SDK.</li></ul></div> <footer class="page-edit"><!---->
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/21.63f7363b.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/21.63f7363b.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/config/index.html b/docs/codebase/config/index.html
index 4167153..5c114e0 100644
--- a/docs/codebase/config/index.html
+++ b/docs/codebase/config/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/config/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/25.a8c2c430.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/25.a8c2c430.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 configurations are defined in the TOML file format. Basically, there are two types
 of configurations in Teaclave: <em>build config</em> and <em>runtime config</em>.</p> <h2 id="build-config"><a href="#build-config" class="header-anchor">#</a> Build Config</h2> <p>The build config defines configurations which are provided at compilation time.
 That is, this type of configurations will be compiled as the part of the
@@ -128,6 +128,6 @@ configuration must be defined as a build config.</p></div> <footer class="page-e
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/25.a8c2c430.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/25.a8c2c430.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/dcap/index.html b/docs/codebase/dcap/index.html
index 3b94cd7..bfbcc5b 100644
--- a/docs/codebase/dcap/index.html
+++ b/docs/codebase/dcap/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/dcap/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/27.2794c864.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/27.2794c864.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 service using
 <a href="https://software.intel.com/en-us/blogs/2019/05/21/intel-sgx-datacenter-attestation-primitives" target="_blank" rel="noopener noreferrer">Intel SGX Data Center Attestation Primitives<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <poly [...]
 which allows third-parties to create their own attestation infrastructure for
@@ -114,6 +114,6 @@ DCAP-enabled application.</p></div> <footer class="page-edit"><!----> <div class
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/27.2794c864.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/27.2794c864.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/docker/index.html b/docs/codebase/docker/index.html
index 7fd546d..66b6a0b 100644
--- a/docs/codebase/docker/index.html
+++ b/docs/codebase/docker/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/docker/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/28.808127a2.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/28.808127a2.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 environment. Note that you must mount SGX device and ASEM domain socket into the
 container environment to use SGX feature.</p> <h2 id="build"><a href="#build" class="header-anchor">#</a> Build</h2> <p>The build dockerfile (<code>build.*.Dockerfile</code>) only contains minimal dependencies
 to build and test the project. To use them, you can directly use pre-built
@@ -140,6 +140,6 @@ Attaching to ...
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/28.808127a2.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/28.808127a2.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/examples/index.html b/docs/codebase/examples/index.html
index 326be56..e9720e2 100644
--- a/docs/codebase/examples/index.html
+++ b/docs/codebase/examples/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/examples/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/38.f24d0f9e.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/39.36927cd1.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 input/output data for a function, create and invoke a task and get execution
 results with the Teclave's client SDK in both single and multi-party setups.</p> <p>Before trying these examples, please make sure all services in the Teaclave
 platform has been properly launched. Also, for examples implemented in Python,
@@ -108,6 +108,6 @@ invoking a function in Teaclave.</p></div> <footer class="page-edit"><!----> <di
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/38.f24d0f9e.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/39.36927cd1.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/executor/index.html b/docs/codebase/executor/index.html
index de2958a..9f660e1 100644
--- a/docs/codebase/executor/index.html
+++ b/docs/codebase/executor/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/executor/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/39.37708e39.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/40.8deb04af.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 execution runtime for running user-defined functions. In Teaclave, we aim to
 provide safe, secure and versatile function executors, which can guarantee the
 confidentiality of security-sensitive data during computation, and also support
@@ -115,6 +115,6 @@ executor.</p></div> <footer class="page-edit"><!----> <div class="last-updated">
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/39.37708e39.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/40.8deb04af.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/file-agent/index.html b/docs/codebase/file-agent/index.html
index c7801af..f820127 100644
--- a/docs/codebase/file-agent/index.html
+++ b/docs/codebase/file-agent/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/file-agent/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/40.d604dbc1.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/41.f06c001d.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 handle file downloading/uploading from and to various storage service providers
 (e.g., AWS S3).</p> <p>Before executing a task, the execution service will use the file agent to
 prepare any registered input files that come with the task. For example, the
@@ -109,6 +109,6 @@ a remote file storage like S3.</p></div> <footer class="page-edit"><!----> <div
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/40.d604dbc1.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/41.f06c001d.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/function/index.html b/docs/codebase/function/index.html
index b5aa96d..8406f29 100644
--- a/docs/codebase/function/index.html
+++ b/docs/codebase/function/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/function/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/41.cb034786.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/42.f30a8a6f.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 functions (e.g., written in Python). To make data computation more easier and
 faster (in native speed), the platform also provide some commonly used functions
 written in Rust. We call them built-in functions. These functions can be
@@ -113,6 +113,6 @@ of a specific built-in function.</p></div> <footer class="page-edit"><!----> <di
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/41.cb034786.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/42.f30a8a6f.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/keys/index.html b/docs/codebase/keys/index.html
index fc9ebca..8ad8f45 100644
--- a/docs/codebase/keys/index.html
+++ b/docs/codebase/keys/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/keys/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/42.fafc6140.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/43.e9194566.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 Note that these are only for demonstration. <em>DO NOT use them in production.</em></p> <ul><li><code>enclave_signing_key.pem</code>: private key to sign SGX enclaves</li> <li><code>ias_root_ca_cert.pem</code>: attestation report root CA certificate for Intel SGX
 Attestation Service, obtained from the
 <a href="https://api.portal.trustedservices.intel.com/EPID-attestation" target="_blank" rel="noopener noreferrer">service website<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 [...]
@@ -107,6 +107,6 @@ attestation</li></ul></div> <footer class="page-edit"><!----> <div class="last-u
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/42.fafc6140.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/43.e9194566.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/rpc/index.html b/docs/codebase/rpc/index.html
index f138b71..8cd0e87 100644
--- a/docs/codebase/rpc/index.html
+++ b/docs/codebase/rpc/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/rpc/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/43.243bc326.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/44.17272a5c.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 written in Rust, providing trusted channels to send and handle requests.
 RPC interfaces and request/response messages can be defined in ProtoBuf and
 used for generating Rust structs and traits to implement services or client
@@ -119,6 +119,6 @@ requests (in big endian) and a json serialized request.</p></div> <footer class=
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/43.243bc326.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/44.17272a5c.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/runtime/index.html b/docs/codebase/runtime/index.html
index 3674a4a..643e5fe 100644
--- a/docs/codebase/runtime/index.html
+++ b/docs/codebase/runtime/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/runtime/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/44.3240bdef.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/45.6b9fc22a.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 runtime provides interfaces (I/O) between executors (in trusted execution
 environment) and external components (in untrusted world like file system). The
 interfaces are defined in the <code>TeaclaveRuntime</code> traits. Currently, we have two
@@ -108,6 +108,6 @@ our secure file system implementation (i.e., <em>protected file</em>). While
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/44.3240bdef.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/45.6b9fc22a.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/sdk/index.html b/docs/codebase/sdk/index.html
index dcb5da3..5c229ea 100644
--- a/docs/codebase/sdk/index.html
+++ b/docs/codebase/sdk/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/sdk/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/45.5a762309.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/46.600a4f09.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 can uses the SDK to establish trusted channel with Teaclave services, send
 requests via RPC, etc. Please refer to the
 <a href="/teaclave/examples/">document for examples</a> to learn more about the usages.</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">6/18/2020, 4:53:28 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
@@ -104,6 +104,6 @@ requests via RPC, etc. Please refer to the
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/45.5a762309.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/46.600a4f09.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/services/index.html b/docs/codebase/services/index.html
index 9797fb9..c583668 100644
--- a/docs/codebase/services/index.html
+++ b/docs/codebase/services/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/services/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/46.1cccf412.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/47.48ca0745.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 the Teaclave platform.</p> <h2 id="services"><a href="#services" class="header-anchor">#</a> Services</h2> <p>The platform includes several services (or subsystem) running inside TEE, and
 communicated with <em>mutual-attested channels</em>. They coordinate together to provide
 a safe and secure FaaS platform.</p> <ul><li><strong>Authentication Service</strong>: A reference implementation of user authentication
@@ -151,6 +151,6 @@ system through the attested authentication and frontend services.</p></div> <foo
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/46.1cccf412.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/47.48ca0745.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/tests/index.html b/docs/codebase/tests/index.html
index 2266605..3c120fd 100644
--- a/docs/codebase/tests/index.html
+++ b/docs/codebase/tests/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/tests/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/47.6b9abfee.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/48.7a13c249.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 tests, functional tests and some test fixtures.</p> <h2 id="run-tests"><a href="#run-tests" class="header-anchor">#</a> Run Tests</h2> <p>To run all tests with our build system:</p> <div class="language- extra-class"><pre class="language-text"><code>$ make run-tests
 </code></pre></div><p>You can also run tests separately:</p> <div class="language- extra-class"><pre class="language-text"><code>$ make run-unit-tests
 $ make run-integration-tests
@@ -122,6 +122,6 @@ Common utilities for test drivers.</li></ul></div> <footer class="page-edit"><!-
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/47.6b9abfee.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/48.7a13c249.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/third-party/index.html b/docs/codebase/third-party/index.html
index 3770cec..3743eae 100644
--- a/docs/codebase/third-party/index.html
+++ b/docs/codebase/third-party/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/third-party/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/48.9b2661d6.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/49.04697209.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 in order to ease auditing, ensure product stability, as well as reduce the
 possibility of the <a href="https://en.wikipedia.org/wiki/Supply_chain_attack" target="_blank" rel="noopener noreferrer">supply chain attack<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54. [...]
 we vendored all TEE dependencies here. During the build process, both the
@@ -109,6 +109,6 @@ SGX libraries.</li></ul></div> <footer class="page-edit"><!----> <div class="las
       </a>
       →
     </span></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/48.9b2661d6.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/49.04697209.js" defer></script>
   </body>
 </html>
diff --git a/docs/codebase/worker/index.html b/docs/codebase/worker/index.html
index 0d1898c..01d3c50 100644
--- a/docs/codebase/worker/index.html
+++ b/docs/codebase/worker/index.html
@@ -16,8 +16,8 @@
     <meta name="twitter:url" content="https://teaclave.apache.org/docs/codebase/worker/">
     <meta name="twitter:card" content="summary_large_image">
     <meta name="twitter:site" content="@ApacheTeaclave">
-    <link rel="preload" href="/assets/css/0.styles.276899be.css" as="style"><link rel="preload" href="/assets/js/app.daefd8f1.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/50.6bda3c49.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
-    <link rel="stylesheet" href="/assets/css/0.styles.276899be.css">
+    <link rel="preload" href="/assets/css/0.styles.3816ff58.css" as="style"><link rel="preload" href="/assets/js/app.60600aa0.js" as="script"><link rel="preload" href="/assets/js/5.bd79a977.js" as="script"><link rel="preload" href="/assets/js/1.bd8d225e.js" as="script"><link rel="preload" href="/assets/js/51.8d470269.js" as="script"><link rel="prefetch" href="/assets/js/10.44d9840a.js"><link rel="prefetch" href="/assets/js/11.dbe339ef.js"><link rel="prefetch" href="/assets/js/12.780ced98 [...]
+    <link rel="stylesheet" href="/assets/css/0.styles.3816ff58.css">
   </head>
   <body>
     <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0  [...]
@@ -92,7 +92,7 @@
   Thanks
   <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li><li class="dropdown-item"><!----> <a hre [...]
   Current Event
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul></div></div> <!----></nav>  <ul cla [...]
 There are several executors and runtime for different usage scenarios.
 Developers can customize and register different executors in a worker.</p> <p>This diagram demonstrates the relationship between the execution service,
 worker, executor and runtime.</p> <div class="language- extra-class"><pre class="language-text"><code>    +-----------------------------------+
@@ -117,6 +117,6 @@ to the docs of executor and runtime for more details.</p></div> <footer class="p
       <a href="/teaclave/types/" class="prev">
         Types
       </a></span> <!----></p></div> </main></div><div class="global-ui"><!----></div></div>
-    <script src="/assets/js/app.daefd8f1.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/50.6bda3c49.js" defer></script>
+    <script src="/assets/js/app.60600aa0.js" defer></script><script src="/assets/js/5.bd79a977.js" defer></script><script src="/assets/js/1.bd8d225e.js" defer></script><script src="/assets/js/51.8d470269.js" defer></script>
   </body>
 </html>
diff --git a/docs/crates-app/index.html b/docs/crates-app/index.html
index fa767c7..f94dc98 100644
--- a/docs/crates-app/index.html
+++ b/docs/crates-app/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of crates"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Index of crates</title><link rel="stylesheet" type="text/css" href="./normalize.css"><link rel="stylesheet" type="text/css" href="./rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" hre [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of crates"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Index of crates</title><link rel="stylesheet" type="text/css" href="./normalize.css"><link rel="stylesheet" type="text/css" href="./rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" hre [...]
\ No newline at end of file
diff --git a/docs/crates-app/settings.html b/docs/crates-app/settings.html
index 4141d89..989cee5 100644
--- a/docs/crates-app/settings.html
+++ b/docs/crates-app/settings.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="stylesheet" type="text/css" href="./normalize.css"><link rel="stylesheet" type="text/css" href="./rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/cs [...]
-                    </div><div class='setting-line'><label class='toggle'><input type='checkbox' id='auto-hide-attributes'  checked><span class='slider'></span></label><div>Auto-hide item attributes.</div></div><div class='setting-line'><label class='toggle'><input type='checkbox' id='auto-hide-method-docs' ><span class='slider'></span></label><div>Auto-hide item methods' documentation</div></div><div class='setting-line'><label class='toggle'><input type='checkbox' id='auto-hide-trait-i [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="stylesheet" type="text/css" href="./normalize.css"><link rel="stylesheet" type="text/css" href="./rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/cs [...]
+                    </div><div class='setting-line'><label class='toggle'><input type='checkbox' id='auto-hide-attributes'  checked><span class='slider'></span></label><div>Auto-hide item attributes.</div></div><div class='setting-line'><label class='toggle'><input type='checkbox' id='auto-hide-method-docs' ><span class='slider'></span></label><div>Auto-hide item methods' documentation</div></div><div class='setting-line'><label class='toggle'><input type='checkbox' id='auto-hide-trait-i [...]
\ No newline at end of file
diff --git a/docs/crates-enclave/humantime/enum.DurationError.html b/docs/crates-enclave/humantime/enum.DurationError.html
index 1051fdd..b6309cc 100644
--- a/docs/crates-enclave/humantime/enum.DurationError.html
+++ b/docs/crates-enclave/humantime/enum.DurationError.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `DurationError` enum in crate `humantime`."><meta name="keywords" content="rust, rustlang, rust-lang, DurationError"><title>humantime::DurationError - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="te [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `DurationError` enum in crate `humantime`."><meta name="keywords" content="rust, rustlang, rust-lang, DurationError"><title>humantime::DurationError - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="te [...]
     InvalidCharacter(usize),
     NumberExpected(usize),
     UnknownUnit(usize,&nbsp;usize),
@@ -29,9 +29,9 @@ using seconds, or larger units, the limit is even larger.</p>
 </div><h2 id='implementations' class='small-section-header'>Trait Implementations<a href='#implementations' class='anchor'></a></h2><div id='implementations-list'><h3 id='impl-Clone' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a></code><a href='#impl-Clone'  [...]
 </div><h4 id='method.clone_from' class="method hidden"><code id='clone_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&amp;mut self, source: &amp;Self)</code><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#131-133' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs copy-as [...]
 </div></div><h3 id='impl-Copy' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a></code><a href='#impl-Copy' class='anchor'></a><a class='srclink' href='../src/humantime/duration.rs.html#9' title='goto source code'>[src]</a></h3><div class='impl-items'></div><h3  [...]
-</div></div><h3 id='impl-Display' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a></code><a href='#impl-Display' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.pcaiYGj5Fy2K/teaclave_build/cmake_tomls/sgx_trusted_lib/third_ [...]
-</div></div><h3 id='impl-Error' class='impl'><code class='in-band'>impl <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a> for <a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a></code><a href='#impl-Error' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.pcaiYGj5Fy2K/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quick [...]
-</div><h4 id='method.cause' class="method hidden"><code id='cause.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.cause' class='fnname'>cause</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;dyn <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/humantime/tmp/teaclave_symlin [...]
+</div></div><h3 id='impl-Display' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a></code><a href='#impl-Display' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_ [...]
+</div></div><h3 id='impl-Error' class='impl'><code class='in-band'>impl <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a> for <a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a></code><a href='#impl-Error' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quick [...]
+</div><h4 id='method.cause' class="method hidden"><code id='cause.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.cause' class='fnname'>cause</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;dyn <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/humantime/tmp/teaclave_symlin [...]
 </div><h4 id='method.type_id' class="method hidden"><code id='type_id.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.type_id' class='fnname'>type_id</a>(&amp;self, Internal) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: 'static,&nbsp;</span></code><a class='srclink' href='../src/sgx_tstd/error.rs.html#58-63' title='got [...]
 </div><h4 id='method.backtrace' class="method hidden"><code id='backtrace.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.backtrace' class='fnname'>backtrace</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="../sgx_tstd/backtrace/struct.Backtrace.html" title="struct sgx_tstd::backtrace::Backtrace">Backtrace</a>&gt;</code><a class='srclink' href='. [...]
 </div></div><h3 id='impl-PartialEq%3CError%3E' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&lt;<a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a>&gt; for <a class="enum" href="../humantime/enum.DurationError.html" title="enum humantime::DurationError">Error</a></code><a href='#impl-PartialEq%3CError%3E [...]
diff --git a/docs/crates-enclave/humantime/enum.TimestampError.html b/docs/crates-enclave/humantime/enum.TimestampError.html
index ced6f54..5eb87c5 100644
--- a/docs/crates-enclave/humantime/enum.TimestampError.html
+++ b/docs/crates-enclave/humantime/enum.TimestampError.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `TimestampError` enum in crate `humantime`."><meta name="keywords" content="rust, rustlang, rust-lang, TimestampError"><title>humantime::TimestampError - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type= [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `TimestampError` enum in crate `humantime`."><meta name="keywords" content="rust, rustlang, rust-lang, TimestampError"><title>humantime::TimestampError - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type= [...]
     OutOfRange,
     InvalidDigit,
     InvalidFormat,
@@ -11,9 +11,9 @@
 </div><h2 id='implementations' class='small-section-header'>Trait Implementations<a href='#implementations' class='anchor'></a></h2><div id='implementations-list'><h3 id='impl-Clone' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a></code><a href='#impl-Clone [...]
 </div><h4 id='method.clone_from' class="method hidden"><code id='clone_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&amp;mut self, source: &amp;Self)</code><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#131-133' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs copy-as [...]
 </div></div><h3 id='impl-Copy' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a></code><a href='#impl-Copy' class='anchor'></a><a class='srclink' href='../src/humantime/date.rs.html#37' title='goto source code'>[src]</a></h3><div class='impl-items'></div><h3 i [...]
-</div></div><h3 id='impl-Display' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a></code><a href='#impl-Display' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.pcaiYGj5Fy2K/teaclave_build/cmake_tomls/sgx_trusted_lib/thir [...]
-</div></div><h3 id='impl-Error' class='impl'><code class='in-band'>impl <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a> for <a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a></code><a href='#impl-Error' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.pcaiYGj5Fy2K/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/qui [...]
-</div><h4 id='method.cause' class="method hidden"><code id='cause.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.cause' class='fnname'>cause</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;dyn <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/humantime/tmp/teaclave_symlin [...]
+</div></div><h3 id='impl-Display' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a></code><a href='#impl-Display' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/thir [...]
+</div></div><h3 id='impl-Error' class='impl'><code class='in-band'>impl <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a> for <a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a></code><a href='#impl-Error' class='anchor'></a><a class='srclink' href='../src/humantime/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/qui [...]
+</div><h4 id='method.cause' class="method hidden"><code id='cause.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.cause' class='fnname'>cause</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;dyn <a class="trait" href="../sgx_tstd/error/trait.Error.html" title="trait sgx_tstd::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/humantime/tmp/teaclave_symlin [...]
 </div><h4 id='method.type_id' class="method hidden"><code id='type_id.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.type_id' class='fnname'>type_id</a>(&amp;self, Internal) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: 'static,&nbsp;</span></code><a class='srclink' href='../src/sgx_tstd/error.rs.html#58-63' title='got [...]
 </div><h4 id='method.backtrace' class="method hidden"><code id='backtrace.v'>fn <a href='../sgx_tstd/error/trait.Error.html#method.backtrace' class='fnname'>backtrace</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="../sgx_tstd/backtrace/struct.Backtrace.html" title="struct sgx_tstd::backtrace::Backtrace">Backtrace</a>&gt;</code><a class='srclink' href='. [...]
 </div></div><h3 id='impl-PartialEq%3CError%3E' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&lt;<a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a>&gt; for <a class="enum" href="../humantime/enum.TimestampError.html" title="enum humantime::TimestampError">Error</a></code><a href='#impl-PartialEq%3CErro [...]
diff --git a/docs/crates-enclave/quote/all.html b/docs/crates-enclave/quote/all.html
index f0a1e08..c3162bd 100644
--- a/docs/crates-enclave/quote/all.html
+++ b/docs/crates-enclave/quote/all.html
@@ -1,3 +1,3 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><meta name="keywords" content="rust, rustlang, rust-lang"><title>List of all items in this crate</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link r [...]
         </span>
-        <span class='in-band'>List of all items</span></h1><h3 id='Traits'>Traits</h3><ul class='traits docblock'><li><a href='trait.IdentFragment.html'>IdentFragment</a></li><li><a href='trait.ToTokens.html'>ToTokens</a></li><li><a href='trait.TokenStreamExt.html'>TokenStreamExt</a></li></ul><h3 id='Macros'>Macros</h3><ul class='macros docblock'><li><a href='macro.format_ident.html'>format_ident</a></li><li><a href='macro.quote.html'>quote</a></li><li><a href='macro.quote_spanned.html'> [...]
\ No newline at end of file
+        <span class='in-band'>List of all items</span></h1><h3 id='Traits'>Traits</h3><ul class='traits docblock'><li><a href='trait.ToTokens.html'>ToTokens</a></li><li><a href='trait.TokenStreamExt.html'>TokenStreamExt</a></li></ul><h3 id='Macros'>Macros</h3><ul class='macros docblock'><li><a href='macro.quote.html'>quote</a></li><li><a href='macro.quote_spanned.html'>quote_spanned</a></li></ul></section><section id="search" class="content hidden"></section><section class="footer"></sec [...]
\ No newline at end of file
diff --git a/docs/crates-enclave/quote/index.html b/docs/crates-enclave/quote/index.html
index f581e0a..a0a6567 100644
--- a/docs/crates-enclave/quote/index.html
+++ b/docs/crates-enclave/quote/index.html
@@ -1,10 +1,10 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `quote` crate."><meta name="keywords" content="rust, rustlang, rust-lang, quote"><title>quote - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `quote` crate."><meta name="keywords" content="rust, rustlang, rust-lang, quote"><title>quote - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link [...]
 structures into tokens of source code.</p>
 <p>Procedural macros in Rust receive a stream of tokens as input, execute
 arbitrary Rust code to determine how to manipulate those tokens, and produce
 a stream of tokens to hand back to the compiler to compile into the caller's
-crate. Quasi-quoting is a solution to one piece of that — producing
-tokens to return to the compiler.</p>
+crate. Quasi-quoting is a solution to one piece of that -- producing tokens
+to return to the compiler.</p>
 <p>The idea of quasi-quoting is that we write <em>code</em> that we treat as <em>data</em>.
 Within the <code>quote!</code> macro, we can write what looks like code to our text
 editor or IDE. We get all the benefits of the editor's brace matching,
@@ -15,10 +15,11 @@ to compile into the macro caller's crate.</p>
 <p>This crate is motivated by the procedural macro use case, but is a
 general-purpose Rust quasi-quoting library and is not specific to procedural
 macros.</p>
+<p><em>Version requirement: Quote supports any compiler version back to Rust's
+very first support for procedural macros in Rust 1.15.0.</em></p>
 <pre><code class="language-toml">[dependencies]
-quote = &quot;1.0&quot;
+quote = &quot;0.6&quot;
 </code></pre>
-<br>
 <h1 id="example" class="section-header"><a href="#example">Example</a></h1>
 <p>The following quasi-quoted block of code is something you might find in <a href="https://serde.rs/">a</a>
 procedural macro having to do with data structure serialization. The <code>#var</code>
@@ -27,7 +28,7 @@ Check out the documentation of the <a href="macro.quote.html"><code>quote!</code
 the syntax. See also the <a href="macro.quote_spanned.html"><code>quote_spanned!</code></a> macro which is important for
 implementing hygienic procedural macros.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">let</span> <span class="ident">tokens</span> <span class="op">=</span> <span class="macro">quote</span><span class="macro">!</span> {
     <span class="kw">struct</span> <span class="ident">SerializeWith</span> #<span class="ident">generics</span> #<span class="ident">where_clause</span> {
         <span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> #<span class="ident">field_ty</span>,
@@ -48,13 +49,16 @@ implementing hygienic procedural macros.</p>
         <span class="ident">phantom</span>: <span class="ident">core</span>::<span class="ident">marker</span>::<span class="ident">PhantomData</span>::<span class="op">&lt;</span>#<span class="ident">item_ty</span><span class="op">&gt;</span>,
     }
 };</pre></div>
+<h1 id="recursion-limit" class="section-header"><a href="#recursion-limit">Recursion limit</a></h1>
+<p>The <code>quote!</code> macro relies on deep recursion so some large invocations may
+fail with &quot;recursion limit reached&quot; when you compile. If it fails, bump up
+the recursion limit by adding <code>#![recursion_limit = &quot;128&quot;]</code> to your crate.
+An even higher limit may be necessary for especially large invocations.</p>
 </div><h2 id='macros' class='section-header'><a href="#macros">Macros</a></h2>
-<table><tr class='module-item'><td><a class="macro" href="macro.format_ident.html" title='quote::format_ident macro'>format_ident</a></td><td class='docblock-short'><p>Formatting macro for constructing <code>Ident</code>s.</p>
-</td></tr><tr class='module-item'><td><a class="macro" href="macro.quote.html" title='quote::quote macro'>quote</a></td><td class='docblock-short'><p>The whole point.</p>
+<table><tr class='module-item'><td><a class="macro" href="macro.quote.html" title='quote::quote macro'>quote</a></td><td class='docblock-short'><p>The whole point.</p>
 </td></tr><tr class='module-item'><td><a class="macro" href="macro.quote_spanned.html" title='quote::quote_spanned macro'>quote_spanned</a></td><td class='docblock-short'><p>Same as <code>quote!</code>, but applies a given span to all tokens originating within
 the macro invocation.</p>
 </td></tr></table><h2 id='traits' class='section-header'><a href="#traits">Traits</a></h2>
-<table><tr class='module-item'><td><a class="trait" href="trait.IdentFragment.html" title='quote::IdentFragment trait'>IdentFragment</a></td><td class='docblock-short'><p>Specialized formatting trait used by <code>format_ident!</code>.</p>
-</td></tr><tr class='module-item'><td><a class="trait" href="trait.ToTokens.html" title='quote::ToTokens trait'>ToTokens</a></td><td class='docblock-short'><p>Types that can be interpolated inside a <code>quote!</code> invocation.</p>
+<table><tr class='module-item'><td><a class="trait" href="trait.ToTokens.html" title='quote::ToTokens trait'>ToTokens</a></td><td class='docblock-short'><p>Types that can be interpolated inside a <a href="macro.quote.html"><code>quote!</code></a> invocation.</p>
 </td></tr><tr class='module-item'><td><a class="trait" href="trait.TokenStreamExt.html" title='quote::TokenStreamExt trait'>TokenStreamExt</a></td><td class='docblock-short'><p>TokenStream extension trait with methods for appending tokens.</p>
 </td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quote";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/crates-enclave/quote/macro.quote.html b/docs/crates-enclave/quote/macro.quote.html
index 9012e5d..1455325 100644
--- a/docs/crates-enclave/quote/macro.quote.html
+++ b/docs/crates-enclave/quote/macro.quote.html
@@ -1,13 +1,11 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `quote` macro in crate `quote`."><meta name="keywords" content="rust, rustlang, rust-lang, quote"><title>quote::quote - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" i [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `quote` macro in crate `quote`."><meta name="keywords" content="rust, rustlang, rust-lang, quote"><title>quote::quote - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" i [...]
 <span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote</span> {
     ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> { ... };
 }</pre></div>
 </div><div class='docblock'><p>The whole point.</p>
 <p>Performs variable interpolation against the input and produces it as
-<a href="../proc_macro2/struct.TokenStream.html" title="`proc_macro2::TokenStream`"><code>proc_macro2::TokenStream</code></a>.</p>
-<p>Note: for returning tokens to the compiler in a procedural macro, use
-<code>.into()</code> on the result to convert to <a href="https://doc.rust-lang.org/nightly/proc_macro/struct.TokenStream.html" title="`proc_macro::TokenStream`"><code>proc_macro::TokenStream</code></a>.</p>
-<br>
+<a href="https://docs.rs/proc-macro2/0.4/proc_macro2/struct.TokenStream.html"><code>TokenStream</code></a>. For returning tokens to the compiler in a procedural macro, use
+<code>into()</code> to build a <code>TokenStream</code>.</p>
 <h1 id="interpolation" class="section-header"><a href="#interpolation">Interpolation</a></h1>
 <p>Variable interpolation is done with <code>#var</code> (similar to <code>$var</code> in
 <code>macro_rules!</code> macros). This grabs the <code>var</code> variable that is currently in
@@ -18,21 +16,36 @@ crate.</p>
 <p>Repetition is done using <code>#(...)*</code> or <code>#(...),*</code> again similar to
 <code>macro_rules!</code>. This iterates through the elements of any variable
 interpolated within the repetition and inserts a copy of the repetition body
-for each one. The variables in an interpolation may be a <code>Vec</code>, slice,
-<code>BTreeSet</code>, or any <code>Iterator</code>.</p>
+for each one. The variables in an interpolation may be anything that
+implements <code>IntoIterator</code>, including <code>Vec</code> or a pre-existing iterator.</p>
 <ul>
 <li><code>#(#var)*</code> — no separators</li>
 <li><code>#(#var),*</code> — the character before the asterisk is used as a separator</li>
 <li><code>#( struct #var; )*</code> — the repetition can contain other tokens</li>
 <li><code>#( #k =&gt; println!(&quot;{}&quot;, #v), )*</code> — even multiple interpolations</li>
 </ul>
-<br>
+<p>There are two limitations around interpolations in a repetition:</p>
+<ul>
+<li>
+<p>Every interpolation inside of a repetition must be a distinct variable.
+That is, <code>#(#a #a)*</code> is not allowed. Work around this by collecting <code>a</code>
+into a vector and taking references <code>a1 = &amp;a</code> and <code>a2 = &amp;a</code> which you use
+inside the repetition: <code>#(#a1 #a2)*</code>. Where possible, use meaningful names
+that indicate the distinct role of each copy.</p>
+</li>
+<li>
+<p>Every interpolation inside of a repetition must be iterable. If we have
+<code>vec</code> which is a vector and <code>ident</code> which is a single identifier,
+<code>#(#ident #vec)*</code> is not allowed. Work around this by using
+<code>std::iter::repeat(ident)</code> to produce an iterable that can be used from
+within the repetition.</p>
+</li>
+</ul>
 <h1 id="hygiene" class="section-header"><a href="#hygiene">Hygiene</a></h1>
 <p>Any interpolated tokens preserve the <code>Span</code> information provided by their
 <code>ToTokens</code> implementation. Tokens that originate within the <code>quote!</code>
-invocation are spanned with <a href="https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.html#method.call_site"><code>Span::call_site()</code></a>.</p>
+invocation are spanned with <a href="https://docs.rs/proc-macro2/0.4/proc_macro2/struct.Span.html#method.call_site"><code>Span::call_site()</code></a>.</p>
 <p>A different span can be provided through the <a href="macro.quote_spanned.html"><code>quote_spanned!</code></a> macro.</p>
-<br>
 <h1 id="return-type" class="section-header"><a href="#return-type">Return type</a></h1>
 <p>The macro evaluates to an expression of type <code>proc_macro2::TokenStream</code>.
 Meanwhile Rust procedural macros are expected to return the type
@@ -47,13 +60,12 @@ contexts.</p>
 <p>There is a <a href="https://doc.rust-lang.org/std/convert/trait.From.html"><code>From</code></a>-conversion in both directions so returning the output of
 <code>quote!</code> from a procedural macro usually looks like <code>tokens.into()</code> or
 <code>proc_macro::TokenStream::from(tokens)</code>.</p>
-<br>
-<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1><h3 id="procedural-macro" class="section-header"><a href="#procedural-macro">Procedural macro</a></h3>
+<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1><h2 id="procedural-macro" class="section-header"><a href="#procedural-macro">Procedural macro</a></h2>
 <p>The structure of a basic procedural macro is as follows. Refer to the <a href="https://github.com/dtolnay/syn">Syn</a>
 crate for further useful guidance on using <code>quote!</code> as part of a procedural
 macro.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">proc_macro</span>;
 
 <span class="kw">use</span> <span class="ident">proc_macro</span>::<span class="ident">TokenStream</span>;
@@ -77,14 +89,13 @@ macro.</p>
     <span class="comment">// Hand the output tokens back to the compiler.</span>
     <span class="ident">TokenStream</span>::<span class="ident">from</span>(<span class="ident">expanded</span>)
 }</pre></div>
-<p><br></p>
-<h3 id="combining-quoted-fragments" class="section-header"><a href="#combining-quoted-fragments">Combining quoted fragments</a></h3>
+<h2 id="combining-quoted-fragments" class="section-header"><a href="#combining-quoted-fragments">Combining quoted fragments</a></h2>
 <p>Usually you don't end up constructing an entire final <code>TokenStream</code> in one
 piece. Different parts may come from different helper functions. The tokens
 produced by <code>quote!</code> themselves implement <code>ToTokens</code> and so can be
 interpolated into later <code>quote!</code> invocations to build up a final result.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">let</span> <span class="ident">type_definition</span> <span class="op">=</span> <span class="macro">quote</span><span class="macro">!</span> {...};
 <span class="kw">let</span> <span class="ident">methods</span> <span class="op">=</span> <span class="macro">quote</span><span class="macro">!</span> {...};
 
@@ -92,8 +103,7 @@ interpolated into later <code>quote!</code> invocations to build up a final resu
     #<span class="ident">type_definition</span>
     #<span class="ident">methods</span>
 };</pre></div>
-<p><br></p>
-<h3 id="constructing-identifiers" class="section-header"><a href="#constructing-identifiers">Constructing identifiers</a></h3>
+<h2 id="constructing-identifiers" class="section-header"><a href="#constructing-identifiers">Constructing identifiers</a></h2>
 <p>Suppose we have an identifier <code>ident</code> which came from somewhere in a macro
 input and we need to modify it in some way for the macro output. Let's
 consider prepending the identifier with an underscore.</p>
@@ -101,37 +111,26 @@ consider prepending the identifier with an underscore.</p>
 behavior of concatenating them. The underscore and the identifier will
 continue to be two separate tokens as if you had written <code>_ x</code>.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="comment">// incorrect</span>
 <span class="macro">quote</span><span class="macro">!</span> {
     <span class="kw">let</span> <span class="kw-2">mut</span> <span class="kw">_</span>#<span class="ident">ident</span> <span class="op">=</span> <span class="number">0</span>;
 }</pre></div>
-<p>The solution is to build a new identifier token with the correct value. As
-this is such a common case, the <a href="../quote/macro.format_ident.html" title="`format_ident!`"><code>format_ident!</code></a> macro provides a
-convenient utility for doing so correctly.</p>
+<p>The solution is to perform token-level manipulations using the APIs provided
+by Syn and proc-macro2.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
-<span class="kw">let</span> <span class="ident">varname</span> <span class="op">=</span> <span class="macro">format_ident</span><span class="macro">!</span>(<span class="string">&quot;_{}&quot;</span>, <span class="ident">ident</span>);
-<span class="macro">quote</span><span class="macro">!</span> {
-    <span class="kw">let</span> <span class="kw-2">mut</span> #<span class="ident">varname</span> <span class="op">=</span> <span class="number">0</span>;
-}</pre></div>
-<p>Alternatively, the APIs provided by Syn and proc-macro2 can be used to
-directly build the identifier. This is roughly equivalent to the above, but
-will not handle <code>ident</code> being a raw identifier.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">let</span> <span class="ident">concatenated</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;_{}&quot;</span>, <span class="ident">ident</span>);
 <span class="kw">let</span> <span class="ident">varname</span> <span class="op">=</span> <span class="ident">syn</span>::<span class="ident">Ident</span>::<span class="ident">new</span>(<span class="kw-2">&amp;</span><span class="ident">concatenated</span>, <span class="ident">ident</span>.<span class="ident">span</span>());
 <span class="macro">quote</span><span class="macro">!</span> {
     <span class="kw">let</span> <span class="kw-2">mut</span> #<span class="ident">varname</span> <span class="op">=</span> <span class="number">0</span>;
 }</pre></div>
-<p><br></p>
-<h3 id="making-method-calls" class="section-header"><a href="#making-method-calls">Making method calls</a></h3>
+<h2 id="making-method-calls" class="section-header"><a href="#making-method-calls">Making method calls</a></h2>
 <p>Let's say our macro requires some type specified in the macro input to have
 a constructor called <code>new</code>. We have the type in a variable called
 <code>field_type</code> of type <code>syn::Type</code> and want to invoke the constructor.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="comment">// incorrect</span>
 <span class="macro">quote</span><span class="macro">!</span> {
     <span class="kw">let</span> <span class="ident">value</span> <span class="op">=</span> #<span class="ident">field_type</span>::<span class="ident">new</span>();
@@ -142,69 +141,15 @@ like <code>Vec&lt;i32&gt;</code> then the expanded code is <code>Vec&lt;i32&gt;:
 syntax. Ordinarily in handwritten Rust we would write <code>Vec::&lt;i32&gt;::new()</code>
 but for macros often the following is more convenient.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="macro">quote</span><span class="macro">!</span> {
     <span class="kw">let</span> <span class="ident">value</span> <span class="op">=</span> <span class="op">&lt;</span>#<span class="ident">field_type</span><span class="op">&gt;</span>::<span class="ident">new</span>();
 }</pre></div>
 <p>This expands to <code>&lt;Vec&lt;i32&gt;&gt;::new()</code> which behaves correctly.</p>
 <p>A similar pattern is appropriate for trait methods.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="macro">quote</span><span class="macro">!</span> {
     <span class="kw">let</span> <span class="ident">value</span> <span class="op">=</span> <span class="op">&lt;</span>#<span class="ident">field_type</span> <span class="kw">as</span> <span class="ident">core</span>::<span class="ident">default</span>::<span class="ident">Default</span><span class="op">&gt;</span>::<span class="ident">default</span>();
 }</pre></div>
-<p><br></p>
-<h3 id="interpolating-text-inside-of-doc-comments" class="section-header"><a href="#interpolating-text-inside-of-doc-comments">Interpolating text inside of doc comments</a></h3>
-<p>Neither doc comments nor string literals get interpolation behavior in
-quote:</p>
-
-<div class='information'><div class='tooltip compile_fail'>ⓘ<span class='tooltiptext'>This example deliberately fails to compile</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered compile_fail">
-<span class="macro">quote</span><span class="macro">!</span> {
-    <span class="doccomment">/// try to interpolate: #ident</span>
-    <span class="doccomment">///</span>
-    <span class="doccomment">/// ...</span>
-}</pre></div>
-
-<div class='information'><div class='tooltip compile_fail'>ⓘ<span class='tooltiptext'>This example deliberately fails to compile</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered compile_fail">
-<span class="macro">quote</span><span class="macro">!</span> {
-    <span class="attribute">#[<span class="ident">doc</span> <span class="op">=</span> <span class="string">&quot;try to interpolate: #ident&quot;</span>]</span>
-}</pre></div>
-<p>Macro calls in a doc attribute are not valid syntax:</p>
-
-<div class='information'><div class='tooltip compile_fail'>ⓘ<span class='tooltiptext'>This example deliberately fails to compile</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered compile_fail">
-<span class="macro">quote</span><span class="macro">!</span> {
-    <span class="attribute">#[<span class="ident">doc</span> <span class="op">=</span> <span class="macro">concat</span><span class="macro">!</span>(<span class="string">&quot;try to interpolate: &quot;</span>, <span class="macro">stringify</span><span class="macro">!</span>(#<span class="ident">ident</span>))]</span>
-}</pre></div>
-<p>Instead the best way to build doc comments that involve variables is by
-formatting the doc string literal outside of quote.</p>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered">
-<span class="kw">let</span> <span class="ident">msg</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(...);
-<span class="macro">quote</span><span class="macro">!</span> {
-    <span class="attribute">#[<span class="ident">doc</span> <span class="op">=</span> #<span class="ident">msg</span>]</span>
-    <span class="doccomment">///</span>
-    <span class="doccomment">/// ...</span>
-}</pre></div>
-<p><br></p>
-<h3 id="indexing-into-a-tuple-struct" class="section-header"><a href="#indexing-into-a-tuple-struct">Indexing into a tuple struct</a></h3>
-<p>When interpolating indices of a tuple or tuple struct, we need them not to
-appears suffixed as integer literals by interpolating them as <a href="https://docs.rs/syn/1.0/syn/struct.Index.html"><code>syn::Index</code></a>
-instead.</p>
-
-<div class='information'><div class='tooltip compile_fail'>ⓘ<span class='tooltiptext'>This example deliberately fails to compile</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered compile_fail">
-<span class="kw">let</span> <span class="ident">i</span> <span class="op">=</span> <span class="number">0usize</span>..<span class="self">self</span>.<span class="ident">fields</span>.<span class="ident">len</span>();
-
-<span class="comment">// expands to 0 + self.0usize.heap_size() + self.1usize.heap_size() + ...</span>
-<span class="comment">// which is not valid syntax</span>
-<span class="macro">quote</span><span class="macro">!</span> {
-    <span class="number">0</span> #( <span class="op">+</span> <span class="self">self</span>.#<span class="ident">i</span>.<span class="ident">heap_size</span>() )<span class="op">*</span>
-}</pre></div>
-
-<div class="example-wrap"><pre class="rust rust-example-rendered">
-<span class="kw">let</span> <span class="ident">i</span> <span class="op">=</span> (<span class="number">0</span>..<span class="self">self</span>.<span class="ident">fields</span>.<span class="ident">len</span>()).<span class="ident">map</span>(<span class="ident">syn</span>::<span class="ident">Index</span>::<span class="ident">from</span>);
-
-<span class="comment">// expands to 0 + self.0.heap_size() + self.1.heap_size() + ...</span>
-<span class="macro">quote</span><span class="macro">!</span> {
-    <span class="number">0</span> #( <span class="op">+</span> <span class="self">self</span>.#<span class="ident">i</span>.<span class="ident">heap_size</span>() )<span class="op">*</span>
-}</pre></div>
 </div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quote";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/crates-enclave/quote/macro.quote_spanned.html b/docs/crates-enclave/quote/macro.quote_spanned.html
index 271cdab..54a8fcb 100644
--- a/docs/crates-enclave/quote/macro.quote_spanned.html
+++ b/docs/crates-enclave/quote/macro.quote_spanned.html
@@ -1,17 +1,15 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `quote_spanned` macro in crate `quote`."><meta name="keywords" content="rust, rustlang, rust-lang, quote_spanned"><title>quote::quote_spanned - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `quote_spanned` macro in crate `quote`."><meta name="keywords" content="rust, rustlang, rust-lang, quote_spanned"><title>quote::quote_spanned - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" [...]
 <span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_spanned</span> {
     (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">expr</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> { ... };
 }</pre></div>
 </div><div class='docblock'><p>Same as <code>quote!</code>, but applies a given span to all tokens originating within
 the macro invocation.</p>
-<br>
 <h1 id="syntax" class="section-header"><a href="#syntax">Syntax</a></h1>
-<p>A span expression of type <a href="https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.html"><code>Span</code></a>, followed by <code>=&gt;</code>, followed by the tokens
-to quote. The span expression should be brief — use a variable for
-anything more than a few characters. There should be no space before the
-<code>=&gt;</code> token.</p>
+<p>A span expression of type <a href="https://docs.rs/proc-macro2/0.4/proc_macro2/struct.Span.html"><code>Span</code></a>, followed by <code>=&gt;</code>, followed by the tokens
+to quote. The span expression should be brief -- use a variable for anything
+more than a few characters. There should be no space before the <code>=&gt;</code> token.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">let</span> <span class="ident">span</span> <span class="op">=</span> <span class="comment">/* ... */</span>;
 
 <span class="comment">// On one line, use parentheses.</span>
@@ -26,18 +24,16 @@ and this is intentional. The formatting is designed to be visibly
 off-balance and draw the eye a particular way, due to the span expression
 being evaluated in the context of the procedural macro and the remaining
 tokens being evaluated in the generated code.</p>
-<br>
 <h1 id="hygiene" class="section-header"><a href="#hygiene">Hygiene</a></h1>
 <p>Any interpolated tokens preserve the <code>Span</code> information provided by their
 <code>ToTokens</code> implementation. Tokens that originate within the <code>quote_spanned!</code>
 invocation are spanned with the given span argument.</p>
-<br>
 <h1 id="example" class="section-header"><a href="#example">Example</a></h1>
 <p>The following procedural macro code uses <code>quote_spanned!</code> to assert that a
 particular Rust type implements the <a href="https://doc.rust-lang.org/std/marker/trait.Sync.html"><code>Sync</code></a> trait so that references can be
 safely shared between threads.</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">let</span> <span class="ident">ty_span</span> <span class="op">=</span> <span class="ident">ty</span>.<span class="ident">span</span>();
 <span class="kw">let</span> <span class="ident">assert_sync</span> <span class="op">=</span> <span class="macro">quote_spanned</span><span class="macro">!</span> {<span class="ident">ty_span</span><span class="op">=</span><span class="op">&gt;</span>
     <span class="kw">struct</span> <span class="ident">_AssertSync</span> <span class="kw">where</span> #<span class="ident">ty</span>: <span class="ident">Sync</span>;
@@ -52,5 +48,9 @@ input span of their type is hightlighted in the error.</p>
 </code></pre>
 <p>In this example it is important for the where-clause to be spanned with the
 line/column information of the user's input type so that error messages are
-placed appropriately by the compiler.</p>
+placed appropriately by the compiler. But it is also incredibly important
+that <code>Sync</code> resolves at the macro definition site and not the macro call
+site. If we resolve <code>Sync</code> at the same span that the user's type is going to
+be resolved, then they could bypass our check by defining their own trait
+named <code>Sync</code> that is implemented for their type.</p>
 </div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quote";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
\ No newline at end of file
diff --git a/docs/crates-enclave/quote/sidebar-items.js b/docs/crates-enclave/quote/sidebar-items.js
index f0d1295..7f7bf77 100644
--- a/docs/crates-enclave/quote/sidebar-items.js
+++ b/docs/crates-enclave/quote/sidebar-items.js
@@ -1 +1 @@
-initSidebarItems({"macro":[["format_ident","Formatting macro for constructing `Ident`s."],["quote","The whole point."],["quote_spanned","Same as `quote!`, but applies a given span to all tokens originating within the macro invocation."]],"trait":[["IdentFragment","Specialized formatting trait used by `format_ident!`."],["ToTokens","Types that can be interpolated inside a `quote!` invocation."],["TokenStreamExt","TokenStream extension trait with methods for appending tokens."]]});
\ No newline at end of file
+initSidebarItems({"macro":[["quote","The whole point."],["quote_spanned","Same as `quote!`, but applies a given span to all tokens originating within the macro invocation."]],"trait":[["ToTokens","Types that can be interpolated inside a [`quote!`] invocation."],["TokenStreamExt","TokenStream extension trait with methods for appending tokens."]]});
\ No newline at end of file
diff --git a/docs/crates-enclave/quote/trait.ToTokens.html b/docs/crates-enclave/quote/trait.ToTokens.html
index 08faa73..ebe4443 100644
--- a/docs/crates-enclave/quote/trait.ToTokens.html
+++ b/docs/crates-enclave/quote/trait.ToTokens.html
@@ -1,10 +1,9 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `ToTokens` trait in crate `quote`."><meta name="keywords" content="rust, rustlang, rust-lang, ToTokens"><title>quote::ToTokens - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustd [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `ToTokens` trait in crate `quote`."><meta name="keywords" content="rust, rustlang, rust-lang, ToTokens"><title>quote::ToTokens - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustd [...]
     fn <a href='#tymethod.to_tokens' class='fnname'>to_tokens</a>(&amp;self, tokens: &amp;mut <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>);
 
-    fn <a href='#method.to_token_stream' class='fnname'>to_token_stream</a>(&amp;self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a> { ... }
-<div class='item-spacer'></div>    fn <a href='#method.into_token_stream' class='fnname'>into_token_stream</a>(self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a><br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
+    fn <a href='#method.into_token_stream' class='fnname'>into_token_stream</a>(self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a><br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a></span>,
     { ... }
-}</pre></div><div class='docblock'><p>Types that can be interpolated inside a <code>quote!</code> invocation.</p>
+}</pre></div><div class='docblock'><p>Types that can be interpolated inside a <a href="macro.quote.html"><code>quote!</code></a> invocation.</p>
 </div>
             <h2 id='required-methods' class='small-section-header'>Required methods<a href='#required-methods' class='anchor'></a></h2><div class='methods'><h3 id='tymethod.to_tokens' class='method'><code id='to_tokens.v'>fn <a href='#tymethod.to_tokens' class='fnname'>to_tokens</a>(&amp;self, tokens: &amp;mut <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>)</code></h3><div class='docblock'><p>Write <code>self</code> [...]
 <p>The token append methods provided by the <a href="trait.TokenStreamExt.html"><code>TokenStreamExt</code></a> extension
@@ -13,7 +12,7 @@ trait may be useful for implementing <code>ToTokens</code>.</p>
 <p>Example implementation for a struct representing Rust paths like
 <code>std::cmp::PartialEq</code>:</p>
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">use</span> <span class="ident">proc_macro2</span>::{<span class="ident">TokenTree</span>, <span class="ident">Spacing</span>, <span class="ident">Span</span>, <span class="ident">Punct</span>, <span class="ident">TokenStream</span>};
 <span class="kw">use</span> <span class="ident">quote</span>::{<span class="ident">TokenStreamExt</span>, <span class="ident">ToTokens</span>};
 
@@ -35,12 +34,9 @@ trait may be useful for implementing <code>ToTokens</code>.</p>
     }
 }</pre></div>
 </div></div><span class='loading-content'>Loading content...</span>
-            <h2 id='provided-methods' class='small-section-header'>Provided methods<a href='#provided-methods' class='anchor'></a></h2><div class='methods'><h3 id='method.to_token_stream' class='method'><code id='to_token_stream.v'>fn <a href='#method.to_token_stream' class='fnname'>to_token_stream</a>(&amp;self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></code></h3><div class='docblock'><p>Convert <code>s [...]
-<p>This method is implicitly implemented using <code>to_tokens</code>, and acts as a
-convenience method for consumers of the <code>ToTokens</code> trait.</p>
-</div><h3 id='method.into_token_stream' class='method'><code id='into_token_stream.v'>fn <a href='#method.into_token_stream' class='fnname'>into_token_stream</a>(self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized< [...]
+            <h2 id='provided-methods' class='small-section-header'>Provided methods<a href='#provided-methods' class='anchor'></a></h2><div class='methods'><h3 id='method.into_token_stream' class='method'><code id='into_token_stream.v'>fn <a href='#method.into_token_stream' class='fnname'>into_token_stream</a>(self) -&gt; <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a> <span class="where fmt-newline">where<br>&nbsp;& [...]
 <p>This method is implicitly implemented using <code>to_tokens</code>, and acts as a
 convenience method for consumers of the <code>ToTokens</code> trait.</p>
 </div></div><span class='loading-content'>Loading content...</span>
-            <h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-ToTokens-for-%26%27a%20T' class='impl'><code class='in-band'>impl&lt;'a, T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>&gt; <a class="trait" hr [...]
+            <h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-ToTokens-for-%26%27a%20T' class='impl'><code class='in-band'>impl&lt;'a, T:&nbsp;?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>&gt; <a class="trait" hr [...]
             <h2 id='implementors' class='small-section-header'>Implementors<a href='#implementors' class='anchor'></a></h2><div class='item-list' id='implementors-list'></div><span class='loading-content'>Loading content...</span><script type="text/javascript" src="../implementors/quote/trait.ToTokens.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quote";</script>< [...]
\ No newline at end of file
diff --git a/docs/crates-enclave/quote/trait.TokenStreamExt.html b/docs/crates-enclave/quote/trait.TokenStreamExt.html
index f2a1418..02a53aa 100644
--- a/docs/crates-enclave/quote/trait.TokenStreamExt.html
+++ b/docs/crates-enclave/quote/trait.TokenStreamExt.html
@@ -1,16 +1,16 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `TokenStreamExt` trait in crate `quote`."><meta name="keywords" content="rust, rustlang, rust-lang, TokenStreamExt"><title>quote::TokenStreamExt - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/c [...]
     fn <a href='#tymethod.append' class='fnname'>append</a>&lt;U&gt;(&amp;mut self, token: U)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="../proc_macro2/enum.TokenTree.html" title="enum proc_macro2::TokenTree">TokenTree</a>&gt;</span>;
-<div class='item-spacer'></div>    fn <a href='#tymethod.append_all' class='fnname'>append_all</a>&lt;I&gt;(&amp;mut self, iter: I)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I::<a class="type" href="h [...]
-<div class='item-spacer'></div>    fn <a href='#tymethod.append_separated' class='fnname'>append_separated</a>&lt;I, U&gt;(&amp;mut self, iter: I, op: U)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I::< [...]
-<div class='item-spacer'></div>    fn <a href='#tymethod.append_terminated' class='fnname'>append_terminated</a>&lt;I, U&gt;(&amp;mut self, iter: I, term: U)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [...]
+<div class='item-spacer'></div>    fn <a href='#tymethod.append_all' class='fnname'>append_all</a>&lt;T, I&gt;(&amp;mut self, iter: I)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.htm [...]
+<div class='item-spacer'></div>    fn <a href='#tymethod.append_separated' class='fnname'>append_separated</a>&lt;T, I, U&gt;(&amp;mut self, iter: I, op: U)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/ [...]
+<div class='item-spacer'></div>    fn <a href='#tymethod.append_terminated' class='fnname'>append_terminated</a>&lt;T, I, U&gt;(&amp;mut self, iter: I, term: U)<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/coll [...]
 }</pre></div><div class='docblock'><p>TokenStream extension trait with methods for appending tokens.</p>
 <p>This trait is sealed and cannot be implemented outside of the <code>quote</code> crate.</p>
 </div>
             <h2 id='required-methods' class='small-section-header'>Required methods<a href='#required-methods' class='anchor'></a></h2><div class='methods'><h3 id='tymethod.append' class='method'><code id='append.v'>fn <a href='#tymethod.append' class='fnname'>append</a>&lt;U&gt;(&amp;mut self, token: U) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Int [...]
 <p>Appends the token specified to this list of tokens.</p>
-</div><h3 id='tymethod.append_all' class='method'><code id='append_all.v'>fn <a href='#tymethod.append_all' class='fnname'>append_all</a>&lt;I&gt;(&amp;mut self, iter: I) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::<a class="type" href="https://doc.rust-lan [...]
+</div><h3 id='tymethod.append_all' class='method'><code id='append_all.v'>fn <a href='#tymethod.append_all' class='fnname'>append_all</a>&lt;T, I&gt;(&amp;mut self, iter: I) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait cor [...]
 
-<div class="example-wrap"><pre class="rust rust-example-rendered">
+<div class='information'><div class='tooltip edition'>ⓘ<span class='tooltiptext'>This code runs with edition 2018</span></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition ">
 <span class="kw">struct</span> <span class="ident">X</span>;
 
 <span class="kw">impl</span> <span class="ident">ToTokens</span> <span class="kw">for</span> <span class="ident">X</span> {
@@ -21,12 +21,12 @@
 
 <span class="kw">let</span> <span class="ident">tokens</span> <span class="op">=</span> <span class="macro">quote</span><span class="macro">!</span>(#<span class="ident">X</span>);
 <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">tokens</span>.<span class="ident">to_string</span>(), <span class="string">&quot;true false&quot;</span>);</pre></div>
-</div><h3 id='tymethod.append_separated' class='method'><code id='append_separated.v'>fn <a href='#tymethod.append_separated' class='fnname'>append_separated</a>&lt;I, U&gt;(&amp;mut self, iter: I, op: U) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::<a class [...]
+</div><h3 id='tymethod.append_separated' class='method'><code id='append_separated.v'>fn <a href='#tymethod.append_separated' class='fnname'>append_separated</a>&lt;T, I, U&gt;(&amp;mut self, iter: I, op: U) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.I [...]
 <p>Appends all of the items in the iterator <code>I</code>, separated by the tokens
 <code>U</code>.</p>
-</div><h3 id='tymethod.append_terminated' class='method'><code id='append_terminated.v'>fn <a href='#tymethod.append_terminated' class='fnname'>append_terminated</a>&lt;I, U&gt;(&amp;mut self, iter: I, term: U) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::<a [...]
+</div><h3 id='tymethod.append_terminated' class='method'><code id='append_terminated.v'>fn <a href='#tymethod.append_terminated' class='fnname'>append_terminated</a>&lt;T, I, U&gt;(&amp;mut self, iter: I, term: U) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../quote/trait.ToTokens.html" title="trait quote::ToTokens">ToTokens</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/t [...]
 <p>Appends all tokens in the iterator <code>I</code>, appending <code>U</code> after each
 element, including after the last element of the iterator.</p>
 </div></div><span class='loading-content'>Loading content...</span>
-            <h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-TokenStreamExt-for-TokenStream' class='impl'><code class='in-band'>impl <a class="trait" href="../quote/trait.TokenStreamExt.html" title="trait quote::TokenStreamExt">TokenStreamExt</a> for <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></code><a href='#impl-Tok [...]
+            <h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-TokenStreamExt-for-TokenStream' class='impl'><code class='in-band'>impl <a class="trait" href="../quote/trait.TokenStreamExt.html" title="trait quote::TokenStreamExt">TokenStreamExt</a> for <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></code><a href='#impl-Tok [...]
             <h2 id='implementors' class='small-section-header'>Implementors<a href='#implementors' class='anchor'></a></h2><div class='item-list' id='implementors-list'></div><span class='loading-content'>Loading content...</span><script type="text/javascript" src="../implementors/quote/trait.TokenStreamExt.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quote";</sc [...]
\ No newline at end of file
diff --git a/docs/crates-enclave/search-index.js b/docs/crates-enclave/search-index.js
index 0822339..5add654 100644
--- a/docs/crates-enclave/search-index.js
+++ b/docs/crates-enclave/search-index.js
@@ -50,7 +50,7 @@ searchIndex["prost"] = {"doc":"","i":[[3,"DecodeError","prost","A Protobuf messa
 searchIndex["prost_derive"] = {"doc":"","i":[[24,"Message","prost_derive","",null,null],[24,"Enumeration","","",null,null],[24,"Oneof","","",null,null]],"p":[]};
 searchIndex["protected_fs"] = {"doc":"","i":[[3,"ProtectedFile","protected_fs","A reference to an open file on the filesystem.",null,null],[3,"OpenOptions","","Options and flags which can be used to configure how a…",null,null],[5,"remove_protected_file","","",null,[[["asref",8],["path",3]],["result",6]]],[5,"export_auto_key","","",null,[[["asref",8],["path",3]],[["result",6],["sgx_key_128bit_t",6]]]],[5,"import_auto_key","","",null,[[["sgx_key_128bit_t",6],["asref",8],["path",3]],["resu [...]
 searchIndex["quick_error"] = {"doc":"A macro which makes errors easy to write","i":[[3,"Context","quick_error","Generic context type",null,null],[12,"0","","",0,null],[12,"1","","",0,null],[8,"ResultExt","","Result extension trait adding a `context` method",null,null],[10,"context","","The method is use to add context information to current…",1,[[],[["context",3],["result",4]]]],[14,"quick_error","","Main macro that does all the work",null,null],[11,"from","","",0,[[]]],[11,"borrow",""," [...]
-searchIndex["quote"] = {"doc":"This crate provides the [`quote!`] macro for turning Rust…","i":[[8,"TokenStreamExt","quote","TokenStream extension trait with methods for appending…",null,null],[10,"append","","For use by `ToTokens` implementations.",0,[[]]],[10,"append_all","","For use by `ToTokens` implementations.",0,[[]]],[10,"append_separated","","For use by `ToTokens` implementations.",0,[[]]],[10,"append_terminated","","For use by `ToTokens` implementations.",0,[[]]],[8,"IdentFragm [...]
+searchIndex["quote"] = {"doc":"This crate provides the [`quote!`] macro for turning Rust…","i":[[8,"TokenStreamExt","quote","TokenStream extension trait with methods for appending…",null,null],[10,"append","","For use by `ToTokens` implementations.",0,[[]]],[10,"append_all","","For use by `ToTokens` implementations.",0,[[]]],[10,"append_separated","","For use by `ToTokens` implementations.",0,[[]]],[10,"append_terminated","","For use by `ToTokens` implementations.",0,[[]]],[8,"ToTokens", [...]
 searchIndex["rand"] = {"doc":"Utilities for random number generation","i":[[8,"CryptoRng","rand","A marker trait used to indicate that an [`RngCore`] or…",null,null],[3,"Error","","Error type of random number generators",null,null],[8,"RngCore","","The core of a random number generator.",null,null],[10,"next_u32","","Return the next random `u32`.",0,[[]]],[10,"next_u64","","Return the next random `u64`.",0,[[]]],[10,"fill_bytes","","Fill `dest` with random data.",0,[[]]],[10,"try_fill_by [...]
 searchIndex["rand_chacha"] = {"doc":"The ChaCha random number generator.","i":[[3,"ChaCha12Core","rand_chacha","ChaCha with 12 rounds",null,null],[3,"ChaCha12Rng","","A cryptographically secure random number generator that…",null,null],[3,"ChaCha20Core","","ChaCha with 20 rounds",null,null],[3,"ChaCha20Rng","","A cryptographically secure random number generator that…",null,null],[3,"ChaCha8Core","","ChaCha with 8 rounds",null,null],[3,"ChaCha8Rng","","A cryptographically secure random nu [...]
 searchIndex["rand_core"] = {"doc":"Random number generation traits","i":[[3,"Error","rand_core","Error type of random number generators",null,null],[3,"OsRng","","A random number generator that retrieves randomness from…",null,null],[0,"block","","The `BlockRngCore` trait and implementation helpers",null,null],[3,"BlockRng","rand_core::block","A wrapper type implementing [`RngCore`] for some type…",null,null],[12,"core","","The core part of the RNG, implementing the `generate`…",0,null], [...]
diff --git a/docs/crates-enclave/serde_json/struct.Number.html b/docs/crates-enclave/serde_json/struct.Number.html
index 6b0e9ca..dea8215 100644
--- a/docs/crates-enclave/serde_json/struct.Number.html
+++ b/docs/crates-enclave/serde_json/struct.Number.html
@@ -95,24 +95,24 @@ numbers.</p>
 </div><h4 id='method.deserialize_f64' class="method hidden"><code id='deserialize_f64.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_f64' class='fnname'>deserialize_f64</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, [...]
 </div><h4 id='method.deserialize_i128' class="method hidden"><code id='deserialize_i128.v'>fn <a href='../serde/de/trait.Deserializer.html#method.deserialize_i128' class='fnname'>deserialize_i128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a [...]
 </div><h4 id='method.deserialize_u128' class="method hidden"><code id='deserialize_u128.v'>fn <a href='../serde/de/trait.Deserializer.html#method.deserialize_u128' class='fnname'>deserialize_u128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a [...]
-</div><h4 id='method.deserialize_bool' class="method hidden"><code id='deserialize_bool.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
-</div><h4 id='method.deserialize_char' class="method hidden"><code id='deserialize_char.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
-</div><h4 id='method.deserialize_str' class="method hidden"><code id='deserialize_str.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, [...]
-</div><h4 id='method.deserialize_string' class="method hidden"><code id='deserialize_string.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
-</div><h4 id='method.deserialize_bytes' class="method hidden"><code id='deserialize_bytes.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
-</div><h4 id='method.deserialize_byte_buf' class="method hidden"><code id='deserialize_byte_buf.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visito [...]
-</div><h4 id='method.deserialize_option' class="method hidden"><code id='deserialize_option.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
-</div><h4 id='method.deserialize_unit' class="method hidden"><code id='deserialize_unit.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
-</div><h4 id='method.deserialize_unit_struct' class="method hidden"><code id='deserialize_unit_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Resul [...]
-</div><h4 id='method.deserialize_newtype_struct' class="method hidden"><code id='deserialize_newtype_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::r [...]
-</div><h4 id='method.deserialize_seq' class="method hidden"><code id='deserialize_seq.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, [...]
-</div><h4 id='method.deserialize_tuple' class="method hidden"><code id='deserialize_tuple.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type"  [...]
-</div><h4 id='method.deserialize_tuple_struct' class="method hidden"><code id='deserialize_tuple_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum. [...]
-</div><h4 id='method.deserialize_map' class="method hidden"><code id='deserialize_map.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, [...]
-</div><h4 id='method.deserialize_struct' class="method hidden"><code id='deserialize_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/ [...]
-</div><h4 id='method.deserialize_enum' class="method hidden"><code id='deserialize_enum.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.R [...]
-</div><h4 id='method.deserialize_identifier' class="method hidden"><code id='deserialize_identifier.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de [...]
-</div><h4 id='method.deserialize_ignored_any' class="method hidden"><code id='deserialize_ignored_any.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde [...]
+</div><h4 id='method.deserialize_bool' class="method hidden"><code id='deserialize_bool.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
+</div><h4 id='method.deserialize_char' class="method hidden"><code id='deserialize_char.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
+</div><h4 id='method.deserialize_str' class="method hidden"><code id='deserialize_str.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, [...]
+</div><h4 id='method.deserialize_string' class="method hidden"><code id='deserialize_string.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
+</div><h4 id='method.deserialize_bytes' class="method hidden"><code id='deserialize_bytes.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
+</div><h4 id='method.deserialize_byte_buf' class="method hidden"><code id='deserialize_byte_buf.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visito [...]
+</div><h4 id='method.deserialize_option' class="method hidden"><code id='deserialize_option.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
+</div><h4 id='method.deserialize_unit' class="method hidden"><code id='deserialize_unit.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
+</div><h4 id='method.deserialize_unit_struct' class="method hidden"><code id='deserialize_unit_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Resul [...]
+</div><h4 id='method.deserialize_newtype_struct' class="method hidden"><code id='deserialize_newtype_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::r [...]
+</div><h4 id='method.deserialize_seq' class="method hidden"><code id='deserialize_seq.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, [...]
+</div><h4 id='method.deserialize_tuple' class="method hidden"><code id='deserialize_tuple.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type"  [...]
+</div><h4 id='method.deserialize_tuple_struct' class="method hidden"><code id='deserialize_tuple_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum. [...]
+</div><h4 id='method.deserialize_map' class="method hidden"><code id='deserialize_map.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, [...]
+</div><h4 id='method.deserialize_struct' class="method hidden"><code id='deserialize_struct.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/ [...]
+</div><h4 id='method.deserialize_enum' class="method hidden"><code id='deserialize_enum.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.R [...]
+</div><h4 id='method.deserialize_identifier' class="method hidden"><code id='deserialize_identifier.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de [...]
+</div><h4 id='method.deserialize_ignored_any' class="method hidden"><code id='deserialize_ignored_any.v'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde [...]
 </div><h4 id='method.is_human_readable' class="method hidden"><code id='is_human_readable.v'>fn <a href='../serde/de/trait.Deserializer.html#method.is_human_readable' class='fnname'>is_human_readable</a>(&amp;self) -&gt; bool</code><a class='srclink' href='../src/serde/de/mod.rs.html#1214-1216' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Determine whether <code>Deserialize</code> implementations should expect to deserialize their human-readable form. <a href=". [...]
 </div></div><h3 id='impl-Deserializer%3C%27de%3E-1' class='impl'><code class='in-band'>impl&lt;'de, 'a&gt; <a class="trait" href="../serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt; for &amp;'a <a class="struct" href="../serde_json/struct.Number.html" title="struct serde_json::Number">Number</a></code><a href='#impl-Deserializer%3C%27de%3E-1' class='anchor'></a><a class='srclink' href='../src/serde_json/number.rs.html#545-571' title='got [...]
 </div><h4 id='method.deserialize_any-1' class="method hidden"><code id='deserialize_any.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_any' class='fnname'>deserialize_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
@@ -128,24 +128,24 @@ numbers.</p>
 </div><h4 id='method.deserialize_f64-1' class="method hidden"><code id='deserialize_f64.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_f64' class='fnname'>deserialize_f64</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
 </div><h4 id='method.deserialize_i128-1' class="method hidden"><code id='deserialize_i128.v-1'>fn <a href='../serde/de/trait.Deserializer.html#method.deserialize_i128' class='fnname'>deserialize_i128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
 </div><h4 id='method.deserialize_u128-1' class="method hidden"><code id='deserialize_u128.v-1'>fn <a href='../serde/de/trait.Deserializer.html#method.deserialize_u128' class='fnname'>deserialize_u128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
-</div><h4 id='method.deserialize_bool-1' class="method hidden"><code id='deserialize_bool.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
-</div><h4 id='method.deserialize_char-1' class="method hidden"><code id='deserialize_char.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
-</div><h4 id='method.deserialize_str-1' class="method hidden"><code id='deserialize_str.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
-</div><h4 id='method.deserialize_string-1' class="method hidden"><code id='deserialize_string.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::V [...]
-</div><h4 id='method.deserialize_bytes-1' class="method hidden"><code id='deserialize_bytes.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
-</div><h4 id='method.deserialize_byte_buf-1' class="method hidden"><code id='deserialize_byte_buf.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Vi [...]
-</div><h4 id='method.deserialize_option-1' class="method hidden"><code id='deserialize_option.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::V [...]
-</div><h4 id='method.deserialize_unit-1' class="method hidden"><code id='deserialize_unit.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
-</div><h4 id='method.deserialize_unit_struct-1' class="method hidden"><code id='deserialize_unit_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::R [...]
-</div><h4 id='method.deserialize_newtype_struct-1' class="method hidden"><code id='deserialize_newtype_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum cor [...]
-</div><h4 id='method.deserialize_seq-1' class="method hidden"><code id='deserialize_seq.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
-</div><h4 id='method.deserialize_tuple-1' class="method hidden"><code id='deserialize_tuple.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="ty [...]
-</div><h4 id='method.deserialize_tuple_struct-1' class="method hidden"><code id='deserialize_tuple_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/e [...]
-</div><h4 id='method.deserialize_map-1' class="method hidden"><code id='deserialize_map.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
-</div><h4 id='method.deserialize_struct-1' class="method hidden"><code id='deserialize_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/res [...]
-</div><h4 id='method.deserialize_enum-1' class="method hidden"><code id='deserialize_enum.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/en [...]
-</div><h4 id='method.deserialize_identifier-1' class="method hidden"><code id='deserialize_identifier.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde [...]
-</div><h4 id='method.deserialize_ignored_any-1' class="method hidden"><code id='deserialize_ignored_any.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type s [...]
+</div><h4 id='method.deserialize_bool-1' class="method hidden"><code id='deserialize_bool.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
+</div><h4 id='method.deserialize_char-1' class="method hidden"><code id='deserialize_char.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
+</div><h4 id='method.deserialize_str-1' class="method hidden"><code id='deserialize_str.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
+</div><h4 id='method.deserialize_string-1' class="method hidden"><code id='deserialize_string.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::V [...]
+</div><h4 id='method.deserialize_bytes-1' class="method hidden"><code id='deserialize_bytes.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
+</div><h4 id='method.deserialize_byte_buf-1' class="method hidden"><code id='deserialize_byte_buf.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Vi [...]
+</div><h4 id='method.deserialize_option-1' class="method hidden"><code id='deserialize_option.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::V [...]
+</div><h4 id='method.deserialize_unit-1' class="method hidden"><code id='deserialize_unit.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
+</div><h4 id='method.deserialize_unit_struct-1' class="method hidden"><code id='deserialize_unit_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::R [...]
+</div><h4 id='method.deserialize_newtype_struct-1' class="method hidden"><code id='deserialize_newtype_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum cor [...]
+</div><h4 id='method.deserialize_seq-1' class="method hidden"><code id='deserialize_seq.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
+</div><h4 id='method.deserialize_tuple-1' class="method hidden"><code id='deserialize_tuple.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="ty [...]
+</div><h4 id='method.deserialize_tuple_struct-1' class="method hidden"><code id='deserialize_tuple_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/e [...]
+</div><h4 id='method.deserialize_map-1' class="method hidden"><code id='deserialize_map.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value< [...]
+</div><h4 id='method.deserialize_struct-1' class="method hidden"><code id='deserialize_struct.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/res [...]
+</div><h4 id='method.deserialize_enum-1' class="method hidden"><code id='deserialize_enum.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/en [...]
+</div><h4 id='method.deserialize_identifier-1' class="method hidden"><code id='deserialize_identifier.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde [...]
+</div><h4 id='method.deserialize_ignored_any-1' class="method hidden"><code id='deserialize_ignored_any.v-1'>fn <a href='../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type s [...]
 </div><h4 id='method.is_human_readable-1' class="method hidden"><code id='is_human_readable.v-1'>fn <a href='../serde/de/trait.Deserializer.html#method.is_human_readable' class='fnname'>is_human_readable</a>(&amp;self) -&gt; bool</code><a class='srclink' href='../src/serde/de/mod.rs.html#1214-1216' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Determine whether <code>Deserialize</code> implementations should expect to deserialize their human-readable form. <a hre [...]
 </div></div><h3 id='impl-Display' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="../serde_json/struct.Number.html" title="struct serde_json::Number">Number</a></code><a href='#impl-Display' class='anchor'></a><a class='srclink' href='../src/serde_json/number.rs.html#259-273' title='goto source code'>[src]</a></h3><div class='impl-items'>< [...]
 </div></div><h3 id='impl-From%3Ci16%3E' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;i16&gt; for <a class="struct" href="../serde_json/struct.Number.html" title="struct serde_json::Number">Number</a></code><a href='#impl-From%3Ci16%3E' class='anchor'></a><a class='srclink' href='../src/serde_json/number.rs.html#691-710' title='goto source code'>[src]</a></h3><di [...]
diff --git a/docs/crates-enclave/serde_json/value/struct.Number.html b/docs/crates-enclave/serde_json/value/struct.Number.html
index 5cff522..409f3ec 100644
--- a/docs/crates-enclave/serde_json/value/struct.Number.html
+++ b/docs/crates-enclave/serde_json/value/struct.Number.html
@@ -95,24 +95,24 @@ numbers.</p>
 </div><h4 id='method.deserialize_f64' class="method hidden"><code id='deserialize_f64.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_f64' class='fnname'>deserialize_f64</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
 </div><h4 id='method.deserialize_i128' class="method hidden"><code id='deserialize_i128.v'>fn <a href='../../serde/de/trait.Deserializer.html#method.deserialize_i128' class='fnname'>deserialize_i128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
 </div><h4 id='method.deserialize_u128' class="method hidden"><code id='deserialize_u128.v'>fn <a href='../../serde/de/trait.Deserializer.html#method.deserialize_u128' class='fnname'>deserialize_u128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Va [...]
-</div><h4 id='method.deserialize_bool' class="method hidden"><code id='deserialize_bool.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
-</div><h4 id='method.deserialize_char' class="method hidden"><code id='deserialize_char.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
-</div><h4 id='method.deserialize_str' class="method hidden"><code id='deserialize_str.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
-</div><h4 id='method.deserialize_string' class="method hidden"><code id='deserialize_string.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor: [...]
-</div><h4 id='method.deserialize_bytes' class="method hidden"><code id='deserialize_bytes.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
-</div><h4 id='method.deserialize_byte_buf' class="method hidden"><code id='deserialize_byte_buf.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de:: [...]
-</div><h4 id='method.deserialize_option' class="method hidden"><code id='deserialize_option.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor: [...]
-</div><h4 id='method.deserialize_unit' class="method hidden"><code id='deserialize_unit.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
-</div><h4 id='method.deserialize_unit_struct' class="method hidden"><code id='deserialize_unit_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Re [...]
-</div><h4 id='method.deserialize_newtype_struct' class="method hidden"><code id='deserialize_newtype_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core [...]
-</div><h4 id='method.deserialize_seq' class="method hidden"><code id='deserialize_seq.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
-</div><h4 id='method.deserialize_tuple' class="method hidden"><code id='deserialize_tuple.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="typ [...]
-</div><h4 id='method.deserialize_tuple_struct' class="method hidden"><code id='deserialize_tuple_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/en [...]
-</div><h4 id='method.deserialize_map' class="method hidden"><code id='deserialize_map.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
-</div><h4 id='method.deserialize_struct' class="method hidden"><code id='deserialize_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/resu [...]
-</div><h4 id='method.deserialize_enum' class="method hidden"><code id='deserialize_enum.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enu [...]
-</div><h4 id='method.deserialize_identifier' class="method hidden"><code id='deserialize_identifier.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type ser [...]
-</div><h4 id='method.deserialize_ignored_any' class="method hidden"><code id='deserialize_ignored_any.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type [...]
+</div><h4 id='method.deserialize_bool' class="method hidden"><code id='deserialize_bool.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
+</div><h4 id='method.deserialize_char' class="method hidden"><code id='deserialize_char.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
+</div><h4 id='method.deserialize_str' class="method hidden"><code id='deserialize_str.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
+</div><h4 id='method.deserialize_string' class="method hidden"><code id='deserialize_string.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor: [...]
+</div><h4 id='method.deserialize_bytes' class="method hidden"><code id='deserialize_bytes.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
+</div><h4 id='method.deserialize_byte_buf' class="method hidden"><code id='deserialize_byte_buf.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de:: [...]
+</div><h4 id='method.deserialize_option' class="method hidden"><code id='deserialize_option.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor: [...]
+</div><h4 id='method.deserialize_unit' class="method hidden"><code id='deserialize_unit.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
+</div><h4 id='method.deserialize_unit_struct' class="method hidden"><code id='deserialize_unit_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Re [...]
+</div><h4 id='method.deserialize_newtype_struct' class="method hidden"><code id='deserialize_newtype_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core [...]
+</div><h4 id='method.deserialize_seq' class="method hidden"><code id='deserialize_seq.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
+</div><h4 id='method.deserialize_tuple' class="method hidden"><code id='deserialize_tuple.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="typ [...]
+</div><h4 id='method.deserialize_tuple_struct' class="method hidden"><code id='deserialize_tuple_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/en [...]
+</div><h4 id='method.deserialize_map' class="method hidden"><code id='deserialize_map.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Valu [...]
+</div><h4 id='method.deserialize_struct' class="method hidden"><code id='deserialize_struct.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/resu [...]
+</div><h4 id='method.deserialize_enum' class="method hidden"><code id='deserialize_enum.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enu [...]
+</div><h4 id='method.deserialize_identifier' class="method hidden"><code id='deserialize_identifier.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type ser [...]
+</div><h4 id='method.deserialize_ignored_any' class="method hidden"><code id='deserialize_ignored_any.v'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type [...]
 </div><h4 id='method.is_human_readable' class="method hidden"><code id='is_human_readable.v'>fn <a href='../../serde/de/trait.Deserializer.html#method.is_human_readable' class='fnname'>is_human_readable</a>(&amp;self) -&gt; bool</code><a class='srclink' href='../../src/serde/de/mod.rs.html#1214-1216' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Determine whether <code>Deserialize</code> implementations should expect to deserialize their human-readable form. <a h [...]
 </div></div><h3 id='impl-Deserializer%3C%27de%3E-1' class='impl'><code class='in-band'>impl&lt;'de, 'a&gt; <a class="trait" href="../../serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt; for &amp;'a <a class="struct" href="../../serde_json/struct.Number.html" title="struct serde_json::Number">Number</a></code><a href='#impl-Deserializer%3C%27de%3E-1' class='anchor'></a><a class='srclink' href='../../src/serde_json/number.rs.html#545-571' t [...]
 </div><h4 id='method.deserialize_any-1' class="method hidden"><code id='deserialize_any.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_any' class='fnname'>deserialize_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
@@ -128,24 +128,24 @@ numbers.</p>
 </div><h4 id='method.deserialize_f64-1' class="method hidden"><code id='deserialize_f64.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_f64' class='fnname'>deserialize_f64</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
 </div><h4 id='method.deserialize_i128-1' class="method hidden"><code id='deserialize_i128.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#method.deserialize_i128' class='fnname'>deserialize_i128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
 </div><h4 id='method.deserialize_u128-1' class="method hidden"><code id='deserialize_u128.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#method.deserialize_u128' class='fnname'>deserialize_u128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value [...]
-</div><h4 id='method.deserialize_bool-1' class="method hidden"><code id='deserialize_bool.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
-</div><h4 id='method.deserialize_char-1' class="method hidden"><code id='deserialize_char.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
-</div><h4 id='method.deserialize_str-1' class="method hidden"><code id='deserialize_str.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
-</div><h4 id='method.deserialize_string-1' class="method hidden"><code id='deserialize_string.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visi [...]
-</div><h4 id='method.deserialize_bytes-1' class="method hidden"><code id='deserialize_bytes.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor: [...]
-</div><h4 id='method.deserialize_byte_buf-1' class="method hidden"><code id='deserialize_byte_buf.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde:: [...]
-</div><h4 id='method.deserialize_option-1' class="method hidden"><code id='deserialize_option.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visi [...]
-</div><h4 id='method.deserialize_unit-1' class="method hidden"><code id='deserialize_unit.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
-</div><h4 id='method.deserialize_unit_struct-1' class="method hidden"><code id='deserialize_unit_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result [...]
-</div><h4 id='method.deserialize_newtype_struct-1' class="method hidden"><code id='deserialize_newtype_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum  [...]
-</div><h4 id='method.deserialize_seq-1' class="method hidden"><code id='deserialize_seq.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
-</div><h4 id='method.deserialize_tuple-1' class="method hidden"><code id='deserialize_tuple.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class= [...]
-</div><h4 id='method.deserialize_tuple_struct-1' class="method hidden"><code id='deserialize_tuple_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/resul [...]
-</div><h4 id='method.deserialize_map-1' class="method hidden"><code id='deserialize_map.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
-</div><h4 id='method.deserialize_struct-1' class="method hidden"><code id='deserialize_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/ [...]
-</div><h4 id='method.deserialize_enum-1' class="method hidden"><code id='deserialize_enum.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result [...]
-</div><h4 id='method.deserialize_identifier-1' class="method hidden"><code id='deserialize_identifier.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type [...]
-</div><h4 id='method.deserialize_ignored_any-1' class="method hidden"><code id='deserialize_ignored_any.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title=" [...]
+</div><h4 id='method.deserialize_bool-1' class="method hidden"><code id='deserialize_bool.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
+</div><h4 id='method.deserialize_char-1' class="method hidden"><code id='deserialize_char.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_char' class='fnname'>deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
+</div><h4 id='method.deserialize_str-1' class="method hidden"><code id='deserialize_str.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_str' class='fnname'>deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
+</div><h4 id='method.deserialize_string-1' class="method hidden"><code id='deserialize_string.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_string' class='fnname'>deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visi [...]
+</div><h4 id='method.deserialize_bytes-1' class="method hidden"><code id='deserialize_bytes.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor: [...]
+</div><h4 id='method.deserialize_byte_buf-1' class="method hidden"><code id='deserialize_byte_buf.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde:: [...]
+</div><h4 id='method.deserialize_option-1' class="method hidden"><code id='deserialize_option.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_option' class='fnname'>deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visi [...]
+</div><h4 id='method.deserialize_unit-1' class="method hidden"><code id='deserialize_unit.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Val [...]
+</div><h4 id='method.deserialize_unit_struct-1' class="method hidden"><code id='deserialize_unit_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result [...]
+</div><h4 id='method.deserialize_newtype_struct-1' class="method hidden"><code id='deserialize_newtype_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum  [...]
+</div><h4 id='method.deserialize_seq-1' class="method hidden"><code id='deserialize_seq.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
+</div><h4 id='method.deserialize_tuple-1' class="method hidden"><code id='deserialize_tuple.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class= [...]
+</div><h4 id='method.deserialize_tuple_struct-1' class="method hidden"><code id='deserialize_tuple_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;len: usize, <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/resul [...]
+</div><h4 id='method.deserialize_map-1' class="method hidden"><code id='deserialize_map.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_map' class='fnname'>deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value"> [...]
+</div><h4 id='method.deserialize_struct-1' class="method hidden"><code id='deserialize_struct.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;fields: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/ [...]
+</div><h4 id='method.deserialize_enum-1' class="method hidden"><code id='deserialize_enum.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;name: &amp;'static str, <br>&nbsp;&nbsp;&nbsp;&nbsp;variants: &amp;'static [&amp;'static str], <br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result [...]
+</div><h4 id='method.deserialize_identifier-1' class="method hidden"><code id='deserialize_identifier.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type [...]
+</div><h4 id='method.deserialize_ignored_any-1' class="method hidden"><code id='deserialize_ignored_any.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;V::<a class="type" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title=" [...]
 </div><h4 id='method.is_human_readable-1' class="method hidden"><code id='is_human_readable.v-1'>fn <a href='../../serde/de/trait.Deserializer.html#method.is_human_readable' class='fnname'>is_human_readable</a>(&amp;self) -&gt; bool</code><a class='srclink' href='../../src/serde/de/mod.rs.html#1214-1216' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Determine whether <code>Deserialize</code> implementations should expect to deserialize their human-readable form.  [...]
 </div></div><h3 id='impl-Display' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="../../serde_json/struct.Number.html" title="struct serde_json::Number">Number</a></code><a href='#impl-Display' class='anchor'></a><a class='srclink' href='../../src/serde_json/number.rs.html#259-273' title='goto source code'>[src]</a></h3><div class='impl-it [...]
 </div></div><h3 id='impl-From%3Ci16%3E' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;i16&gt; for <a class="struct" href="../../serde_json/struct.Number.html" title="struct serde_json::Number">Number</a></code><a href='#impl-From%3Ci16%3E' class='anchor'></a><a class='srclink' href='../../src/serde_json/number.rs.html#691-710' title='goto source code'>[src]</a></ [...]
diff --git a/docs/crates-enclave/sgx_trts/cpu_feature/enum.Feature.html b/docs/crates-enclave/sgx_trts/cpu_feature/enum.Feature.html
index 4c5f1cf..26d13dc 100644
--- a/docs/crates-enclave/sgx_trts/cpu_feature/enum.Feature.html
+++ b/docs/crates-enclave/sgx_trts/cpu_feature/enum.Feature.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Feature` enum in crate `sgx_trts`."><meta name="keywords" content="rust, rustlang, rust-lang, Feature"><title>sgx_trts::cpu_feature::Feature - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/c [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Feature` enum in crate `sgx_trts`."><meta name="keywords" content="rust, rustlang, rust-lang, Feature"><title>sgx_trts::cpu_feature::Feature - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/c [...]
     none,
     ia32,
     fpu,
@@ -59,9 +59,9 @@
     end,
 }</pre></div><h2 id='variants' class='variants small-section-header'>
                    Variants<a href='#variants' class='anchor'></a></h2>
-<div id="variant.none" class="variant small-section-header"><a href="#variant.none" class="anchor field"></a><code id='none.v'>none</code></div><div id="variant.ia32" class="variant small-section-header"><a href="#variant.ia32" class="anchor field"></a><code id='ia32.v'>ia32</code></div><div id="variant.fpu" class="variant small-section-header"><a href="#variant.fpu" class="anchor field"></a><code id='fpu.v'>fpu</code></div><div id="variant.cmov" class="variant small-section-header"><a h [...]
+<div id="variant.none" class="variant small-section-header"><a href="#variant.none" class="anchor field"></a><code id='none.v'>none</code></div><div id="variant.ia32" class="variant small-section-header"><a href="#variant.ia32" class="anchor field"></a><code id='ia32.v'>ia32</code></div><div id="variant.fpu" class="variant small-section-header"><a href="#variant.fpu" class="anchor field"></a><code id='fpu.v'>fpu</code></div><div id="variant.cmov" class="variant small-section-header"><a h [...]
 </div><h4 id='method.clone_from' class="method hidden"><code id='clone_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&amp;mut self, source: &amp;Self)</code><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#131-133' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs copy-as [...]
-</div></div><h3 id='impl-Copy' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="../../sgx_trts/cpu_feature/enum.Feature.html" title="enum sgx_trts::cpu_feature::Feature">Feature</a></code><a href='#impl-Copy' class='anchor'></a><a class='srclink' href='../../src/sgx_trts/cpu_feature.rs.html#211' title='goto source code'>[src]</a></h3><div class= [...]
+</div></div><h3 id='impl-Copy' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="../../sgx_trts/cpu_feature/enum.Feature.html" title="enum sgx_trts::cpu_feature::Feature">Feature</a></code><a href='#impl-Copy' class='anchor'></a><a class='srclink' href='../../src/sgx_trts/cpu_feature.rs.html#211' title='goto source code'>[src]</a></h3><div class= [...]
 </div></div><h3 id='impl-Eq' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="../../sgx_trts/cpu_feature/enum.Feature.html" title="enum sgx_trts::cpu_feature::Feature">Feature</a></code><a href='#impl-Eq' class='anchor'></a><a class='srclink' href='../../src/sgx_trts/cpu_feature.rs.html#211' title='goto source code'>[src]</a></h3><div class='impl-items'></d [...]
 </div><h4 id='method.ne' class="method hidden"><code id='ne.v'><span class="docblock attributes">#[must_use]</span>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne' class='fnname'>ne</a>(&amp;self, other: &amp;Rhs) -&gt; bool</code><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#215-217' title='goto source code'>[src]</a></h4><div class='docblock hi [...]
 </div></div><h3 id='impl-StructuralEq' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="enum" href="../../sgx_trts/cpu_feature/enum.Feature.html" title="enum sgx_trts::cpu_feature::Feature">Feature</a></code><a href='#impl-StructuralEq' class='anchor'></a><a class='srclink' href='../../src/sgx_trts/cpu_feature.rs.html#211' title='got [...]
diff --git a/docs/crates-enclave/sgx_tstd/default/trait.Default.html b/docs/crates-enclave/sgx_tstd/default/trait.Default.html
index 623301e..1888add 100644
--- a/docs/crates-enclave/sgx_tstd/default/trait.Default.html
+++ b/docs/crates-enclave/sgx_tstd/default/trait.Default.html
@@ -79,7 +79,7 @@ may make sense as a default.</p>
 </div></div><span class='loading-content'>Loading content...</span>
             <h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-Default-for-HashSet%3CT%2C%20S%3E' class='impl'><code class='in-band'>impl&lt;T, S&gt; <a class="trait" href="../../sgx_tstd/default/trait.Default.html" title="trait sgx_tstd::default::Default">Default</a> for <a class="struct" href="../../hashbrown_tstd/set/struct.HashSet.html" title="struct hashbrown_tstd::set::HashSet">HashSet</a [...]
 </div></div><h3 id='impl-Default-for-HashMap%3CK%2C%20V%2C%20S%3E' class='impl'><code class='in-band'>impl&lt;K, V, S&gt; <a class="trait" href="../../sgx_tstd/default/trait.Default.html" title="trait sgx_tstd::default::Default">Default</a> for <a class="struct" href="../../hashbrown_tstd/map/struct.HashMap.html" title="struct hashbrown_tstd::map::HashMap">HashMap</a>&lt;K, V, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="../../sgx_tstd/ [...]
-</div></div><h3 id='impl-Default-for-sgx_quote_t' class='impl'><code class='in-band'>impl <a class="trait" href="../../sgx_tstd/default/trait.Default.html" title="trait sgx_tstd::default::Default">Default</a> for <a class="struct" href="../../sgx_types/types/struct.sgx_quote_t.html" title="struct sgx_types::types::sgx_quote_t">sgx_quote_t</a></code><a href='#impl-Default-for-sgx_quote_t' class='anchor'></a><a class='srclink' href='../../src/sgx_types/macros.rs.html#139-143' title='goto s [...]
+</div></div><h3 id='impl-Default-for-sgx_quote_t' class='impl'><code class='in-band'>impl <a class="trait" href="../../sgx_tstd/default/trait.Default.html" title="trait sgx_tstd::default::Default">Default</a> for <a class="struct" href="../../sgx_types/types/struct.sgx_quote_t.html" title="struct sgx_types::types::sgx_quote_t">sgx_quote_t</a></code><a href='#impl-Default-for-sgx_quote_t' class='anchor'></a><a class='srclink' href='../../src/sgx_types/macros.rs.html#139-143' title='goto s [...]
             <h2 id='implementors' class='small-section-header'>Implementors<a href='#implementors' class='anchor'></a></h2><div class='item-list' id='implementors-list'><h3 id='impl-Default' class='impl'><code class='in-band'>impl Default for ()</code><a href='#impl-Default' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/default.rs.html#129-133' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.default-98' class="method" [...]
 </div></div><h3 id='impl-Default-1' class='impl'><code class='in-band'>impl Default for <a class="struct" href="../../sgx_tstd/alloc/struct.Global.html" title="struct sgx_tstd::alloc::Global">Global</a></code><a href='#impl-Default-1' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/alloc.rs.html#42' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.default-99' class="method hidden"><code id='default.v-100'>fn <a href='#m [...]
 See its documentation for more.</p>
diff --git a/docs/crates-enclave/sgx_tstd/ffi/struct.CStr.html b/docs/crates-enclave/sgx_tstd/ffi/struct.CStr.html
index 528f3da..8a4d7fa 100644
--- a/docs/crates-enclave/sgx_tstd/ffi/struct.CStr.html
+++ b/docs/crates-enclave/sgx_tstd/ffi/struct.CStr.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `CStr` struct in crate `sgx_tstd`."><meta name="keywords" content="rust, rustlang, rust-lang, CStr"><title>sgx_tstd::ffi::CStr - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../.. [...]
 <p>This type represents a borrowed reference to a nul-terminated
-array of bytes. It can be constructed safely from a <code>&amp;[</code><a href="/tmp/teaclave_symlinks.pcaiYGj5Fy2K/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/sgx_trts/src/std/primitive.u8.html" title="`u8`"><code>u8</code></a><code>]</code>
+array of bytes. It can be constructed safely from a <code>&amp;[</code><a href="/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/sgx_trts/src/std/primitive.u8.html" title="`u8`"><code>u8</code></a><code>]</code>
 slice, or unsafely from a raw <code>*const c_char</code>. It can then be
 converted to a Rust [<code>&amp;str</code>] by performing UTF-8 validation, or
 into an owned <a href="../../sgx_tstd/ffi/struct.CString.html" title="`CString`"><code>CString</code></a>.</p>
diff --git a/docs/crates-enclave/sgx_tstd/rt/fn.global_exit.html b/docs/crates-enclave/sgx_tstd/rt/fn.global_exit.html
index b9d7a0e..e7a4f32 100644
--- a/docs/crates-enclave/sgx_tstd/rt/fn.global_exit.html
+++ b/docs/crates-enclave/sgx_tstd/rt/fn.global_exit.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `global_exit` fn in crate `sgx_tstd`."><meta name="keywords" content="rust, rustlang, rust-lang, global_exit"><title>sgx_tstd::rt::global_exit - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/ [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `global_exit` fn in crate `sgx_tstd`."><meta name="keywords" content="rust, rustlang, rust-lang, global_exit"><title>sgx_tstd::rt::global_exit - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/ [...]
\ No newline at end of file
diff --git a/docs/crates-enclave/sgx_tstd/rt/static.GLOBAL_DTORS.html b/docs/crates-enclave/sgx_tstd/rt/static.GLOBAL_DTORS.html
index 825dfe1..b9b40e8 100644
--- a/docs/crates-enclave/sgx_tstd/rt/static.GLOBAL_DTORS.html
+++ b/docs/crates-enclave/sgx_tstd/rt/static.GLOBAL_DTORS.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `GLOBAL_DTORS` static in crate `sgx_tstd`."><meta name="keywords" content="rust, rustlang, rust-lang, GLOBAL_DTORS"><title>sgx_tstd::rt::GLOBAL_DTORS - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `GLOBAL_DTORS` static in crate `sgx_tstd`."><meta name="keywords" content="rust, rustlang, rust-lang, GLOBAL_DTORS"><title>sgx_tstd::rt::GLOBAL_DTORS - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type [...]
\ No newline at end of file
diff --git a/docs/crates-enclave/source-files.js b/docs/crates-enclave/source-files.js
index ab564c8..b62034f 100644
--- a/docs/crates-enclave/source-files.js
+++ b/docs/crates-enclave/source-files.js
@@ -50,7 +50,7 @@ sourcesIndex["prost"] = {"name":"","files":["encoding.rs","error.rs","lib.rs","m
 sourcesIndex["prost_derive"] = {"name":"","dirs":[{"name":"field","files":["group.rs","map.rs","message.rs","mod.rs","oneof.rs","scalar.rs"]}],"files":["lib.rs"]};
 sourcesIndex["protected_fs"] = {"name":"","files":["deps.rs","lib.rs","protected_fs.rs","sgx_fs_inner.rs","sgx_tprotected_fs.rs"]};
 sourcesIndex["quick_error"] = {"name":"","files":["lib.rs"]};
-sourcesIndex["quote"] = {"name":"","files":["ext.rs","format.rs","ident_fragment.rs","lib.rs","runtime.rs","spanned.rs","to_tokens.rs"]};
+sourcesIndex["quote"] = {"name":"","files":["ext.rs","lib.rs","runtime.rs","to_tokens.rs"]};
 sourcesIndex["rand"] = {"name":"","dirs":[{"name":"distributions","dirs":[{"name":"weighted","files":["alias_method.rs","mod.rs"]}],"files":["bernoulli.rs","binomial.rs","cauchy.rs","dirichlet.rs","exponential.rs","float.rs","gamma.rs","integer.rs","mod.rs","normal.rs","other.rs","pareto.rs","poisson.rs","triangular.rs","uniform.rs","unit_circle.rs","unit_sphere.rs","utils.rs","weibull.rs","ziggurat_tables.rs"]},{"name":"rngs","dirs":[{"name":"adapter","files":["mod.rs","read.rs","reseed [...]
 sourcesIndex["rand_chacha"] = {"name":"","files":["chacha.rs","lib.rs"]};
 sourcesIndex["rand_core"] = {"name":"","files":["block.rs","error.rs","impls.rs","le.rs","lib.rs","os.rs"]};
diff --git a/docs/crates-enclave/src/humantime/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quick-error/src/lib.rs.html b/docs/crates-enclave/src/humantime/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quick-error/src/lib.rs.html
new file mode 100644
index 0000000..c693cad
--- /dev/null
+++ b/docs/crates-enclave/src/humantime/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quick-error/src/lib.rs.html
@@ -0,0 +1,2627 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `/tmp/teaclave_symlinks.kzQnQXFVdS8y/teaclave_build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quick-error/src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs.html -- source</title><link rel="stylesheet" type="text/ [...]
+<span id="2">   2</span>
+<span id="3">   3</span>
+<span id="4">   4</span>
+<span id="5">   5</span>
+<span id="6">   6</span>
+<span id="7">   7</span>
+<span id="8">   8</span>
+<span id="9">   9</span>
+<span id="10">  10</span>
+<span id="11">  11</span>
+<span id="12">  12</span>
+<span id="13">  13</span>
+<span id="14">  14</span>
+<span id="15">  15</span>
+<span id="16">  16</span>
+<span id="17">  17</span>
+<span id="18">  18</span>
+<span id="19">  19</span>
+<span id="20">  20</span>
+<span id="21">  21</span>
+<span id="22">  22</span>
+<span id="23">  23</span>
+<span id="24">  24</span>
+<span id="25">  25</span>
+<span id="26">  26</span>
+<span id="27">  27</span>
+<span id="28">  28</span>
+<span id="29">  29</span>
+<span id="30">  30</span>
+<span id="31">  31</span>
+<span id="32">  32</span>
+<span id="33">  33</span>
+<span id="34">  34</span>
+<span id="35">  35</span>
+<span id="36">  36</span>
+<span id="37">  37</span>
+<span id="38">  38</span>
+<span id="39">  39</span>
+<span id="40">  40</span>
+<span id="41">  41</span>
+<span id="42">  42</span>
+<span id="43">  43</span>
+<span id="44">  44</span>
+<span id="45">  45</span>
+<span id="46">  46</span>
+<span id="47">  47</span>
+<span id="48">  48</span>
+<span id="49">  49</span>
+<span id="50">  50</span>
+<span id="51">  51</span>
+<span id="52">  52</span>
+<span id="53">  53</span>
+<span id="54">  54</span>
+<span id="55">  55</span>
+<span id="56">  56</span>
+<span id="57">  57</span>
+<span id="58">  58</span>
+<span id="59">  59</span>
+<span id="60">  60</span>
+<span id="61">  61</span>
+<span id="62">  62</span>
+<span id="63">  63</span>
+<span id="64">  64</span>
+<span id="65">  65</span>
+<span id="66">  66</span>
+<span id="67">  67</span>
+<span id="68">  68</span>
+<span id="69">  69</span>
+<span id="70">  70</span>
+<span id="71">  71</span>
+<span id="72">  72</span>
+<span id="73">  73</span>
+<span id="74">  74</span>
+<span id="75">  75</span>
+<span id="76">  76</span>
+<span id="77">  77</span>
+<span id="78">  78</span>
+<span id="79">  79</span>
+<span id="80">  80</span>
+<span id="81">  81</span>
+<span id="82">  82</span>
+<span id="83">  83</span>
+<span id="84">  84</span>
+<span id="85">  85</span>
+<span id="86">  86</span>
+<span id="87">  87</span>
+<span id="88">  88</span>
+<span id="89">  89</span>
+<span id="90">  90</span>
+<span id="91">  91</span>
+<span id="92">  92</span>
+<span id="93">  93</span>
+<span id="94">  94</span>
+<span id="95">  95</span>
+<span id="96">  96</span>
+<span id="97">  97</span>
+<span id="98">  98</span>
+<span id="99">  99</span>
+<span id="100"> 100</span>
+<span id="101"> 101</span>
+<span id="102"> 102</span>
+<span id="103"> 103</span>
+<span id="104"> 104</span>
+<span id="105"> 105</span>
+<span id="106"> 106</span>
+<span id="107"> 107</span>
+<span id="108"> 108</span>
+<span id="109"> 109</span>
+<span id="110"> 110</span>
+<span id="111"> 111</span>
+<span id="112"> 112</span>
+<span id="113"> 113</span>
+<span id="114"> 114</span>
+<span id="115"> 115</span>
+<span id="116"> 116</span>
+<span id="117"> 117</span>
+<span id="118"> 118</span>
+<span id="119"> 119</span>
+<span id="120"> 120</span>
+<span id="121"> 121</span>
+<span id="122"> 122</span>
+<span id="123"> 123</span>
+<span id="124"> 124</span>
+<span id="125"> 125</span>
+<span id="126"> 126</span>
+<span id="127"> 127</span>
+<span id="128"> 128</span>
+<span id="129"> 129</span>
+<span id="130"> 130</span>
+<span id="131"> 131</span>
+<span id="132"> 132</span>
+<span id="133"> 133</span>
+<span id="134"> 134</span>
+<span id="135"> 135</span>
+<span id="136"> 136</span>
+<span id="137"> 137</span>
+<span id="138"> 138</span>
+<span id="139"> 139</span>
+<span id="140"> 140</span>
+<span id="141"> 141</span>
+<span id="142"> 142</span>
+<span id="143"> 143</span>
+<span id="144"> 144</span>
+<span id="145"> 145</span>
+<span id="146"> 146</span>
+<span id="147"> 147</span>
+<span id="148"> 148</span>
+<span id="149"> 149</span>
+<span id="150"> 150</span>
+<span id="151"> 151</span>
+<span id="152"> 152</span>
+<span id="153"> 153</span>
+<span id="154"> 154</span>
+<span id="155"> 155</span>
+<span id="156"> 156</span>
+<span id="157"> 157</span>
+<span id="158"> 158</span>
+<span id="159"> 159</span>
+<span id="160"> 160</span>
+<span id="161"> 161</span>
+<span id="162"> 162</span>
+<span id="163"> 163</span>
+<span id="164"> 164</span>
+<span id="165"> 165</span>
+<span id="166"> 166</span>
+<span id="167"> 167</span>
+<span id="168"> 168</span>
+<span id="169"> 169</span>
+<span id="170"> 170</span>
+<span id="171"> 171</span>
+<span id="172"> 172</span>
+<span id="173"> 173</span>
+<span id="174"> 174</span>
+<span id="175"> 175</span>
+<span id="176"> 176</span>
+<span id="177"> 177</span>
+<span id="178"> 178</span>
+<span id="179"> 179</span>
+<span id="180"> 180</span>
+<span id="181"> 181</span>
+<span id="182"> 182</span>
+<span id="183"> 183</span>
+<span id="184"> 184</span>
+<span id="185"> 185</span>
+<span id="186"> 186</span>
+<span id="187"> 187</span>
+<span id="188"> 188</span>
+<span id="189"> 189</span>
+<span id="190"> 190</span>
+<span id="191"> 191</span>
+<span id="192"> 192</span>
+<span id="193"> 193</span>
+<span id="194"> 194</span>
+<span id="195"> 195</span>
+<span id="196"> 196</span>
+<span id="197"> 197</span>
+<span id="198"> 198</span>
+<span id="199"> 199</span>
+<span id="200"> 200</span>
+<span id="201"> 201</span>
+<span id="202"> 202</span>
+<span id="203"> 203</span>
+<span id="204"> 204</span>
+<span id="205"> 205</span>
+<span id="206"> 206</span>
+<span id="207"> 207</span>
+<span id="208"> 208</span>
+<span id="209"> 209</span>
+<span id="210"> 210</span>
+<span id="211"> 211</span>
+<span id="212"> 212</span>
+<span id="213"> 213</span>
+<span id="214"> 214</span>
+<span id="215"> 215</span>
+<span id="216"> 216</span>
+<span id="217"> 217</span>
+<span id="218"> 218</span>
+<span id="219"> 219</span>
+<span id="220"> 220</span>
+<span id="221"> 221</span>
+<span id="222"> 222</span>
+<span id="223"> 223</span>
+<span id="224"> 224</span>
+<span id="225"> 225</span>
+<span id="226"> 226</span>
+<span id="227"> 227</span>
+<span id="228"> 228</span>
+<span id="229"> 229</span>
+<span id="230"> 230</span>
+<span id="231"> 231</span>
+<span id="232"> 232</span>
+<span id="233"> 233</span>
+<span id="234"> 234</span>
+<span id="235"> 235</span>
+<span id="236"> 236</span>
+<span id="237"> 237</span>
+<span id="238"> 238</span>
+<span id="239"> 239</span>
+<span id="240"> 240</span>
+<span id="241"> 241</span>
+<span id="242"> 242</span>
+<span id="243"> 243</span>
+<span id="244"> 244</span>
+<span id="245"> 245</span>
+<span id="246"> 246</span>
+<span id="247"> 247</span>
+<span id="248"> 248</span>
+<span id="249"> 249</span>
+<span id="250"> 250</span>
+<span id="251"> 251</span>
+<span id="252"> 252</span>
+<span id="253"> 253</span>
+<span id="254"> 254</span>
+<span id="255"> 255</span>
+<span id="256"> 256</span>
+<span id="257"> 257</span>
+<span id="258"> 258</span>
+<span id="259"> 259</span>
+<span id="260"> 260</span>
+<span id="261"> 261</span>
+<span id="262"> 262</span>
+<span id="263"> 263</span>
+<span id="264"> 264</span>
+<span id="265"> 265</span>
+<span id="266"> 266</span>
+<span id="267"> 267</span>
+<span id="268"> 268</span>
+<span id="269"> 269</span>
+<span id="270"> 270</span>
+<span id="271"> 271</span>
+<span id="272"> 272</span>
+<span id="273"> 273</span>
+<span id="274"> 274</span>
+<span id="275"> 275</span>
+<span id="276"> 276</span>
+<span id="277"> 277</span>
+<span id="278"> 278</span>
+<span id="279"> 279</span>
+<span id="280"> 280</span>
+<span id="281"> 281</span>
+<span id="282"> 282</span>
+<span id="283"> 283</span>
+<span id="284"> 284</span>
+<span id="285"> 285</span>
+<span id="286"> 286</span>
+<span id="287"> 287</span>
+<span id="288"> 288</span>
+<span id="289"> 289</span>
+<span id="290"> 290</span>
+<span id="291"> 291</span>
+<span id="292"> 292</span>
+<span id="293"> 293</span>
+<span id="294"> 294</span>
+<span id="295"> 295</span>
+<span id="296"> 296</span>
+<span id="297"> 297</span>
+<span id="298"> 298</span>
+<span id="299"> 299</span>
+<span id="300"> 300</span>
+<span id="301"> 301</span>
+<span id="302"> 302</span>
+<span id="303"> 303</span>
+<span id="304"> 304</span>
+<span id="305"> 305</span>
+<span id="306"> 306</span>
+<span id="307"> 307</span>
+<span id="308"> 308</span>
+<span id="309"> 309</span>
+<span id="310"> 310</span>
+<span id="311"> 311</span>
+<span id="312"> 312</span>
+<span id="313"> 313</span>
+<span id="314"> 314</span>
+<span id="315"> 315</span>
+<span id="316"> 316</span>
+<span id="317"> 317</span>
+<span id="318"> 318</span>
+<span id="319"> 319</span>
+<span id="320"> 320</span>
+<span id="321"> 321</span>
+<span id="322"> 322</span>
+<span id="323"> 323</span>
+<span id="324"> 324</span>
+<span id="325"> 325</span>
+<span id="326"> 326</span>
+<span id="327"> 327</span>
+<span id="328"> 328</span>
+<span id="329"> 329</span>
+<span id="330"> 330</span>
+<span id="331"> 331</span>
+<span id="332"> 332</span>
+<span id="333"> 333</span>
+<span id="334"> 334</span>
+<span id="335"> 335</span>
+<span id="336"> 336</span>
+<span id="337"> 337</span>
+<span id="338"> 338</span>
+<span id="339"> 339</span>
+<span id="340"> 340</span>
+<span id="341"> 341</span>
+<span id="342"> 342</span>
+<span id="343"> 343</span>
+<span id="344"> 344</span>
+<span id="345"> 345</span>
+<span id="346"> 346</span>
+<span id="347"> 347</span>
+<span id="348"> 348</span>
+<span id="349"> 349</span>
+<span id="350"> 350</span>
+<span id="351"> 351</span>
+<span id="352"> 352</span>
+<span id="353"> 353</span>
+<span id="354"> 354</span>
+<span id="355"> 355</span>
+<span id="356"> 356</span>
+<span id="357"> 357</span>
+<span id="358"> 358</span>
+<span id="359"> 359</span>
+<span id="360"> 360</span>
+<span id="361"> 361</span>
+<span id="362"> 362</span>
+<span id="363"> 363</span>
+<span id="364"> 364</span>
+<span id="365"> 365</span>
+<span id="366"> 366</span>
+<span id="367"> 367</span>
+<span id="368"> 368</span>
+<span id="369"> 369</span>
+<span id="370"> 370</span>
+<span id="371"> 371</span>
+<span id="372"> 372</span>
+<span id="373"> 373</span>
+<span id="374"> 374</span>
+<span id="375"> 375</span>
+<span id="376"> 376</span>
+<span id="377"> 377</span>
+<span id="378"> 378</span>
+<span id="379"> 379</span>
+<span id="380"> 380</span>
+<span id="381"> 381</span>
+<span id="382"> 382</span>
+<span id="383"> 383</span>
+<span id="384"> 384</span>
+<span id="385"> 385</span>
+<span id="386"> 386</span>
+<span id="387"> 387</span>
+<span id="388"> 388</span>
+<span id="389"> 389</span>
+<span id="390"> 390</span>
+<span id="391"> 391</span>
+<span id="392"> 392</span>
+<span id="393"> 393</span>
+<span id="394"> 394</span>
+<span id="395"> 395</span>
+<span id="396"> 396</span>
+<span id="397"> 397</span>
+<span id="398"> 398</span>
+<span id="399"> 399</span>
+<span id="400"> 400</span>
+<span id="401"> 401</span>
+<span id="402"> 402</span>
+<span id="403"> 403</span>
+<span id="404"> 404</span>
+<span id="405"> 405</span>
+<span id="406"> 406</span>
+<span id="407"> 407</span>
+<span id="408"> 408</span>
+<span id="409"> 409</span>
+<span id="410"> 410</span>
+<span id="411"> 411</span>
+<span id="412"> 412</span>
+<span id="413"> 413</span>
+<span id="414"> 414</span>
+<span id="415"> 415</span>
+<span id="416"> 416</span>
+<span id="417"> 417</span>
+<span id="418"> 418</span>
+<span id="419"> 419</span>
+<span id="420"> 420</span>
+<span id="421"> 421</span>
+<span id="422"> 422</span>
+<span id="423"> 423</span>
+<span id="424"> 424</span>
+<span id="425"> 425</span>
+<span id="426"> 426</span>
+<span id="427"> 427</span>
+<span id="428"> 428</span>
+<span id="429"> 429</span>
+<span id="430"> 430</span>
+<span id="431"> 431</span>
+<span id="432"> 432</span>
+<span id="433"> 433</span>
+<span id="434"> 434</span>
+<span id="435"> 435</span>
+<span id="436"> 436</span>
+<span id="437"> 437</span>
+<span id="438"> 438</span>
+<span id="439"> 439</span>
+<span id="440"> 440</span>
+<span id="441"> 441</span>
+<span id="442"> 442</span>
+<span id="443"> 443</span>
+<span id="444"> 444</span>
+<span id="445"> 445</span>
+<span id="446"> 446</span>
+<span id="447"> 447</span>
+<span id="448"> 448</span>
+<span id="449"> 449</span>
+<span id="450"> 450</span>
+<span id="451"> 451</span>
+<span id="452"> 452</span>
+<span id="453"> 453</span>
+<span id="454"> 454</span>
+<span id="455"> 455</span>
+<span id="456"> 456</span>
+<span id="457"> 457</span>
+<span id="458"> 458</span>
+<span id="459"> 459</span>
+<span id="460"> 460</span>
+<span id="461"> 461</span>
+<span id="462"> 462</span>
+<span id="463"> 463</span>
+<span id="464"> 464</span>
+<span id="465"> 465</span>
+<span id="466"> 466</span>
+<span id="467"> 467</span>
+<span id="468"> 468</span>
+<span id="469"> 469</span>
+<span id="470"> 470</span>
+<span id="471"> 471</span>
+<span id="472"> 472</span>
+<span id="473"> 473</span>
+<span id="474"> 474</span>
+<span id="475"> 475</span>
+<span id="476"> 476</span>
+<span id="477"> 477</span>
+<span id="478"> 478</span>
+<span id="479"> 479</span>
+<span id="480"> 480</span>
+<span id="481"> 481</span>
+<span id="482"> 482</span>
+<span id="483"> 483</span>
+<span id="484"> 484</span>
+<span id="485"> 485</span>
+<span id="486"> 486</span>
+<span id="487"> 487</span>
+<span id="488"> 488</span>
+<span id="489"> 489</span>
+<span id="490"> 490</span>
+<span id="491"> 491</span>
+<span id="492"> 492</span>
+<span id="493"> 493</span>
+<span id="494"> 494</span>
+<span id="495"> 495</span>
+<span id="496"> 496</span>
+<span id="497"> 497</span>
+<span id="498"> 498</span>
+<span id="499"> 499</span>
+<span id="500"> 500</span>
+<span id="501"> 501</span>
+<span id="502"> 502</span>
+<span id="503"> 503</span>
+<span id="504"> 504</span>
+<span id="505"> 505</span>
+<span id="506"> 506</span>
+<span id="507"> 507</span>
+<span id="508"> 508</span>
+<span id="509"> 509</span>
+<span id="510"> 510</span>
+<span id="511"> 511</span>
+<span id="512"> 512</span>
+<span id="513"> 513</span>
+<span id="514"> 514</span>
+<span id="515"> 515</span>
+<span id="516"> 516</span>
+<span id="517"> 517</span>
+<span id="518"> 518</span>
+<span id="519"> 519</span>
+<span id="520"> 520</span>
+<span id="521"> 521</span>
+<span id="522"> 522</span>
+<span id="523"> 523</span>
+<span id="524"> 524</span>
+<span id="525"> 525</span>
+<span id="526"> 526</span>
+<span id="527"> 527</span>
+<span id="528"> 528</span>
+<span id="529"> 529</span>
+<span id="530"> 530</span>
+<span id="531"> 531</span>
+<span id="532"> 532</span>
+<span id="533"> 533</span>
+<span id="534"> 534</span>
+<span id="535"> 535</span>
+<span id="536"> 536</span>
+<span id="537"> 537</span>
+<span id="538"> 538</span>
+<span id="539"> 539</span>
+<span id="540"> 540</span>
+<span id="541"> 541</span>
+<span id="542"> 542</span>
+<span id="543"> 543</span>
+<span id="544"> 544</span>
+<span id="545"> 545</span>
+<span id="546"> 546</span>
+<span id="547"> 547</span>
+<span id="548"> 548</span>
+<span id="549"> 549</span>
+<span id="550"> 550</span>
+<span id="551"> 551</span>
+<span id="552"> 552</span>
+<span id="553"> 553</span>
+<span id="554"> 554</span>
+<span id="555"> 555</span>
+<span id="556"> 556</span>
+<span id="557"> 557</span>
+<span id="558"> 558</span>
+<span id="559"> 559</span>
+<span id="560"> 560</span>
+<span id="561"> 561</span>
+<span id="562"> 562</span>
+<span id="563"> 563</span>
+<span id="564"> 564</span>
+<span id="565"> 565</span>
+<span id="566"> 566</span>
+<span id="567"> 567</span>
+<span id="568"> 568</span>
+<span id="569"> 569</span>
+<span id="570"> 570</span>
+<span id="571"> 571</span>
+<span id="572"> 572</span>
+<span id="573"> 573</span>
+<span id="574"> 574</span>
+<span id="575"> 575</span>
+<span id="576"> 576</span>
+<span id="577"> 577</span>
+<span id="578"> 578</span>
+<span id="579"> 579</span>
+<span id="580"> 580</span>
+<span id="581"> 581</span>
+<span id="582"> 582</span>
+<span id="583"> 583</span>
+<span id="584"> 584</span>
+<span id="585"> 585</span>
+<span id="586"> 586</span>
+<span id="587"> 587</span>
+<span id="588"> 588</span>
+<span id="589"> 589</span>
+<span id="590"> 590</span>
+<span id="591"> 591</span>
+<span id="592"> 592</span>
+<span id="593"> 593</span>
+<span id="594"> 594</span>
+<span id="595"> 595</span>
+<span id="596"> 596</span>
+<span id="597"> 597</span>
+<span id="598"> 598</span>
+<span id="599"> 599</span>
+<span id="600"> 600</span>
+<span id="601"> 601</span>
+<span id="602"> 602</span>
+<span id="603"> 603</span>
+<span id="604"> 604</span>
+<span id="605"> 605</span>
+<span id="606"> 606</span>
+<span id="607"> 607</span>
+<span id="608"> 608</span>
+<span id="609"> 609</span>
+<span id="610"> 610</span>
+<span id="611"> 611</span>
+<span id="612"> 612</span>
+<span id="613"> 613</span>
+<span id="614"> 614</span>
+<span id="615"> 615</span>
+<span id="616"> 616</span>
+<span id="617"> 617</span>
+<span id="618"> 618</span>
+<span id="619"> 619</span>
+<span id="620"> 620</span>
+<span id="621"> 621</span>
+<span id="622"> 622</span>
+<span id="623"> 623</span>
+<span id="624"> 624</span>
+<span id="625"> 625</span>
+<span id="626"> 626</span>
+<span id="627"> 627</span>
+<span id="628"> 628</span>
+<span id="629"> 629</span>
+<span id="630"> 630</span>
+<span id="631"> 631</span>
+<span id="632"> 632</span>
+<span id="633"> 633</span>
+<span id="634"> 634</span>
+<span id="635"> 635</span>
+<span id="636"> 636</span>
+<span id="637"> 637</span>
+<span id="638"> 638</span>
+<span id="639"> 639</span>
+<span id="640"> 640</span>
+<span id="641"> 641</span>
+<span id="642"> 642</span>
+<span id="643"> 643</span>
+<span id="644"> 644</span>
+<span id="645"> 645</span>
+<span id="646"> 646</span>
+<span id="647"> 647</span>
+<span id="648"> 648</span>
+<span id="649"> 649</span>
+<span id="650"> 650</span>
+<span id="651"> 651</span>
+<span id="652"> 652</span>
+<span id="653"> 653</span>
+<span id="654"> 654</span>
+<span id="655"> 655</span>
+<span id="656"> 656</span>
+<span id="657"> 657</span>
+<span id="658"> 658</span>
+<span id="659"> 659</span>
+<span id="660"> 660</span>
+<span id="661"> 661</span>
+<span id="662"> 662</span>
+<span id="663"> 663</span>
+<span id="664"> 664</span>
+<span id="665"> 665</span>
+<span id="666"> 666</span>
+<span id="667"> 667</span>
+<span id="668"> 668</span>
+<span id="669"> 669</span>
+<span id="670"> 670</span>
+<span id="671"> 671</span>
+<span id="672"> 672</span>
+<span id="673"> 673</span>
+<span id="674"> 674</span>
+<span id="675"> 675</span>
+<span id="676"> 676</span>
+<span id="677"> 677</span>
+<span id="678"> 678</span>
+<span id="679"> 679</span>
+<span id="680"> 680</span>
+<span id="681"> 681</span>
+<span id="682"> 682</span>
+<span id="683"> 683</span>
+<span id="684"> 684</span>
+<span id="685"> 685</span>
+<span id="686"> 686</span>
+<span id="687"> 687</span>
+<span id="688"> 688</span>
+<span id="689"> 689</span>
+<span id="690"> 690</span>
+<span id="691"> 691</span>
+<span id="692"> 692</span>
+<span id="693"> 693</span>
+<span id="694"> 694</span>
+<span id="695"> 695</span>
+<span id="696"> 696</span>
+<span id="697"> 697</span>
+<span id="698"> 698</span>
+<span id="699"> 699</span>
+<span id="700"> 700</span>
+<span id="701"> 701</span>
+<span id="702"> 702</span>
+<span id="703"> 703</span>
+<span id="704"> 704</span>
+<span id="705"> 705</span>
+<span id="706"> 706</span>
+<span id="707"> 707</span>
+<span id="708"> 708</span>
+<span id="709"> 709</span>
+<span id="710"> 710</span>
+<span id="711"> 711</span>
+<span id="712"> 712</span>
+<span id="713"> 713</span>
+<span id="714"> 714</span>
+<span id="715"> 715</span>
+<span id="716"> 716</span>
+<span id="717"> 717</span>
+<span id="718"> 718</span>
+<span id="719"> 719</span>
+<span id="720"> 720</span>
+<span id="721"> 721</span>
+<span id="722"> 722</span>
+<span id="723"> 723</span>
+<span id="724"> 724</span>
+<span id="725"> 725</span>
+<span id="726"> 726</span>
+<span id="727"> 727</span>
+<span id="728"> 728</span>
+<span id="729"> 729</span>
+<span id="730"> 730</span>
+<span id="731"> 731</span>
+<span id="732"> 732</span>
+<span id="733"> 733</span>
+<span id="734"> 734</span>
+<span id="735"> 735</span>
+<span id="736"> 736</span>
+<span id="737"> 737</span>
+<span id="738"> 738</span>
+<span id="739"> 739</span>
+<span id="740"> 740</span>
+<span id="741"> 741</span>
+<span id="742"> 742</span>
+<span id="743"> 743</span>
+<span id="744"> 744</span>
+<span id="745"> 745</span>
+<span id="746"> 746</span>
+<span id="747"> 747</span>
+<span id="748"> 748</span>
+<span id="749"> 749</span>
+<span id="750"> 750</span>
+<span id="751"> 751</span>
+<span id="752"> 752</span>
+<span id="753"> 753</span>
+<span id="754"> 754</span>
+<span id="755"> 755</span>
+<span id="756"> 756</span>
+<span id="757"> 757</span>
+<span id="758"> 758</span>
+<span id="759"> 759</span>
+<span id="760"> 760</span>
+<span id="761"> 761</span>
+<span id="762"> 762</span>
+<span id="763"> 763</span>
+<span id="764"> 764</span>
+<span id="765"> 765</span>
+<span id="766"> 766</span>
+<span id="767"> 767</span>
+<span id="768"> 768</span>
+<span id="769"> 769</span>
+<span id="770"> 770</span>
+<span id="771"> 771</span>
+<span id="772"> 772</span>
+<span id="773"> 773</span>
+<span id="774"> 774</span>
+<span id="775"> 775</span>
+<span id="776"> 776</span>
+<span id="777"> 777</span>
+<span id="778"> 778</span>
+<span id="779"> 779</span>
+<span id="780"> 780</span>
+<span id="781"> 781</span>
+<span id="782"> 782</span>
+<span id="783"> 783</span>
+<span id="784"> 784</span>
+<span id="785"> 785</span>
+<span id="786"> 786</span>
+<span id="787"> 787</span>
+<span id="788"> 788</span>
+<span id="789"> 789</span>
+<span id="790"> 790</span>
+<span id="791"> 791</span>
+<span id="792"> 792</span>
+<span id="793"> 793</span>
+<span id="794"> 794</span>
+<span id="795"> 795</span>
+<span id="796"> 796</span>
+<span id="797"> 797</span>
+<span id="798"> 798</span>
+<span id="799"> 799</span>
+<span id="800"> 800</span>
+<span id="801"> 801</span>
+<span id="802"> 802</span>
+<span id="803"> 803</span>
+<span id="804"> 804</span>
+<span id="805"> 805</span>
+<span id="806"> 806</span>
+<span id="807"> 807</span>
+<span id="808"> 808</span>
+<span id="809"> 809</span>
+<span id="810"> 810</span>
+<span id="811"> 811</span>
+<span id="812"> 812</span>
+<span id="813"> 813</span>
+<span id="814"> 814</span>
+<span id="815"> 815</span>
+<span id="816"> 816</span>
+<span id="817"> 817</span>
+<span id="818"> 818</span>
+<span id="819"> 819</span>
+<span id="820"> 820</span>
+<span id="821"> 821</span>
+<span id="822"> 822</span>
+<span id="823"> 823</span>
+<span id="824"> 824</span>
+<span id="825"> 825</span>
+<span id="826"> 826</span>
+<span id="827"> 827</span>
+<span id="828"> 828</span>
+<span id="829"> 829</span>
+<span id="830"> 830</span>
+<span id="831"> 831</span>
+<span id="832"> 832</span>
+<span id="833"> 833</span>
+<span id="834"> 834</span>
+<span id="835"> 835</span>
+<span id="836"> 836</span>
+<span id="837"> 837</span>
+<span id="838"> 838</span>
+<span id="839"> 839</span>
+<span id="840"> 840</span>
+<span id="841"> 841</span>
+<span id="842"> 842</span>
+<span id="843"> 843</span>
+<span id="844"> 844</span>
+<span id="845"> 845</span>
+<span id="846"> 846</span>
+<span id="847"> 847</span>
+<span id="848"> 848</span>
+<span id="849"> 849</span>
+<span id="850"> 850</span>
+<span id="851"> 851</span>
+<span id="852"> 852</span>
+<span id="853"> 853</span>
+<span id="854"> 854</span>
+<span id="855"> 855</span>
+<span id="856"> 856</span>
+<span id="857"> 857</span>
+<span id="858"> 858</span>
+<span id="859"> 859</span>
+<span id="860"> 860</span>
+<span id="861"> 861</span>
+<span id="862"> 862</span>
+<span id="863"> 863</span>
+<span id="864"> 864</span>
+<span id="865"> 865</span>
+<span id="866"> 866</span>
+<span id="867"> 867</span>
+<span id="868"> 868</span>
+<span id="869"> 869</span>
+<span id="870"> 870</span>
+<span id="871"> 871</span>
+<span id="872"> 872</span>
+<span id="873"> 873</span>
+<span id="874"> 874</span>
+<span id="875"> 875</span>
+<span id="876"> 876</span>
+<span id="877"> 877</span>
+<span id="878"> 878</span>
+<span id="879"> 879</span>
+<span id="880"> 880</span>
+<span id="881"> 881</span>
+<span id="882"> 882</span>
+<span id="883"> 883</span>
+<span id="884"> 884</span>
+<span id="885"> 885</span>
+<span id="886"> 886</span>
+<span id="887"> 887</span>
+<span id="888"> 888</span>
+<span id="889"> 889</span>
+<span id="890"> 890</span>
+<span id="891"> 891</span>
+<span id="892"> 892</span>
+<span id="893"> 893</span>
+<span id="894"> 894</span>
+<span id="895"> 895</span>
+<span id="896"> 896</span>
+<span id="897"> 897</span>
+<span id="898"> 898</span>
+<span id="899"> 899</span>
+<span id="900"> 900</span>
+<span id="901"> 901</span>
+<span id="902"> 902</span>
+<span id="903"> 903</span>
+<span id="904"> 904</span>
+<span id="905"> 905</span>
+<span id="906"> 906</span>
+<span id="907"> 907</span>
+<span id="908"> 908</span>
+<span id="909"> 909</span>
+<span id="910"> 910</span>
+<span id="911"> 911</span>
+<span id="912"> 912</span>
+<span id="913"> 913</span>
+<span id="914"> 914</span>
+<span id="915"> 915</span>
+<span id="916"> 916</span>
+<span id="917"> 917</span>
+<span id="918"> 918</span>
+<span id="919"> 919</span>
+<span id="920"> 920</span>
+<span id="921"> 921</span>
+<span id="922"> 922</span>
+<span id="923"> 923</span>
+<span id="924"> 924</span>
+<span id="925"> 925</span>
+<span id="926"> 926</span>
+<span id="927"> 927</span>
+<span id="928"> 928</span>
+<span id="929"> 929</span>
+<span id="930"> 930</span>
+<span id="931"> 931</span>
+<span id="932"> 932</span>
+<span id="933"> 933</span>
+<span id="934"> 934</span>
+<span id="935"> 935</span>
+<span id="936"> 936</span>
+<span id="937"> 937</span>
+<span id="938"> 938</span>
+<span id="939"> 939</span>
+<span id="940"> 940</span>
+<span id="941"> 941</span>
+<span id="942"> 942</span>
+<span id="943"> 943</span>
+<span id="944"> 944</span>
+<span id="945"> 945</span>
+<span id="946"> 946</span>
+<span id="947"> 947</span>
+<span id="948"> 948</span>
+<span id="949"> 949</span>
+<span id="950"> 950</span>
+<span id="951"> 951</span>
+<span id="952"> 952</span>
+<span id="953"> 953</span>
+<span id="954"> 954</span>
+<span id="955"> 955</span>
+<span id="956"> 956</span>
+<span id="957"> 957</span>
+<span id="958"> 958</span>
+<span id="959"> 959</span>
+<span id="960"> 960</span>
+<span id="961"> 961</span>
+<span id="962"> 962</span>
+<span id="963"> 963</span>
+<span id="964"> 964</span>
+<span id="965"> 965</span>
+<span id="966"> 966</span>
+<span id="967"> 967</span>
+<span id="968"> 968</span>
+<span id="969"> 969</span>
+<span id="970"> 970</span>
+<span id="971"> 971</span>
+<span id="972"> 972</span>
+<span id="973"> 973</span>
+<span id="974"> 974</span>
+<span id="975"> 975</span>
+<span id="976"> 976</span>
+<span id="977"> 977</span>
+<span id="978"> 978</span>
+<span id="979"> 979</span>
+<span id="980"> 980</span>
+<span id="981"> 981</span>
+<span id="982"> 982</span>
+<span id="983"> 983</span>
+<span id="984"> 984</span>
+<span id="985"> 985</span>
+<span id="986"> 986</span>
+<span id="987"> 987</span>
+<span id="988"> 988</span>
+<span id="989"> 989</span>
+<span id="990"> 990</span>
+<span id="991"> 991</span>
+<span id="992"> 992</span>
+<span id="993"> 993</span>
+<span id="994"> 994</span>
+<span id="995"> 995</span>
+<span id="996"> 996</span>
+<span id="997"> 997</span>
+<span id="998"> 998</span>
+<span id="999"> 999</span>
+<span id="1000">1000</span>
+<span id="1001">1001</span>
+<span id="1002">1002</span>
+<span id="1003">1003</span>
+<span id="1004">1004</span>
+<span id="1005">1005</span>
+<span id="1006">1006</span>
+<span id="1007">1007</span>
+<span id="1008">1008</span>
+<span id="1009">1009</span>
+<span id="1010">1010</span>
+<span id="1011">1011</span>
+<span id="1012">1012</span>
+<span id="1013">1013</span>
+<span id="1014">1014</span>
+<span id="1015">1015</span>
+<span id="1016">1016</span>
+<span id="1017">1017</span>
+<span id="1018">1018</span>
+<span id="1019">1019</span>
+<span id="1020">1020</span>
+<span id="1021">1021</span>
+<span id="1022">1022</span>
+<span id="1023">1023</span>
+<span id="1024">1024</span>
+<span id="1025">1025</span>
+<span id="1026">1026</span>
+<span id="1027">1027</span>
+<span id="1028">1028</span>
+<span id="1029">1029</span>
+<span id="1030">1030</span>
+<span id="1031">1031</span>
+<span id="1032">1032</span>
+<span id="1033">1033</span>
+<span id="1034">1034</span>
+<span id="1035">1035</span>
+<span id="1036">1036</span>
+<span id="1037">1037</span>
+<span id="1038">1038</span>
+<span id="1039">1039</span>
+<span id="1040">1040</span>
+<span id="1041">1041</span>
+<span id="1042">1042</span>
+<span id="1043">1043</span>
+<span id="1044">1044</span>
+<span id="1045">1045</span>
+<span id="1046">1046</span>
+<span id="1047">1047</span>
+<span id="1048">1048</span>
+<span id="1049">1049</span>
+<span id="1050">1050</span>
+<span id="1051">1051</span>
+<span id="1052">1052</span>
+<span id="1053">1053</span>
+<span id="1054">1054</span>
+<span id="1055">1055</span>
+<span id="1056">1056</span>
+<span id="1057">1057</span>
+<span id="1058">1058</span>
+<span id="1059">1059</span>
+<span id="1060">1060</span>
+<span id="1061">1061</span>
+<span id="1062">1062</span>
+<span id="1063">1063</span>
+<span id="1064">1064</span>
+<span id="1065">1065</span>
+<span id="1066">1066</span>
+<span id="1067">1067</span>
+<span id="1068">1068</span>
+<span id="1069">1069</span>
+<span id="1070">1070</span>
+<span id="1071">1071</span>
+<span id="1072">1072</span>
+<span id="1073">1073</span>
+<span id="1074">1074</span>
+<span id="1075">1075</span>
+<span id="1076">1076</span>
+<span id="1077">1077</span>
+<span id="1078">1078</span>
+<span id="1079">1079</span>
+<span id="1080">1080</span>
+<span id="1081">1081</span>
+<span id="1082">1082</span>
+<span id="1083">1083</span>
+<span id="1084">1084</span>
+<span id="1085">1085</span>
+<span id="1086">1086</span>
+<span id="1087">1087</span>
+<span id="1088">1088</span>
+<span id="1089">1089</span>
+<span id="1090">1090</span>
+<span id="1091">1091</span>
+<span id="1092">1092</span>
+<span id="1093">1093</span>
+<span id="1094">1094</span>
+<span id="1095">1095</span>
+<span id="1096">1096</span>
+<span id="1097">1097</span>
+<span id="1098">1098</span>
+<span id="1099">1099</span>
+<span id="1100">1100</span>
+<span id="1101">1101</span>
+<span id="1102">1102</span>
+<span id="1103">1103</span>
+<span id="1104">1104</span>
+<span id="1105">1105</span>
+<span id="1106">1106</span>
+<span id="1107">1107</span>
+<span id="1108">1108</span>
+<span id="1109">1109</span>
+<span id="1110">1110</span>
+<span id="1111">1111</span>
+<span id="1112">1112</span>
+<span id="1113">1113</span>
+<span id="1114">1114</span>
+<span id="1115">1115</span>
+<span id="1116">1116</span>
+<span id="1117">1117</span>
+<span id="1118">1118</span>
+<span id="1119">1119</span>
+<span id="1120">1120</span>
+<span id="1121">1121</span>
+<span id="1122">1122</span>
+<span id="1123">1123</span>
+<span id="1124">1124</span>
+<span id="1125">1125</span>
+<span id="1126">1126</span>
+<span id="1127">1127</span>
+<span id="1128">1128</span>
+<span id="1129">1129</span>
+<span id="1130">1130</span>
+<span id="1131">1131</span>
+<span id="1132">1132</span>
+<span id="1133">1133</span>
+<span id="1134">1134</span>
+<span id="1135">1135</span>
+<span id="1136">1136</span>
+<span id="1137">1137</span>
+<span id="1138">1138</span>
+<span id="1139">1139</span>
+<span id="1140">1140</span>
+<span id="1141">1141</span>
+<span id="1142">1142</span>
+<span id="1143">1143</span>
+<span id="1144">1144</span>
+<span id="1145">1145</span>
+<span id="1146">1146</span>
+<span id="1147">1147</span>
+<span id="1148">1148</span>
+<span id="1149">1149</span>
+<span id="1150">1150</span>
+<span id="1151">1151</span>
+<span id="1152">1152</span>
+<span id="1153">1153</span>
+<span id="1154">1154</span>
+<span id="1155">1155</span>
+<span id="1156">1156</span>
+<span id="1157">1157</span>
+<span id="1158">1158</span>
+<span id="1159">1159</span>
+<span id="1160">1160</span>
+<span id="1161">1161</span>
+<span id="1162">1162</span>
+<span id="1163">1163</span>
+<span id="1164">1164</span>
+<span id="1165">1165</span>
+<span id="1166">1166</span>
+<span id="1167">1167</span>
+<span id="1168">1168</span>
+<span id="1169">1169</span>
+<span id="1170">1170</span>
+<span id="1171">1171</span>
+<span id="1172">1172</span>
+<span id="1173">1173</span>
+<span id="1174">1174</span>
+<span id="1175">1175</span>
+<span id="1176">1176</span>
+<span id="1177">1177</span>
+<span id="1178">1178</span>
+<span id="1179">1179</span>
+<span id="1180">1180</span>
+<span id="1181">1181</span>
+<span id="1182">1182</span>
+<span id="1183">1183</span>
+<span id="1184">1184</span>
+<span id="1185">1185</span>
+<span id="1186">1186</span>
+<span id="1187">1187</span>
+<span id="1188">1188</span>
+<span id="1189">1189</span>
+<span id="1190">1190</span>
+<span id="1191">1191</span>
+<span id="1192">1192</span>
+<span id="1193">1193</span>
+<span id="1194">1194</span>
+<span id="1195">1195</span>
+<span id="1196">1196</span>
+<span id="1197">1197</span>
+<span id="1198">1198</span>
+<span id="1199">1199</span>
+<span id="1200">1200</span>
+<span id="1201">1201</span>
+<span id="1202">1202</span>
+<span id="1203">1203</span>
+<span id="1204">1204</span>
+<span id="1205">1205</span>
+<span id="1206">1206</span>
+<span id="1207">1207</span>
+<span id="1208">1208</span>
+<span id="1209">1209</span>
+<span id="1210">1210</span>
+<span id="1211">1211</span>
+<span id="1212">1212</span>
+<span id="1213">1213</span>
+<span id="1214">1214</span>
+<span id="1215">1215</span>
+<span id="1216">1216</span>
+<span id="1217">1217</span>
+<span id="1218">1218</span>
+<span id="1219">1219</span>
+<span id="1220">1220</span>
+<span id="1221">1221</span>
+<span id="1222">1222</span>
+<span id="1223">1223</span>
+<span id="1224">1224</span>
+<span id="1225">1225</span>
+<span id="1226">1226</span>
+<span id="1227">1227</span>
+<span id="1228">1228</span>
+<span id="1229">1229</span>
+<span id="1230">1230</span>
+<span id="1231">1231</span>
+<span id="1232">1232</span>
+<span id="1233">1233</span>
+<span id="1234">1234</span>
+<span id="1235">1235</span>
+<span id="1236">1236</span>
+<span id="1237">1237</span>
+<span id="1238">1238</span>
+<span id="1239">1239</span>
+<span id="1240">1240</span>
+<span id="1241">1241</span>
+<span id="1242">1242</span>
+<span id="1243">1243</span>
+<span id="1244">1244</span>
+<span id="1245">1245</span>
+<span id="1246">1246</span>
+<span id="1247">1247</span>
+<span id="1248">1248</span>
+<span id="1249">1249</span>
+<span id="1250">1250</span>
+<span id="1251">1251</span>
+<span id="1252">1252</span>
+<span id="1253">1253</span>
+<span id="1254">1254</span>
+<span id="1255">1255</span>
+<span id="1256">1256</span>
+<span id="1257">1257</span>
+<span id="1258">1258</span>
+<span id="1259">1259</span>
+<span id="1260">1260</span>
+<span id="1261">1261</span>
+<span id="1262">1262</span>
+<span id="1263">1263</span>
+<span id="1264">1264</span>
+<span id="1265">1265</span>
+<span id="1266">1266</span>
+<span id="1267">1267</span>
+<span id="1268">1268</span>
+<span id="1269">1269</span>
+<span id="1270">1270</span>
+<span id="1271">1271</span>
+<span id="1272">1272</span>
+<span id="1273">1273</span>
+<span id="1274">1274</span>
+<span id="1275">1275</span>
+<span id="1276">1276</span>
+<span id="1277">1277</span>
+<span id="1278">1278</span>
+<span id="1279">1279</span>
+<span id="1280">1280</span>
+<span id="1281">1281</span>
+<span id="1282">1282</span>
+<span id="1283">1283</span>
+<span id="1284">1284</span>
+<span id="1285">1285</span>
+<span id="1286">1286</span>
+<span id="1287">1287</span>
+<span id="1288">1288</span>
+<span id="1289">1289</span>
+<span id="1290">1290</span>
+<span id="1291">1291</span>
+<span id="1292">1292</span>
+<span id="1293">1293</span>
+<span id="1294">1294</span>
+<span id="1295">1295</span>
+<span id="1296">1296</span>
+<span id="1297">1297</span>
+<span id="1298">1298</span>
+<span id="1299">1299</span>
+<span id="1300">1300</span>
+<span id="1301">1301</span>
+<span id="1302">1302</span>
+<span id="1303">1303</span>
+<span id="1304">1304</span>
+<span id="1305">1305</span>
+<span id="1306">1306</span>
+<span id="1307">1307</span>
+<span id="1308">1308</span>
+<span id="1309">1309</span>
+<span id="1310">1310</span>
+<span id="1311">1311</span>
+<span id="1312">1312</span>
+</pre><div class="example-wrap"><pre class="rust ">
+<span class="attribute">#![<span class="ident">warn</span>(<span class="ident">missing_docs</span>)]</span>
+<span class="doccomment">//! A macro which makes errors easy to write</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Minimum type is like this:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         Variant1 {}</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//! Both ``pub`` and non-public types may be declared, and all meta attributes</span>
+<span class="doccomment">//! (such as ``#[derive(Debug)]``) are forwarded as is. The `Debug` must be</span>
+<span class="doccomment">//! implemented (but you may do that yourself if you like). The documentation</span>
+<span class="doccomment">//! comments ``/// something`` (as well as other meta attrbiutes) on variants</span>
+<span class="doccomment">//! are allowed.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! # Allowed Syntax</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! You may add arbitrary parameters to any struct variant:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         /// IO Error</span>
+<span class="doccomment">//!         Io(err: std::io::Error) {}</span>
+<span class="doccomment">//!         /// Utf8 Error</span>
+<span class="doccomment">//!         Utf8(err: std::str::Utf8Error) {}</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Note unlike in normal Enum declarations you declare names of fields (which</span>
+<span class="doccomment">//! are omitted from type). How they can be used is outlined below.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Now you might have noticed trailing braces `{}`. They are used to define</span>
+<span class="doccomment">//! implementations. By default:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! * `Error::description()` returns variant name as static string</span>
+<span class="doccomment">//! * `Error::cause()` returns None (even if type wraps some value)</span>
+<span class="doccomment">//! * `Display` outputs `description()`</span>
+<span class="doccomment">//! * No `From` implementations are defined</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! To define description simply add `description(value)` inside braces:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         Io(err: std::io::Error) {</span>
+<span class="doccomment">//!             description(err.description())</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!         Utf8(err: std::str::Utf8Error) {</span>
+<span class="doccomment">//!             description(&quot;utf8 error&quot;)</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Normal rules for borrowing apply. So most of the time description either</span>
+<span class="doccomment">//! returns constant string or forwards description from enclosed type.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! To change `cause` method to return some error, add `cause(value)`, for</span>
+<span class="doccomment">//! example:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         Io(err: std::io::Error) {</span>
+<span class="doccomment">//!             cause(err)</span>
+<span class="doccomment">//!             description(err.description())</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!         Utf8(err: std::str::Utf8Error) {</span>
+<span class="doccomment">//!             description(&quot;utf8 error&quot;)</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!         Other(err: Box&lt;std::error::Error&gt;) {</span>
+<span class="doccomment">//!             cause(&amp;**err)</span>
+<span class="doccomment">//!             description(err.description())</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//! Note you don&#39;t need to wrap value in `Some`, its implicit. In case you want</span>
+<span class="doccomment">//! `None` returned just omit the `cause`. You can&#39;t return `None`</span>
+<span class="doccomment">//! conditionally.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! To change how each clause is `Display`ed add `display(pattern,..args)`,</span>
+<span class="doccomment">//! for example:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         Io(err: std::io::Error) {</span>
+<span class="doccomment">//!             display(&quot;I/O error: {}&quot;, err)</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!         Utf8(err: std::str::Utf8Error) {</span>
+<span class="doccomment">//!             display(&quot;Utf8 error, valid up to {}&quot;, err.valid_up_to())</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! If you need a reference to the error when `Display`ing, you can instead use</span>
+<span class="doccomment">//! `display(x) -&gt; (pattern, ..args)`, where `x` sets the name of the reference.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! use std::error::Error; // put methods like `description()` of this trait into scope</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         Io(err: std::io::Error) {</span>
+<span class="doccomment">//!             display(x) -&gt; (&quot;{}: {}&quot;, x.description(), err)</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!         Utf8(err: std::str::Utf8Error) {</span>
+<span class="doccomment">//!             display(self_) -&gt; (&quot;{}, valid up to {}&quot;, self_.description(), err.valid_up_to())</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! To convert to the type from any other, use one of the three forms of</span>
+<span class="doccomment">//! `from` clause.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! For example, to convert simple wrapper use bare `from()`:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         Io(err: std::io::Error) {</span>
+<span class="doccomment">//!             from()</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! This implements ``From&lt;io::Error&gt;``.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! To convert to singleton enumeration type (discarding the value), use</span>
+<span class="doccomment">//! the `from(type)` form:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         FormatError {</span>
+<span class="doccomment">//!             from(std::fmt::Error)</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! And the most powerful form is `from(var: type) -&gt; (arguments...)`. It</span>
+<span class="doccomment">//! might be used to convert to type with multiple arguments or for arbitrary</span>
+<span class="doccomment">//! value conversions:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum SomeError {</span>
+<span class="doccomment">//!         FailedOperation(s: &amp;&#39;static str, errno: i32) {</span>
+<span class="doccomment">//!             from(errno: i32) -&gt; (&quot;os error&quot;, errno)</span>
+<span class="doccomment">//!             from(e: std::io::Error) -&gt; (&quot;io error&quot;, e.raw_os_error().unwrap())</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!         /// Converts from both kinds of utf8 errors</span>
+<span class="doccomment">//!         Utf8(err: std::str::Utf8Error) {</span>
+<span class="doccomment">//!             from()</span>
+<span class="doccomment">//!             from(err: std::string::FromUtf8Error) -&gt; (err.utf8_error())</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//! # Context</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Since quick-error 1.1 we also have a `context` declaration, which is</span>
+<span class="doccomment">//! similar to (the longest form of) `from`, but allows adding some context to</span>
+<span class="doccomment">//! the error. We need a longer example to demonstrate this:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! # #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # use std::io;</span>
+<span class="doccomment">//! # use std::fs::File;</span>
+<span class="doccomment">//! # use std::path::{Path, PathBuf};</span>
+<span class="doccomment">//! #</span>
+<span class="doccomment">//! use quick_error::ResultExt;</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum Error {</span>
+<span class="doccomment">//!         File(filename: PathBuf, err: io::Error) {</span>
+<span class="doccomment">//!             context(path: &amp;&#39;a Path, err: io::Error)</span>
+<span class="doccomment">//!                 -&gt; (path.to_path_buf(), err)</span>
+<span class="doccomment">//!         }</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! fn openfile(path: &amp;Path) -&gt; Result&lt;(), Error&gt; {</span>
+<span class="doccomment">//!     try!(File::open(path).context(path));</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//!     // If we didn&#39;t have context, the line above would be written as;</span>
+<span class="doccomment">//!     //</span>
+<span class="doccomment">//!     // try!(File::open(path)</span>
+<span class="doccomment">//!     //     .map_err(|err| Error::File(path.to_path_buf(), err)));</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//!     Ok(())</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! # fn main() {</span>
+<span class="doccomment">//! #     openfile(Path::new(&quot;/etc/somefile&quot;)).ok();</span>
+<span class="doccomment">//! # }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Each `context(a: A, b: B)` clause implements</span>
+<span class="doccomment">//! `From&lt;Context&lt;A, B&gt;&gt; for Error`. Which means multiple `context` clauses</span>
+<span class="doccomment">//! are a subject to the normal coherence rules. Unfortunately, we can&#39;t</span>
+<span class="doccomment">//! provide full support of generics for the context, but you may either use a</span>
+<span class="doccomment">//! lifetime `&#39;a` for references or `AsRef&lt;Type&gt;` (the latter means `A:</span>
+<span class="doccomment">//! AsRef&lt;Type&gt;`, and `Type` must be concrete). It&#39;s also occasionally useful</span>
+<span class="doccomment">//! to use a tuple as a type of the first argument.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! You also need to `use quick_error::ResultExt` extension trait to get</span>
+<span class="doccomment">//! working `.context()` method.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! More info on context in [this article](http://bit.ly/1PsuxDt).</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! All forms of `from`, `display`, `description`, `cause`, and `context`</span>
+<span class="doccomment">//! clauses can be combined and put in arbitrary order. Only `from` and</span>
+<span class="doccomment">//! `context` can be used multiple times in single variant of enumeration.</span>
+<span class="doccomment">//! Docstrings are also okay.  Empty braces can be omitted as of quick_error</span>
+<span class="doccomment">//! 0.1.3.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! # Private Enums</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Since quick-error 1.2.0 we  have a way to make a private enum that is</span>
+<span class="doccomment">//! wrapped by public structure:</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//! #[macro_use] extern crate quick_error;</span>
+<span class="doccomment">//! # fn main() {}</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! quick_error! {</span>
+<span class="doccomment">//!     #[derive(Debug)]</span>
+<span class="doccomment">//!     pub enum PubError wraps ErrorEnum {</span>
+<span class="doccomment">//!         Variant1 {}</span>
+<span class="doccomment">//!     }</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! This generates data structures like this</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```rust</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! pub struct PubError(ErrorEnum);</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! enum ErrorEnum {</span>
+<span class="doccomment">//!     Variant1,</span>
+<span class="doccomment">//! }</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! ```</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! Which in turn allows you to export just `PubError` in your crate and keep</span>
+<span class="doccomment">//! actual enumeration private to the crate. This is useful to keep backwards</span>
+<span class="doccomment">//! compatibility for error types. Currently there is no shorcuts to define</span>
+<span class="doccomment">//! error constructors for the inner type, but we consider adding some in</span>
+<span class="doccomment">//! future versions.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! It&#39;s possible to declare internal enum as public too.</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//!</span>
+
+<span class="attribute">#![<span class="ident">no_std</span>]</span>
+
+<span class="doccomment">/// Main macro that does all the work</span>
+<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quick_error</span> {
+
+    (   $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>:<span class="ident">tt</span>)<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [<span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span> ]
+            <span class="ident">items</span> [] <span class="ident">buf</span> []
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>)<span class="op">*</span> ]);
+    };
+    (   $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>:<span class="ident">tt</span>)<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [<span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span> ]
+            <span class="ident">items</span> [] <span class="ident">buf</span> []
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>)<span class="op">*</span> ]);
+    };
+
+    (   $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="ident">wraps</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>:<span class="ident">tt</span>)<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">WRAPPER</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> [ <span class="kw">pub</span> <span class="kw">struct</span> ] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="kw-2">*</span>);
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [<span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span> ]
+            <span class="ident">items</span> [] <span class="ident">buf</span> []
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>)<span class="op">*</span> ]);
+    };
+
+    (   $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="ident">wraps</span> <span class="kw">pub</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>:<span class="ident">tt</span>)<span c [...]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">WRAPPER</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> [ <span class="kw">pub</span> <span class="kw">struct</span> ] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="kw-2">*</span>);
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [<span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span> ]
+            <span class="ident">items</span> [] <span class="ident">buf</span> []
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>)<span class="op">*</span> ]);
+    };
+    (   $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="ident">wraps</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>:<span class="ident">tt</span>)<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">WRAPPER</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> [ <span class="kw">struct</span> ] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="kw-2">*</span>);
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [<span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span> ]
+            <span class="ident">items</span> [] <span class="ident">buf</span> []
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>)<span class="op">*</span> ]);
+    };
+
+    (   $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="ident">wraps</span> <span class="kw">pub</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>:<span class="ident">tt</span>)<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">WRAPPER</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> [ <span class="kw">struct</span> ] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="kw-2">*</span>);
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [<span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">enum_name</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span> ]
+            <span class="ident">items</span> [] <span class="ident">buf</span> []
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">chunks</span>)<span class="op">*</span> ]);
+    };
+
+
+    (
+        <span class="ident">WRAPPER</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">internal</span>:<span class="ident">ident</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">strdef</span>:<span class="ident">tt</span>)<span class="op">*</span> ] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">strname</span>:<span class="ident">ident</span>
+        $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span>
+        $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">strdef</span>)<span class="op">*</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">strname</span> ( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">internal</span> );
+
+        <span class="kw">impl</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">strname</span> {
+            <span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Formatter</span>)
+                <span class="op">-</span><span class="op">&gt;</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="prelude-ty">Result</span>
+            {
+                ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Display</span>::<span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="number">0</span>, <span class="ident">f</span>)
+            }
+        }
+
+        <span class="kw">impl</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">internal</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">strname</span> {
+            <span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">err</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">internal</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">strname</span>(<span class="ident">err</span>)
+            }
+        }
+
+        <span class="kw">impl</span> ::<span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">strname</span> {
+            <span class="kw">fn</span> <span class="ident">description</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="kw-2">&amp;</span><span class="ident">str</span> {
+                <span class="self">self</span>.<span class="number">0</span>.<span class="ident">description</span>()
+            }
+            <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">deprecated</span>)]</span>
+            <span class="kw">fn</span> <span class="ident">cause</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span>::<span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span><span class="op">&gt;</span> {
+                <span class="self">self</span>.<span class="number">0</span>.<span class="ident">cause</span>()
+            }
+        }
+    };
+
+    <span class="comment">// Queue is empty, can do the work</span>
+    (<span class="ident">SORT</span> [<span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [ ]
+        <span class="ident">queue</span> [ ]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ENUM_DEFINITION</span> [<span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span> )<span class="kw-2">*</span>]
+            <span class="ident">body</span> []
+            <span class="ident">queue</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span> )<span class="op">*</span>
+                      <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ityp</span> ),<span class="kw-2">*</span>] )<span class="kw-2">*</span>]
+        );
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">IMPLEMENTATIONS</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {$(
+           <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="kw-2">*</span>] [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal [...]
+           )<span class="kw-2">*</span>});
+        $(
+            <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>)<span class="kw-2">*</span>);
+        )<span class="op">*</span>
+    };
+    (<span class="ident">SORT</span> [<span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [ ]
+        <span class="ident">queue</span> [ ]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ENUM_DEFINITION</span> [<span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span> )<span class="kw-2">*</span>]
+            <span class="ident">body</span> []
+            <span class="ident">queue</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span> )<span class="op">*</span>
+                      <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ityp</span> ),<span class="kw-2">*</span>] )<span class="kw-2">*</span>]
+        );
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">IMPLEMENTATIONS</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {$(
+           <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="kw-2">*</span>] [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal [...]
+           )<span class="kw-2">*</span>});
+        $(
+            <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>)<span class="kw-2">*</span>);
+        )<span class="op">*</span>
+    };
+    <span class="comment">// Add meta to buffer</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="kw-2">*</span>]
+        <span class="ident">queue</span> [ <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>:<span class="ident">meta</span>]</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+            <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span> )<span class="op">*</span> <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>]</span> ]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]);
+    };
+    <span class="comment">// Add ident to buffer</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="kw-2">*</span>]
+        <span class="ident">queue</span> [ <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span>:<span class="ident">ident</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span>
+                      <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ityp</span> ),<span class="kw-2">*</span>] {$( <span class="macro-nonterminal">$</spa [...]
+            <span class="ident">buf</span> [$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span> : <span class="ident">UNIT</span> [ ] ]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]);
+    };
+    <span class="comment">// Flush buffer on meta after ident</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal [...]
+        <span class="ident">queue</span> [ <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>:<span class="ident">meta</span>]</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="kw">enum</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">emeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">eitem</span> $(( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">etyp</span>),<span class="op">*</span> ))<span class="op">*</span> )<span class="op [...]
+                     $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span> $(( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">btyp</span>),<span cl [...]
+            <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                      <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ityp</span> ),<span class="kw-2">*</span>] {$( <span class="macro-nonterminal">$</spa [...]
+                     <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">btyp</span> ),<span class="kw-2">*</span>] {} ]
+            <span class="ident">buf</span> [ <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>]</span> ]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]);
+    };
+    <span class="comment">// Add tuple enum-variant</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>:<span class="ident">ident</span>: <span class="ident">UNIT</span> [ ] ]
+        <span class="ident">queue</span> [($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qtyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+            <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="ident">TUPLE</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="macro-nonterminal">$</spa [...]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]
+        );
+    };
+    <span class="comment">// Add struct enum-variant - e.g. { descr: &amp;&#39;static str }</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>:<span class="ident">ident</span>: <span class="ident">UNIT</span> [ ] ]
+        <span class="ident">queue</span> [{ $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qtyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>} $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+            <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="ident">STRUCT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="macro-nonterminal">$</sp [...]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]);
+    };
+    <span class="comment">// Add struct enum-variant, with excess comma - e.g. { descr: &amp;&#39;static str, }</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>:<span class="ident">ident</span>: <span class="ident">UNIT</span> [ ] ]
+        <span class="ident">queue</span> [{$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qtyp</span>:<span class="ident">ty</span> ),<span class="op">+</span> ,} $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+            <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="ident">STRUCT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="macro-nonterminal">$</sp [...]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]);
+    };
+    <span class="comment">// Add braces and flush always on braces</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                 <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonter [...]
+        <span class="ident">queue</span> [ {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qfuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+                      $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span clas [...]
+            <span class="ident">buf</span> [ ]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]);
+    };
+    <span class="comment">// Flush buffer on double ident</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                 <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonter [...]
+        <span class="ident">queue</span> [ <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span>:<span class="ident">ident</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+                     $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span class [...]
+            <span class="ident">buf</span> [ <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span> : <span class="ident">UNIT</span> [ ] ]
+            <span class="ident">queue</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>]);
+    };
+    <span class="comment">// Flush buffer on end</span>
+    (<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">items</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+                  <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ivar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonte [...]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ifuncs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>} )<span class="op">*</span> ]
+        <span class="ident">buf</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span>:<span class="ident">tt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal [...]
+        <span class="ident">queue</span> [ ]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">SORT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span> )<span class="kw-2">*</span>]
+            <span class="ident">items</span> [$( $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+                     $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmeta</span>]</span>)<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bitem</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bmode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">bvar</span>:<span class [...]
+            <span class="ident">buf</span> [ ]
+            <span class="ident">queue</span> [ ]);
+    };
+    <span class="comment">// Public enum (Queue Empty)</span>
+    (<span class="ident">ENUM_DEFINITION</span> [<span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span> )<span class="kw-2">*</span>]
+        <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">svar</span>:<span class="ident">ident</span>: <spa [...]
+        <span class="ident">queue</span> [ ]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unknown_lints</span>)]</span>  <span class="comment">// no unused_doc_comments in older rust</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">renamed_and_removed_lints</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comment</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comments</span>)]</span>
+        $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+            $(
+                $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span>
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span> $(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span> ),<span class="kw-2">*</span>))<span class="op">*</span> $({$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">svar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">styp</span> ),<span class="kw-2">*</span>})<span class="kw-2">*</span>,
+            )<span class="op">*</span>
+        }
+    };
+    <span class="comment">// Private enum (Queue Empty)</span>
+    (<span class="ident">ENUM_DEFINITION</span> [<span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>]</span> )<span class="kw-2">*</span>]
+        <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">svar</span>:<span class="ident">ident</span>: <spa [...]
+        <span class="ident">queue</span> [ ]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unknown_lints</span>)]</span>  <span class="comment">// no unused_doc_comments in older rust</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">renamed_and_removed_lints</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comment</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comments</span>)]</span>
+        $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>]</span>)<span class="op">*</span>
+        <span class="kw">enum</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+            $(
+                $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span>
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span> $(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span> ),<span class="kw-2">*</span>))<span class="op">*</span> $({$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">svar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">styp</span> ),<span class="kw-2">*</span>})<span class="kw-2">*</span>,
+            )<span class="op">*</span>
+        }
+    };
+    <span class="comment">// Unit variant</span>
+    (<span class="ident">ENUM_DEFINITION</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">svar</span>:<span class="ident">ident</span>: <spa [...]
+        <span class="ident">queue</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span>:<span class="ident">ident</span>: <span class="ident">UNIT</span> [ ] $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">queue</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ENUM_DEFINITION</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>)<span class="op">*</span> ]
+            <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( < [...]
+                    $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span> () {} ]
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">queue</span>)<span class="op">*</span> ]
+        );
+    };
+    <span class="comment">// Tuple variant</span>
+    (<span class="ident">ENUM_DEFINITION</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">svar</span>:<span class="ident">ident</span>: <spa [...]
+        <span class="ident">queue</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span>:<span class="ident">ident</span>: <span class="ident">TUPLE</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qtyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>] $( <span  [...]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ENUM_DEFINITION</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>)<span class="op">*</span> ]
+            <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( < [...]
+                    $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span> (($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qtyp</span> ),<span class="kw-2">*</span>)) {} ]
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">queue</span>)<span class="op">*</span> ]
+        );
+    };
+    <span class="comment">// Struct variant</span>
+    (<span class="ident">ENUM_DEFINITION</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>]
+        <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span>:<span class="ident">ident</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span>:<span class="ident">ty</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">svar</span>:<span class="ident">ident</span>: <spa [...]
+        <span class="ident">queue</span> [$( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>:<span class="ident">meta</span>]</span> )<span class="op">*</span>
+            <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span>:<span class="ident">ident</span>: <span class="ident">STRUCT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qtyp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>] $( <sp [...]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ENUM_DEFINITION</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">def</span>)<span class="op">*</span> ]
+            <span class="ident">body</span> [$($( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">iitem</span> ($(($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ttyp</span> ),<span class="op">+</span>))<span class="kw-2">*</span>) {$({$( < [...]
+                    $( <span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">qmeta</span>]</span> )<span class="op">*</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qitem</span> () {{$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qvar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">qtyp</span> ),<span [...]
+            <span class="ident">queue</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">queue</span>)<span class="op">*</span> ]
+        );
+    };
+    (<span class="ident">IMPLEMENTATIONS</span>
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> {$(
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> [$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span>)<span class="kw-2">*</span>] [$( <span class="macro-nonterminal">$</span><span class="macro-n [...]
+        )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unknown_lints</span>)]</span>  <span class="comment">// no unused_doc_comments in older rust</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">renamed_and_removed_lints</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comment</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comments</span>)]</span>
+        <span class="kw">impl</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+            <span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">fmt</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Formatter</span>)
+                <span class="op">-</span><span class="op">&gt;</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="prelude-ty">Result</span>
+            {
+                <span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
+                    $(
+                        $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span>
+                        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ITEM_PATTERN</span>
+                            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>]
+                        ) <span class="op">=</span><span class="op">&gt;</span> {
+                            <span class="kw">let</span> <span class="ident">display_fn</span> <span class="op">=</span> <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_DISPLAY_IMPL</span>
+                                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">funcs</span> )<span class="kw-2">*</span>});
+
+                            <span class="ident">display_fn</span>(<span class="self">self</span>, <span class="ident">fmt</span>)
+                        }
+                    )<span class="op">*</span>
+                }
+            }
+        }
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unknown_lints</span>)]</span>  <span class="comment">// no unused_doc_comments in older rust</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">renamed_and_removed_lints</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comment</span>)]</span>
+        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_doc_comments</span>)]</span>
+        <span class="kw">impl</span> ::<span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+            <span class="kw">fn</span> <span class="ident">description</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="kw-2">&amp;</span><span class="ident">str</span> {
+                <span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
+                    $(
+                        $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span>
+                        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ITEM_PATTERN</span>
+                            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>]
+                        ) <span class="op">=</span><span class="op">&gt;</span> {
+                            <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_DESCRIPTION_IMPL</span>
+                                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> <span class="self">self</span> <span class="ident">fmt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">funcs</span> )<span class="kw-2">*</span>})
+                        }
+                    )<span class="op">*</span>
+                }
+            }
+            <span class="kw">fn</span> <span class="ident">cause</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span>::<span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span><span class="op">&gt;</span> {
+                <span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
+                    $(
+                        $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>]</span>)<span class="op">*</span>
+                        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ITEM_PATTERN</span>
+                            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>]
+                        ) <span class="op">=</span><span class="op">&gt;</span> {
+                            <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CAUSE_IMPL</span>
+                                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>]
+                                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">funcs</span> )<span class="kw-2">*</span>})
+                        }
+                    )<span class="op">*</span>
+                }
+            }
+        }
+        $(
+            <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_FROM_IMPL</span>
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">funcs</span> )<span class="kw-2">*</span>});
+        )<span class="op">*</span>
+        $(
+            <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CONTEXT_IMPL</span>
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+                {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">funcs</span> )<span class="kw-2">*</span>});
+        )<span class="op">*</span>
+    };
+    (<span class="ident">FIND_DISPLAY_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        { <span class="ident">display</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">self_</span>:<span class="ident">tt</span>) <span class="op">-</span><span class="op">&gt;</span> ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">exprs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span clas [...]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="op">|</span><span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">IDENT</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">self_</span>): <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>: [...]
+    };
+    (<span class="ident">FIND_DISPLAY_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        { <span class="ident">display</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">pattern</span>:<span class="ident">expr</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="op">|</span><span class="kw">_</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Formatter</span><span class="op">|</span> { <span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">pattern</span>) }
+    };
+    (<span class="ident">FIND_DISPLAY_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        { <span class="ident">display</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">pattern</span>:<span class="ident">expr</span>, $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">exprs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="op">|</span><span class="kw">_</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Formatter</span><span class="op">|</span> { <span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">pattern</span>, $( <span class="macro-nontermina [...]
+    };
+    (<span class="ident">FIND_DISPLAY_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        { <span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_DISPLAY_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>
+            {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>})
+    };
+    (<span class="ident">FIND_DISPLAY_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        { }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="op">|</span><span class="ident">self_</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> ::<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Formatter</span><span class="op">|</span> {
+            <span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;{}&quot;</span>, ::<span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span>::<span class="ident">description</span>(<span class="ident">self_</span>))
+        }
+    };
+    (<span class="ident">FIND_DESCRIPTION_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">me</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fmt</span>:<span c [...]
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">description</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">expr</span>:<span class="ident">expr</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">expr</span>
+    };
+    (<span class="ident">FIND_DESCRIPTION_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">me</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fmt</span>:<span c [...]
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+        { <span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_DESCRIPTION_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">me</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fmt</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>]
+            {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>})
+    };
+    (<span class="ident">FIND_DESCRIPTION_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">me</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fmt</span>:<span c [...]
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+        { }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">stringify</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>)
+    };
+    (<span class="ident">FIND_CAUSE_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">cause</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">expr</span>:<span class="ident">expr</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">expr</span>)
+    };
+    (<span class="ident">FIND_CAUSE_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+        { <span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CAUSE_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>]
+            { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="op">*</span> })
+    };
+    (<span class="ident">FIND_CAUSE_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+        { }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="prelude-val">None</span>
+    };
+    <span class="comment">// ----------------------------- FROM IMPL --------------------------</span>
+    (<span class="ident">FIND_FROM_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">from</span>() $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        $(
+            <span class="kw">impl</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+                <span class="kw">fn</span> <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+                    <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>)
+                }
+            }
+        )<span class="op">*</span>
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_FROM_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>});
+    };
+    (<span class="ident">FIND_FROM_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">UNIT</span>
+        [ ]
+        { <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw">impl</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+            <span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">_discarded_error</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>
+            }
+        }
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_FROM_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="ident">UNIT</span> [  ]
+            {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>});
+    };
+    (<span class="ident">FIND_FROM_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">TUPLE</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>) <span class="op">-</span><span class="op">&gt;</span> ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span>:<span class="ident">expr</span> ),<span class="kw-2">*</span>) $( <span cl [...]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw">impl</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+            <span class="kw">fn</span> <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span> ),<span class="kw-2">*</span>)
+            }
+        }
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_FROM_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="ident">TUPLE</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="op">*</span> });
+    };
+    (<span class="ident">FIND_FROM_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">STRUCT</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>) <span class="op">-</span><span class="op">&gt;</span> {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span>< [...]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw">impl</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+            <span class="kw">fn</span> <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span> {
+                    $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tvar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span> ),<span class="op">*</span>
+                }
+            }
+        }
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_FROM_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="ident">STRUCT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="op">*</span> });
+    };
+    (<span class="ident">FIND_FROM_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_FROM_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>}
+        );
+    };
+    (<span class="ident">FIND_FROM_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+    };
+    <span class="comment">// ----------------------------- CONTEXT IMPL --------------------------</span>
+    (<span class="ident">FIND_CONTEXT_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">TUPLE</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>:<span class="ident">ident</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span><span class="op">&gt;</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span cl [...]
+            <span class="op">-</span><span class="op">&gt;</span> ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span>:<span class="ident">expr</span> ),<span class="kw-2">*</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span><span class="op">&gt;</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;< [...]
+            <span class="kw">fn</span> <span class="ident">from</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>): <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;</span><span class="ident">T</span>, <span class= [...]
+                <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>
+            {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span> ),<span class="kw-2">*</span>)
+            }
+        }
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CONTEXT_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="ident">TUPLE</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="op">*</span> });
+    };
+    (<span class="ident">FIND_CONTEXT_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">TUPLE</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class= [...]
+            <span class="op">-</span><span class="op">&gt;</span> ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span>:<span class="ident">expr</span> ),<span class="kw-2">*</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ft [...]
+            <span class="kw">fn</span> <span class="ident">from</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>): <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><s [...]
+                <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>
+            {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span> ),<span class="kw-2">*</span>)
+            }
+        }
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CONTEXT_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="ident">TUPLE</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="op">*</span> });
+    };
+    (<span class="ident">FIND_CONTEXT_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">STRUCT</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>:<span class="ident">ident</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span><span class="op">&gt;</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span cl [...]
+            <span class="op">-</span><span class="op">&gt;</span> {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span>:<span class="ident">expr</span> ),<span class="kw-2">*</span>} $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span><span class="op">&gt;</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;< [...]
+            <span class="kw">fn</span> <span class="ident">from</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>): <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><s [...]
+                <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>
+            {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span> {
+                    $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tvar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span> ),<span class="op">*</span>
+                }
+            }
+        }
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CONTEXT_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="ident">STRUCT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="op">*</span> });
+    };
+    (<span class="ident">FIND_CONTEXT_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">STRUCT</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="ident">context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class= [...]
+            <span class="op">-</span><span class="op">&gt;</span> {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span>:<span class="ident">expr</span> ),<span class="kw-2">*</span>} $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="op">*</span> }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ft [...]
+            <span class="kw">fn</span> <span class="ident">from</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>): <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Context</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><s [...]
+                <span class="op">-</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>
+            {
+                <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span> {
+                    $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tvar</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">texpr</span> ),<span class="op">*</span>
+                }
+            }
+        }
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CONTEXT_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="ident">STRUCT</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="op">*</span> });
+    };
+    (<span class="ident">FIND_CONTEXT_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { <span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span> $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">FIND_CONTEXT_IMPL</span>
+            <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>]
+            {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span> )<span class="kw-2">*</span>}
+        );
+    };
+    (<span class="ident">FIND_CONTEXT_IMPL</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+        { }
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+    };
+    <span class="comment">// ----------------------------- ITEM IMPL --------------------------</span>
+    (<span class="ident">ITEM_BODY</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">UNIT</span>
+    ) <span class="op">=</span><span class="op">&gt;</span> { };
+    (<span class="ident">ITEM_BODY</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">TUPLE</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>)
+    };
+    (<span class="ident">ITEM_BODY</span> $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">imeta</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">STRUCT</span>
+        [$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="macro-nonterminal">$</span><span class="macro-nonterminal">typ</span> ),<span class="kw-2">*</span>}
+    };
+    (<span class="ident">ITEM_PATTERN</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">UNIT</span> []
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>
+    };
+    (<span class="ident">ITEM_PATTERN</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">TUPLE</span>
+        [$( <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span> ($( <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>)
+    };
+    (<span class="ident">ITEM_PATTERN</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span>:<span class="ident">ident</span>: <span class="ident">STRUCT</span>
+        [$( <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span> ),<span class="kw-2">*</span>]
+    ) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">item</span> {$( <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> ),<span class="kw-2">*</span>}
+    };
+    <span class="comment">// This one should match all allowed sequences in &quot;funcs&quot; but not match</span>
+    <span class="comment">// anything else.</span>
+    <span class="comment">// This is to contrast FIND_* clauses which just find stuff they need and</span>
+    <span class="comment">// skip everything else completely</span>
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="ident">display</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">self_</span>:<span class="ident">tt</span>) <span class="op">-</span><span class="op">&gt;</span> ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">exprs</span>:<span class="ident">tt</span> )<span cl [...]
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="ident">display</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">pattern</span>: <span class="ident">expr</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>)
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="ident">display</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">pattern</span>: <span class="ident">expr</span>, $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">exprs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>) $( <span class="macro-nonterm [...]
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="ident">description</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">expr</span>:<span class="ident">expr</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>)
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="ident">cause</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">expr</span>:<span class="ident">expr</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>)
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="ident">from</span>() $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>)
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>)
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="ident">TUPLE</span> <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>) <span class="op">-</span><span class="op">&gt;</span> ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class [...]
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="ident">TUPLE</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="ident">STRUCT</span> <span class="ident">from</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>) <span class="op">-</span><span class="op">&gt;</span> {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">v</span>:<span clas [...]
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="ident">STRUCT</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+
+    (<span class="ident">ERROR_CHECK</span> <span class="ident">TUPLE</span> <span class="ident">context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nontermina [...]
+        <span class="op">-</span><span class="op">&gt;</span> ($( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span> ),<span class="kw-2">*</span>) $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>)
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="ident">TUPLE</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+    (<span class="ident">ERROR_CHECK</span> <span class="ident">STRUCT</span> <span class="ident">context</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">cvar</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">fvar</span>:<span class="ident">ident</span>: <span class="macro-nontermin [...]
+        <span class="op">-</span><span class="op">&gt;</span> {$( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">v</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span> ),<span class="kw-2">*</span>} $( <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>)
+    <span class="op">=</span><span class="op">&gt;</span> { <span class="macro">quick_error</span><span class="macro">!</span>(<span class="ident">ERROR_CHECK</span> <span class="ident">STRUCT</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tail</span>)<span class="kw-2">*</span>); };
+
+    (<span class="ident">ERROR_CHECK</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">imode</span>:<span class="ident">tt</span> ) <span class="op">=</span><span class="op">&gt;</span> {};
+    <span class="comment">// Utility functions</span>
+    (<span class="ident">IDENT</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ident</span>:<span class="ident">ident</span>) <span class="op">=</span><span class="op">&gt;</span> { <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ident</span> }
+}
+
+
+<span class="doccomment">/// Generic context type</span>
+<span class="doccomment">///</span>
+<span class="doccomment">/// Used mostly as a transport for `ResultExt::context` method</span>
+<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
+<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Context</span><span class="op">&lt;</span><span class="ident">X</span>, <span class="ident">E</span><span class="op">&gt;</span>(<span class="kw">pub</span> <span class="ident">X</span>, <span class="kw">pub</span> <span class="ident">E</span>);
+
+<span class="doccomment">/// Result extension trait adding a `context` method</span>
+<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">ResultExt</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">E</span><span class="op">&gt;</span> {
+    <span class="doccomment">/// The method is use to add context information to current operation</span>
+    <span class="doccomment">///</span>
+    <span class="doccomment">/// The context data is then used in error constructor to store additional</span>
+    <span class="doccomment">/// information within error. For example, you may add a filename as a</span>
+    <span class="doccomment">/// context for file operation. See crate documentation for the actual</span>
+    <span class="doccomment">/// example.</span>
+    <span class="kw">fn</span> <span class="ident">context</span><span class="op">&lt;</span><span class="ident">X</span><span class="op">&gt;</span>(<span class="self">self</span>, <span class="ident">x</span>: <span class="ident">X</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">Context</span><span class="op">&lt;</span><span class="ident">X</span>, <span cl [...]
+}
+
+<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">E</span><span class="op">&gt;</span> <span class="ident">ResultExt</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">E</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">E</span><span class="op">&gt;</span> {
+    <span class="kw">fn</span> <span class="ident">context</span><span class="op">&lt;</span><span class="ident">X</span><span class="op">&gt;</span>(<span class="self">self</span>, <span class="ident">x</span>: <span class="ident">X</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">Context</span><span class="op">&lt;</span><span class="ident">X</span>, <span cl [...]
+        <span class="self">self</span>.<span class="ident">map_err</span>(<span class="op">|</span><span class="ident">e</span><span class="op">|</span> <span class="ident">Context</span>(<span class="ident">x</span>, <span class="ident">e</span>))
+    }
+}
+
+
+
+<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
+<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">deprecated</span>)]</span>
+<span class="kw">mod</span> <span class="ident">test</span> {
+    <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">num</span>::{<span class="ident">ParseFloatError</span>, <span class="ident">ParseIntError</span>};
+    <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">Utf8Error</span>;
+    <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">string</span>::<span class="ident">FromUtf8Error</span>;
+    <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span>;
+    <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">path</span>::{<span class="ident">Path</span>, <span class="ident">PathBuf</span>};
+
+    <span class="kw">use</span> <span class="kw">super</span>::<span class="ident">ResultExt</span>;
+
+    <span class="macro">quick_error</span><span class="macro">!</span> {
+        <span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">Bare</span> {
+            <span class="ident">One</span>
+            <span class="ident">Two</span>
+        }
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">bare_item_direct</span>() {
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">Bare</span>::<span class="ident">One</span>), <span class="string">&quot;One&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">Bare</span>::<span class="ident">One</span>), <span class="string">&quot;One&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">Bare</span>::<span class="ident">One</span>.<span class="ident">description</span>(), <span class="string">&quot;One&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">Bare</span>::<span class="ident">One</span>.<span class="ident">cause</span>().<span class="ident">is_none</span>());
+    }
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">bare_item_trait</span>() {
+        <span class="kw">let</span> <span class="ident">err</span>: <span class="kw-2">&amp;</span><span class="ident">Error</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">Bare</span>::<span class="ident">Two</span>;
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="string">&quot;Two&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="string">&quot;Two&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="string">&quot;Two&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">is_none</span>());
+    }
+
+    <span class="macro">quick_error</span><span class="macro">!</span> {
+        <span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">Wrapper</span> <span class="ident">wraps</span> <span class="ident">Wrapped</span> {
+            <span class="ident">One</span>
+            <span class="ident">Two</span>(<span class="ident">s</span>: <span class="ident">String</span>) {
+                <span class="ident">display</span>(<span class="string">&quot;two: {}&quot;</span>, <span class="ident">s</span>)
+                <span class="ident">from</span>()
+            }
+        }
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">wrapper</span>() {
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">Wrapper</span>::<span class="ident">from</span>(<span class="ident">Wrapped</span>::<span class="ident">One</span>)),
+            <span class="string">&quot;One&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>,
+            <span class="ident">Wrapper</span>::<span class="ident">from</span>(<span class="ident">Wrapped</span>::<span class="ident">from</span>(<span class="ident">String</span>::<span class="ident">from</span>(<span class="string">&quot;hello&quot;</span>)))),
+            <span class="string">&quot;two: hello&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">Wrapper</span>::<span class="ident">from</span>(<span class="ident">Wrapped</span>::<span class="ident">One</span>)),
+            <span class="string">&quot;Wrapper(One)&quot;</span>.<span class="ident">to_string</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">Wrapper</span>::<span class="ident">from</span>(<span class="ident">Wrapped</span>::<span class="ident">One</span>).<span class="ident">description</span>(),
+            <span class="string">&quot;One&quot;</span>.<span class="ident">to_string</span>());
+    }
+
+    <span class="macro">quick_error</span><span class="macro">!</span> {
+        <span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">PartialEq</span>)]</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">TupleWrapper</span> {
+            <span class="doccomment">/// ParseFloat Error</span>
+            <span class="ident">ParseFloatError</span>(<span class="ident">err</span>: <span class="ident">ParseFloatError</span>) {
+                <span class="ident">from</span>()
+                <span class="ident">description</span>(<span class="ident">err</span>.<span class="ident">description</span>())
+                <span class="ident">display</span>(<span class="string">&quot;parse float error: {err}&quot;</span>, <span class="ident">err</span><span class="op">=</span><span class="ident">err</span>)
+                <span class="ident">cause</span>(<span class="ident">err</span>)
+            }
+            <span class="ident">Other</span>(<span class="ident">descr</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>) {
+                <span class="ident">description</span>(<span class="ident">descr</span>)
+                <span class="ident">display</span>(<span class="string">&quot;Error: {}&quot;</span>, <span class="ident">descr</span>)
+            }
+            <span class="doccomment">/// FromUtf8 Error</span>
+            <span class="ident">FromUtf8Error</span>(<span class="ident">err</span>: <span class="ident">Utf8Error</span>, <span class="ident">source</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span>) {
+                <span class="ident">cause</span>(<span class="ident">err</span>)
+                <span class="ident">display</span>(<span class="ident">me</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="string">&quot;{desc} at index {pos}: {err}&quot;</span>, <span class="ident">desc</span><span class="op">=</span><span class="ident">me</span>.<span class="ident">description</span>(), <span class="ident">pos</span><span class="op">=</span><span class="ident">err</span>.<span class="ident">valid_up_to</span>(), <span class="ident">err</span [...]
+                <span class="ident">description</span>(<span class="string">&quot;utf8 error&quot;</span>)
+                <span class="ident">from</span>(<span class="ident">err</span>: <span class="ident">FromUtf8Error</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="ident">err</span>.<span class="ident">utf8_error</span>().<span class="ident">clone</span>(), <span class="ident">err</span>.<span class="ident">into_bytes</span>())
+            }
+            <span class="ident">Discard</span> {
+                <span class="ident">from</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>)
+            }
+            <span class="ident">Singleton</span> {
+                <span class="ident">display</span>(<span class="string">&quot;Just a string&quot;</span>)
+            }
+        }
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">tuple_wrapper_err</span>() {
+        <span class="kw">let</span> <span class="ident">cause</span> <span class="op">=</span> <span class="string">&quot;one and a half times pi&quot;</span>.<span class="ident">parse</span>::<span class="op">&lt;</span><span class="ident">f32</span><span class="op">&gt;</span>().<span class="ident">unwrap_err</span>();
+        <span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">TupleWrapper</span>::<span class="ident">ParseFloatError</span>(<span class="ident">cause</span>.<span class="ident">clone</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;parse float error: {}&quot;</span>, <span class="ident">cause</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;ParseFloatError({:?})&quot;</span>, <span class="ident">cause</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="ident">cause</span>.<span class="ident">description</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">unwrap</span>()), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">cause</span>));
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">tuple_wrapper_trait_str</span>() {
+        <span class="kw">let</span> <span class="ident">desc</span> <span class="op">=</span> <span class="string">&quot;hello&quot;</span>;
+        <span class="kw">let</span> <span class="ident">err</span>: <span class="kw-2">&amp;</span><span class="ident">Error</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">TupleWrapper</span>::<span class="ident">Other</span>(<span class="ident">desc</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Error: {}&quot;</span>, <span class="ident">desc</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Other({:?})&quot;</span>, <span class="ident">desc</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="ident">desc</span>);
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">is_none</span>());
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">tuple_wrapper_trait_two_fields</span>() {
+        <span class="kw">let</span> <span class="ident">invalid_utf8</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>, <span class="number">159</span>, <span class="number">146</span>, <span class="number">150</span>];
+        <span class="kw">let</span> <span class="ident">cause</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from_utf8</span>(<span class="ident">invalid_utf8</span>.<span class="ident">clone</span>()).<span class="ident">unwrap_err</span>().<span class="ident">utf8_error</span>();
+        <span class="kw">let</span> <span class="ident">err</span>: <span class="kw-2">&amp;</span><span class="ident">Error</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">TupleWrapper</span>::<span class="ident">FromUtf8Error</span>(<span class="ident">cause</span>.<span class="ident">clone</span>(), <span class="ident">invalid_utf8</span>.<span class="ident">clone</span>());
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{desc} at index {pos}: {cause}&quot;</span>, <span class="ident">desc</span><span class="op">=</span><span class="ident">err</span>.<span class="ident">description</span>(), <span class="iden [...]
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;FromUtf8Error({:?}, {:?})&quot;</span>, <span class="ident">cause</span>, <span class="ident">invalid_utf8</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="string">&quot;utf8 error&quot;</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">unwrap</span>()), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">cause</span>));
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">tuple_wrapper_from</span>() {
+        <span class="kw">let</span> <span class="ident">cause</span> <span class="op">=</span> <span class="string">&quot;one and a half times pi&quot;</span>.<span class="ident">parse</span>::<span class="op">&lt;</span><span class="ident">f32</span><span class="op">&gt;</span>().<span class="ident">unwrap_err</span>();
+        <span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">TupleWrapper</span>::<span class="ident">ParseFloatError</span>(<span class="ident">cause</span>.<span class="ident">clone</span>());
+        <span class="kw">let</span> <span class="ident">err_from</span>: <span class="ident">TupleWrapper</span> <span class="op">=</span> <span class="ident">From</span>::<span class="ident">from</span>(<span class="ident">cause</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err_from</span>, <span class="ident">err</span>);
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">tuple_wrapper_custom_from</span>() {
+        <span class="kw">let</span> <span class="ident">invalid_utf8</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>, <span class="number">159</span>, <span class="number">146</span>, <span class="number">150</span>];
+        <span class="kw">let</span> <span class="ident">cause</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from_utf8</span>(<span class="ident">invalid_utf8</span>.<span class="ident">clone</span>()).<span class="ident">unwrap_err</span>();
+        <span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">TupleWrapper</span>::<span class="ident">FromUtf8Error</span>(<span class="ident">cause</span>.<span class="ident">utf8_error</span>().<span class="ident">clone</span>(), <span class="ident">invalid_utf8</span>);
+        <span class="kw">let</span> <span class="ident">err_from</span>: <span class="ident">TupleWrapper</span> <span class="op">=</span> <span class="ident">From</span>::<span class="ident">from</span>(<span class="ident">cause</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err_from</span>, <span class="ident">err</span>);
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">tuple_wrapper_discard</span>() {
+        <span class="kw">let</span> <span class="ident">err</span>: <span class="ident">TupleWrapper</span> <span class="op">=</span> <span class="ident">From</span>::<span class="ident">from</span>(<span class="string">&quot;hello&quot;</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Discard&quot;</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Discard&quot;</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="string">&quot;Discard&quot;</span>);
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">is_none</span>());
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">tuple_wrapper_singleton</span>() {
+        <span class="kw">let</span> <span class="ident">err</span>: <span class="ident">TupleWrapper</span> <span class="op">=</span> <span class="ident">TupleWrapper</span>::<span class="ident">Singleton</span>;
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Just a string&quot;</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Singleton&quot;</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="string">&quot;Singleton&quot;</span>);
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">is_none</span>());
+    }
+
+    <span class="macro">quick_error</span><span class="macro">!</span> {
+        <span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">PartialEq</span>)]</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">StructWrapper</span> {
+            <span class="comment">// Utf8 Error</span>
+            <span class="ident">Utf8Error</span>{ <span class="ident">err</span>: <span class="ident">Utf8Error</span>, <span class="ident">hint</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span><span class="op">&gt;</span> } {
+                <span class="ident">cause</span>(<span class="ident">err</span>)
+                <span class="ident">display</span>(<span class="ident">me</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="string">&quot;{desc} at index {pos}: {err}&quot;</span>, <span class="ident">desc</span><span class="op">=</span><span class="ident">me</span>.<span class="ident">description</span>(), <span class="ident">pos</span><span class="op">=</span><span class="ident">err</span>.<span class="ident">valid_up_to</span>(), <span class="ident">err</span [...]
+                <span class="ident">description</span>(<span class="string">&quot;utf8 error&quot;</span>)
+                <span class="ident">from</span>(<span class="ident">err</span>: <span class="ident">Utf8Error</span>) <span class="op">-</span><span class="op">&gt;</span> { <span class="ident">err</span>: <span class="ident">err</span>, <span class="ident">hint</span>: <span class="prelude-val">None</span> }
+            }
+            <span class="comment">// Utf8 Error</span>
+            <span class="ident">ExcessComma</span> { <span class="ident">descr</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>, } {
+                <span class="ident">description</span>(<span class="ident">descr</span>)
+                <span class="ident">display</span>(<span class="string">&quot;Error: {}&quot;</span>, <span class="ident">descr</span>)
+            }
+        }
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">struct_wrapper_err</span>() {
+        <span class="kw">let</span> <span class="ident">invalid_utf8</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>, <span class="number">159</span>, <span class="number">146</span>, <span class="number">150</span>];
+        <span class="kw">let</span> <span class="ident">cause</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from_utf8</span>(<span class="ident">invalid_utf8</span>.<span class="ident">clone</span>()).<span class="ident">unwrap_err</span>().<span class="ident">utf8_error</span>();
+        <span class="kw">let</span> <span class="ident">err</span>: <span class="kw-2">&amp;</span><span class="ident">Error</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">StructWrapper</span>::<span class="ident">Utf8Error</span>{ <span class="ident">err</span>: <span class="ident">cause</span>.<span class="ident">clone</span>(), <span class="ident">hint</span>: <span class="prelude-val">Some</span>(<span class="string">&quot;nonsense&quot;</span>) };
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{desc} at index {pos}: {cause}&quot;</span>, <span class="ident">desc</span><span class="op">=</span><span class="ident">err</span>.<span class="ident">description</span>(), <span class="iden [...]
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Utf8Error {{ err: {:?}, hint: {:?} }}&quot;</span>, <span class="ident">cause</span>, <span class="prelude-val">Some</span>(<span class="string">&quot;nonsense&quot;</span>)));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="string">&quot;utf8 error&quot;</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">unwrap</span>()), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">cause</span>));
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">struct_wrapper_struct_from</span>() {
+        <span class="kw">let</span> <span class="ident">invalid_utf8</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>, <span class="number">159</span>, <span class="number">146</span>, <span class="number">150</span>];
+        <span class="kw">let</span> <span class="ident">cause</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from_utf8</span>(<span class="ident">invalid_utf8</span>.<span class="ident">clone</span>()).<span class="ident">unwrap_err</span>().<span class="ident">utf8_error</span>();
+        <span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">StructWrapper</span>::<span class="ident">Utf8Error</span>{ <span class="ident">err</span>: <span class="ident">cause</span>.<span class="ident">clone</span>(), <span class="ident">hint</span>: <span class="prelude-val">None</span> };
+        <span class="kw">let</span> <span class="ident">err_from</span>: <span class="ident">StructWrapper</span> <span class="op">=</span> <span class="ident">From</span>::<span class="ident">from</span>(<span class="ident">cause</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err_from</span>, <span class="ident">err</span>);
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">struct_wrapper_excess_comma</span>() {
+        <span class="kw">let</span> <span class="ident">descr</span> <span class="op">=</span> <span class="string">&quot;hello&quot;</span>;
+        <span class="kw">let</span> <span class="ident">err</span> <span class="op">=</span> <span class="ident">StructWrapper</span>::<span class="ident">ExcessComma</span> { <span class="ident">descr</span>: <span class="ident">descr</span> };
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;Error: {}&quot;</span>, <span class="ident">descr</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="ident">err</span>), <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;ExcessComma {{ descr: {:?} }}&quot;</span>, <span class="ident">descr</span>));
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">description</span>(), <span class="ident">descr</span>);
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">err</span>.<span class="ident">cause</span>().<span class="ident">is_none</span>());
+    }
+
+    <span class="macro">quick_error</span><span class="macro">!</span> {
+        <span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
+        <span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">ContextErr</span> {
+            <span class="ident">Float</span>(<span class="ident">src</span>: <span class="ident">String</span>, <span class="ident">err</span>: <span class="ident">ParseFloatError</span>) {
+                <span class="ident">context</span>(<span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>, <span class="ident">e</span>: <span class="ident">ParseFloatError</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="ident">s</span>.<span class="ident">to_string</span>(), <span class="ident">e</span>)
+                <span class="ident">display</span>(<span class="string">&quot;Float error {:?}: {}&quot;</span>, <span class="ident">src</span>, <span class="ident">err</span>)
+            }
+            <span class="ident">Int</span> { <span class="ident">src</span>: <span class="ident">String</span>, <span class="ident">err</span>: <span class="ident">ParseIntError</span> } {
+                <span class="ident">context</span>(<span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>, <span class="ident">e</span>: <span class="ident">ParseIntError</span>)
+                    <span class="op">-</span><span class="op">&gt;</span> {<span class="ident">src</span>: <span class="ident">s</span>.<span class="ident">to_string</span>(), <span class="ident">err</span>: <span class="ident">e</span>}
+                <span class="ident">display</span>(<span class="string">&quot;Int error {:?}: {}&quot;</span>, <span class="ident">src</span>, <span class="ident">err</span>)
+            }
+            <span class="ident">Utf8</span>(<span class="ident">path</span>: <span class="ident">PathBuf</span>, <span class="ident">err</span>: <span class="ident">Utf8Error</span>) {
+                <span class="ident">context</span>(<span class="ident">p</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">Path</span><span class="op">&gt;</span>, <span class="ident">e</span>: <span class="ident">Utf8Error</span>)
+                    <span class="op">-</span><span class="op">&gt;</span> (<span class="ident">p</span>.<span class="ident">as_ref</span>().<span class="ident">to_path_buf</span>(), <span class="ident">e</span>)
+                <span class="ident">display</span>(<span class="string">&quot;Path error at {:?}: {}&quot;</span>, <span class="ident">path</span>, <span class="ident">err</span>)
+            }
+            <span class="ident">Utf8Str</span>(<span class="ident">s</span>: <span class="ident">String</span>, <span class="ident">err</span>: ::<span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>) {
+                <span class="ident">context</span>(<span class="ident">s</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">str</span><span class="op">&gt;</span>, <span class="ident">e</span>: ::<span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>)
+                    <span class="op">-</span><span class="op">&gt;</span> (<span class="ident">s</span>.<span class="ident">as_ref</span>().<span class="ident">to_string</span>(), <span class="ident">e</span>)
+                <span class="ident">display</span>(<span class="string">&quot;Str error {:?}: {}&quot;</span>, <span class="ident">s</span>, <span class="ident">err</span>)
+            }
+        }
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">parse_float_error</span>() {
+        <span class="kw">fn</span> <span class="ident">parse_float</span>(<span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">f32</span>, <span class="ident">ContextErr</span><span class="op">&gt;</span> {
+            <span class="prelude-val">Ok</span>(<span class="ident">s</span>.<span class="ident">parse</span>().<span class="ident">context</span>(<span class="ident">s</span>)<span class="question-mark">?</span>)
+        }
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">parse_float</span>(<span class="string">&quot;12ab&quot;</span>).<span class="ident">unwrap_err</span>()),
+            <span class="string">r#&quot;Float error &quot;12ab&quot;: invalid float literal&quot;#</span>);
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">parse_int_error</span>() {
+        <span class="kw">fn</span> <span class="ident">parse_int</span>(<span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">i32</span>, <span class="ident">ContextErr</span><span class="op">&gt;</span> {
+            <span class="prelude-val">Ok</span>(<span class="ident">s</span>.<span class="ident">parse</span>().<span class="ident">context</span>(<span class="ident">s</span>)<span class="question-mark">?</span>)
+        }
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">parse_int</span>(<span class="string">&quot;12.5&quot;</span>).<span class="ident">unwrap_err</span>()),
+            <span class="string">r#&quot;Int error &quot;12.5&quot;: invalid digit found in string&quot;#</span>);
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">debug_context</span>() {
+        <span class="kw">fn</span> <span class="ident">parse_int</span>(<span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">i32</span> {
+            <span class="ident">s</span>.<span class="ident">parse</span>().<span class="ident">context</span>(<span class="ident">s</span>).<span class="ident">unwrap</span>()
+        }
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">parse_int</span>(<span class="string">&quot;12&quot;</span>), <span class="number">12</span>);
+        <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{:?}&quot;</span>, <span class="string">&quot;x&quot;</span>.<span class="ident">parse</span>::<span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span>().<span class="ident">context</span>(<span class="string">&quot;x&quot;</span>)),
+            <span class="string">r#&quot;Err(Context(&quot;x&quot;, ParseIntError { kind: InvalidDigit }))&quot;#</span>);
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">path_context</span>() {
+        <span class="kw">fn</span> <span class="ident">parse_utf</span><span class="op">&lt;</span><span class="ident">P</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">Path</span><span class="op">&gt;</span><span class="op">&gt;</span>(<span class="ident">s</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>], <span class="ident">p</span>: <span class="ident">P</span>)
+            <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">ContextErr</span><span class="op">&gt;</span>
+        {
+            ::<span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">from_utf8</span>(<span class="ident">s</span>).<span class="ident">context</span>(<span class="ident">p</span>)<span class="question-mark">?</span>;
+            <span class="prelude-val">Ok</span>(())
+        }
+        <span class="kw">let</span> <span class="ident">etext</span> <span class="op">=</span> <span class="ident">parse_utf</span>(<span class="string">b&quot;a\x80\x80&quot;</span>, <span class="string">&quot;/etc&quot;</span>).<span class="ident">unwrap_err</span>().<span class="ident">to_string</span>();
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">etext</span>.<span class="ident">starts_with</span>(
+            <span class="string">&quot;Path error at \&quot;/etc\&quot;: invalid utf-8&quot;</span>));
+        <span class="kw">let</span> <span class="ident">etext</span> <span class="op">=</span> <span class="ident">parse_utf</span>(<span class="string">b&quot;\x80\x80&quot;</span>, <span class="ident">PathBuf</span>::<span class="ident">from</span>(<span class="string">&quot;/tmp&quot;</span>)).<span class="ident">unwrap_err</span>()
+            .<span class="ident">to_string</span>();
+        <span class="macro">assert</span><span class="macro">!</span>(<span class="ident">etext</span>.<span class="ident">starts_with</span>(
+            <span class="string">&quot;Path error at \&quot;/tmp\&quot;: invalid utf-8&quot;</span>));
+    }
+
+    <span class="attribute">#[<span class="ident">test</span>]</span>
+    <span class="kw">fn</span> <span class="ident">conditional_compilation</span>() {
+        <span class="macro">quick_error</span><span class="macro">!</span> {
+            <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">dead_code</span>)]</span>
+            <span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
+            <span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">Test</span> {
+                <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;foo&quot;</span>)]</span>
+                <span class="ident">Variant</span>
+            }
+        }
+    }
+}
+</pre></div>
+</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../../../../../../../../../../";window.currentCrate = "humantime";</script><script src="../../../../../../../../../../../../aliases.js"></script><script src="../../../../../../../../../../../../main.js"></script><script src="../../../../../../../../../../../../source-script.js"></script><script src="../../../../../../../../../../../../source-files.js"></scrip [...]
\ No newline at end of file
diff --git a/docs/crates-enclave/src/quote/ext.rs.html b/docs/crates-enclave/src/quote/ext.rs.html
index 5f22254..bfc332d 100644
--- a/docs/crates-enclave/src/quote/ext.rs.html
+++ b/docs/crates-enclave/src/quote/ext.rs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `/home/mssun/incubator-mesatee/build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quote/src/ext.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>ext.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../norm [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `/home/mssun/incubator-mesatee/build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quote-0.6.13/src/ext.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>ext.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../ [...]
 <span id="2">  2</span>
 <span id="3">  3</span>
 <span id="4">  4</span>
@@ -130,7 +130,7 @@
 
     <span class="doccomment">/// For use by `ToTokens` implementations.</span>
     <span class="doccomment">///</span>
-    <span class="doccomment">/// ```</span>
+    <span class="doccomment">/// ```edition2018</span>
     <span class="doccomment">/// # use quote::{quote, TokenStreamExt, ToTokens};</span>
     <span class="doccomment">/// # use proc_macro2::TokenStream;</span>
     <span class="doccomment">/// #</span>
@@ -145,29 +145,29 @@
     <span class="doccomment">/// let tokens = quote!(#X);</span>
     <span class="doccomment">/// assert_eq!(tokens.to_string(), &quot;true false&quot;);</span>
     <span class="doccomment">/// ```</span>
-    <span class="kw">fn</span> <span class="ident">append_all</span><span class="op">&lt;</span><span class="ident">I</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>)
+    <span class="kw">fn</span> <span class="ident">append_all</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">I</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>)
     <span class="kw">where</span>
-        <span class="ident">I</span>: <span class="ident">IntoIterator</span>,
-        <span class="ident">I</span>::<span class="ident">Item</span>: <span class="ident">ToTokens</span>;
+        <span class="ident">T</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span><span class="op">&gt;</span>;
 
     <span class="doccomment">/// For use by `ToTokens` implementations.</span>
     <span class="doccomment">///</span>
     <span class="doccomment">/// Appends all of the items in the iterator `I`, separated by the tokens</span>
     <span class="doccomment">/// `U`.</span>
-    <span class="kw">fn</span> <span class="ident">append_separated</span><span class="op">&lt;</span><span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">op</span>: <span class="ident">U</span>)
+    <span class="kw">fn</span> <span class="ident">append_separated</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">op</span>: <span class="ident">U</span>)
     <span class="kw">where</span>
-        <span class="ident">I</span>: <span class="ident">IntoIterator</span>,
-        <span class="ident">I</span>::<span class="ident">Item</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">T</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span><span class="op">&gt;</span>,
         <span class="ident">U</span>: <span class="ident">ToTokens</span>;
 
     <span class="doccomment">/// For use by `ToTokens` implementations.</span>
     <span class="doccomment">///</span>
     <span class="doccomment">/// Appends all tokens in the iterator `I`, appending `U` after each</span>
     <span class="doccomment">/// element, including after the last element of the iterator.</span>
-    <span class="kw">fn</span> <span class="ident">append_terminated</span><span class="op">&lt;</span><span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">term</span>: <span class="ident">U</span>)
+    <span class="kw">fn</span> <span class="ident">append_terminated</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">term</span>: <span class="ident">U</span>)
     <span class="kw">where</span>
-        <span class="ident">I</span>: <span class="ident">IntoIterator</span>,
-        <span class="ident">I</span>::<span class="ident">Item</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">T</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span><span class="op">&gt;</span>,
         <span class="ident">U</span>: <span class="ident">ToTokens</span>;
 }
 
@@ -179,20 +179,20 @@
         <span class="self">self</span>.<span class="ident">extend</span>(<span class="ident">iter</span>::<span class="ident">once</span>(<span class="ident">token</span>.<span class="ident">into</span>()));
     }
 
-    <span class="kw">fn</span> <span class="ident">append_all</span><span class="op">&lt;</span><span class="ident">I</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>)
+    <span class="kw">fn</span> <span class="ident">append_all</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">I</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>)
     <span class="kw">where</span>
-        <span class="ident">I</span>: <span class="ident">IntoIterator</span>,
-        <span class="ident">I</span>::<span class="ident">Item</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">T</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span><span class="op">&gt;</span>,
     {
         <span class="kw">for</span> <span class="ident">token</span> <span class="kw">in</span> <span class="ident">iter</span> {
             <span class="ident">token</span>.<span class="ident">to_tokens</span>(<span class="self">self</span>);
         }
     }
 
-    <span class="kw">fn</span> <span class="ident">append_separated</span><span class="op">&lt;</span><span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">op</span>: <span class="ident">U</span>)
+    <span class="kw">fn</span> <span class="ident">append_separated</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">op</span>: <span class="ident">U</span>)
     <span class="kw">where</span>
-        <span class="ident">I</span>: <span class="ident">IntoIterator</span>,
-        <span class="ident">I</span>::<span class="ident">Item</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">T</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span><span class="op">&gt;</span>,
         <span class="ident">U</span>: <span class="ident">ToTokens</span>,
     {
         <span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">token</span>) <span class="kw">in</span> <span class="ident">iter</span>.<span class="ident">into_iter</span>().<span class="ident">enumerate</span>() {
@@ -203,10 +203,10 @@
         }
     }
 
-    <span class="kw">fn</span> <span class="ident">append_terminated</span><span class="op">&lt;</span><span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">term</span>: <span class="ident">U</span>)
+    <span class="kw">fn</span> <span class="ident">append_terminated</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">I</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">iter</span>: <span class="ident">I</span>, <span class="ident">term</span>: <span class="ident">U</span>)
     <span class="kw">where</span>
-        <span class="ident">I</span>: <span class="ident">IntoIterator</span>,
-        <span class="ident">I</span>::<span class="ident">Item</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">T</span>: <span class="ident">ToTokens</span>,
+        <span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span><span class="op">&gt;</span>,
         <span class="ident">U</span>: <span class="ident">ToTokens</span>,
     {
         <span class="kw">for</span> <span class="ident">token</span> <span class="kw">in</span> <span class="ident">iter</span> {
diff --git a/docs/crates-enclave/src/quote/lib.rs.html b/docs/crates-enclave/src/quote/lib.rs.html
index bb907b6..1e9d5de 100644
--- a/docs/crates-enclave/src/quote/lib.rs.html
+++ b/docs/crates-enclave/src/quote/lib.rs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `/home/mssun/incubator-mesatee/build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quote/src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../../norm [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `/home/mssun/incubator-mesatee/build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quote-0.6.13/src/lib.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>lib.rs.html -- source</title><link rel="stylesheet" type="text/css" href="../ [...]
 <span id="2">  2</span>
 <span id="3">  3</span>
 <span id="4">  4</span>
@@ -859,99 +859,6 @@
 <span id="859">859</span>
 <span id="860">860</span>
 <span id="861">861</span>
-<span id="862">862</span>
-<span id="863">863</span>
-<span id="864">864</span>
-<span id="865">865</span>
-<span id="866">866</span>
-<span id="867">867</span>
-<span id="868">868</span>
-<span id="869">869</span>
-<span id="870">870</span>
-<span id="871">871</span>
-<span id="872">872</span>
-<span id="873">873</span>
-<span id="874">874</span>
-<span id="875">875</span>
-<span id="876">876</span>
-<span id="877">877</span>
-<span id="878">878</span>
-<span id="879">879</span>
-<span id="880">880</span>
-<span id="881">881</span>
-<span id="882">882</span>
-<span id="883">883</span>
-<span id="884">884</span>
-<span id="885">885</span>
-<span id="886">886</span>
-<span id="887">887</span>
-<span id="888">888</span>
-<span id="889">889</span>
-<span id="890">890</span>
-<span id="891">891</span>
-<span id="892">892</span>
-<span id="893">893</span>
-<span id="894">894</span>
-<span id="895">895</span>
-<span id="896">896</span>
-<span id="897">897</span>
-<span id="898">898</span>
-<span id="899">899</span>
-<span id="900">900</span>
-<span id="901">901</span>
-<span id="902">902</span>
-<span id="903">903</span>
-<span id="904">904</span>
-<span id="905">905</span>
-<span id="906">906</span>
-<span id="907">907</span>
-<span id="908">908</span>
-<span id="909">909</span>
-<span id="910">910</span>
-<span id="911">911</span>
-<span id="912">912</span>
-<span id="913">913</span>
-<span id="914">914</span>
-<span id="915">915</span>
-<span id="916">916</span>
-<span id="917">917</span>
-<span id="918">918</span>
-<span id="919">919</span>
-<span id="920">920</span>
-<span id="921">921</span>
-<span id="922">922</span>
-<span id="923">923</span>
-<span id="924">924</span>
-<span id="925">925</span>
-<span id="926">926</span>
-<span id="927">927</span>
-<span id="928">928</span>
-<span id="929">929</span>
-<span id="930">930</span>
-<span id="931">931</span>
-<span id="932">932</span>
-<span id="933">933</span>
-<span id="934">934</span>
-<span id="935">935</span>
-<span id="936">936</span>
-<span id="937">937</span>
-<span id="938">938</span>
-<span id="939">939</span>
-<span id="940">940</span>
-<span id="941">941</span>
-<span id="942">942</span>
-<span id="943">943</span>
-<span id="944">944</span>
-<span id="945">945</span>
-<span id="946">946</span>
-<span id="947">947</span>
-<span id="948">948</span>
-<span id="949">949</span>
-<span id="950">950</span>
-<span id="951">951</span>
-<span id="952">952</span>
-<span id="953">953</span>
-<span id="954">954</span>
 </pre><div class="example-wrap"><pre class="rust ">
 <span class="doccomment">//! This crate provides the [`quote!`] macro for turning Rust syntax tree data</span>
 <span class="doccomment">//! structures into tokens of source code.</span>
@@ -961,8 +868,8 @@
 <span class="doccomment">//! Procedural macros in Rust receive a stream of tokens as input, execute</span>
 <span class="doccomment">//! arbitrary Rust code to determine how to manipulate those tokens, and produce</span>
 <span class="doccomment">//! a stream of tokens to hand back to the compiler to compile into the caller&#39;s</span>
-<span class="doccomment">//! crate. Quasi-quoting is a solution to one piece of that &amp;mdash; producing</span>
-<span class="doccomment">//! tokens to return to the compiler.</span>
+<span class="doccomment">//! crate. Quasi-quoting is a solution to one piece of that -- producing tokens</span>
+<span class="doccomment">//! to return to the compiler.</span>
 <span class="doccomment">//!</span>
 <span class="doccomment">//! The idea of quasi-quoting is that we write *code* that we treat as *data*.</span>
 <span class="doccomment">//! Within the `quote!` macro, we can write what looks like code to our text</span>
@@ -976,13 +883,14 @@
 <span class="doccomment">//! general-purpose Rust quasi-quoting library and is not specific to procedural</span>
 <span class="doccomment">//! macros.</span>
 <span class="doccomment">//!</span>
+<span class="doccomment">//! *Version requirement: Quote supports any compiler version back to Rust&#39;s</span>
+<span class="doccomment">//! very first support for procedural macros in Rust 1.15.0.*</span>
+<span class="doccomment">//!</span>
 <span class="doccomment">//! ```toml</span>
 <span class="doccomment">//! [dependencies]</span>
-<span class="doccomment">//! quote = &quot;1.0&quot;</span>
+<span class="doccomment">//! quote = &quot;0.6&quot;</span>
 <span class="doccomment">//! ```</span>
 <span class="doccomment">//!</span>
-<span class="doccomment">//! &lt;br&gt;</span>
-<span class="doccomment">//!</span>
 <span class="doccomment">//! # Example</span>
 <span class="doccomment">//!</span>
 <span class="doccomment">//! The following quasi-quoted block of code is something you might find in [a]</span>
@@ -995,7 +903,7 @@
 <span class="doccomment">//! [a]: https://serde.rs/</span>
 <span class="doccomment">//! [`quote_spanned!`]: macro.quote_spanned.html</span>
 <span class="doccomment">//!</span>
-<span class="doccomment">//! ```</span>
+<span class="doccomment">//! ```edition2018</span>
 <span class="doccomment">//! # use quote::quote;</span>
 <span class="doccomment">//! #</span>
 <span class="doccomment">//! # let generics = &quot;&quot;;</span>
@@ -1026,47 +934,42 @@
 <span class="doccomment">//!     }</span>
 <span class="doccomment">//! };</span>
 <span class="doccomment">//! ```</span>
-
-<span class="attribute">#![<span class="ident">forbid</span>(<span class="ident">unsafe_code</span>)]</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! # Recursion limit</span>
+<span class="doccomment">//!</span>
+<span class="doccomment">//! The `quote!` macro relies on deep recursion so some large invocations may</span>
+<span class="doccomment">//! fail with &quot;recursion limit reached&quot; when you compile. If it fails, bump up</span>
+<span class="doccomment">//! the recursion limit by adding `#![recursion_limit = &quot;128&quot;]` to your crate.</span>
+<span class="doccomment">//! An even higher limit may be necessary for especially large invocations.</span>
 
 <span class="comment">// Quote types in rustdoc of other crates get linked to here.</span>
-<span class="attribute">#![<span class="ident">doc</span>(<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://docs.rs/quote/1.0.3&quot;</span>)]</span>
+<span class="attribute">#![<span class="ident">doc</span>(<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://docs.rs/quote/0.6.13&quot;</span>)]</span>
 
 <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(
     <span class="ident">not</span>(<span class="ident">all</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>, <span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;unknown&quot;</span>)),
     <span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;proc-macro&quot;</span>
 ))]</span>
 <span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">proc_macro</span>;
+<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">proc_macro2</span>;
 
 <span class="kw">mod</span> <span class="ident">ext</span>;
-<span class="kw">mod</span> <span class="ident">format</span>;
-<span class="kw">mod</span> <span class="ident">ident_fragment</span>;
+<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">ext</span>::<span class="ident">TokenStreamExt</span>;
+
 <span class="kw">mod</span> <span class="ident">to_tokens</span>;
+<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">to_tokens</span>::<span class="ident">ToTokens</span>;
 
 <span class="comment">// Not public API.</span>
 <span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
 <span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;runtime.rs&quot;</span>]</span>
-<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">__private</span>;
-
-<span class="kw">pub</span> <span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">ext</span>::<span class="ident">TokenStreamExt</span>;
-<span class="kw">pub</span> <span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">ident_fragment</span>::<span class="ident">IdentFragment</span>;
-<span class="kw">pub</span> <span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">to_tokens</span>::<span class="ident">ToTokens</span>;
-
-<span class="comment">// Not public API.</span>
-<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">spanned</span>;
+<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">__rt</span>;
 
 <span class="doccomment">/// The whole point.</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// Performs variable interpolation against the input and produces it as</span>
-<span class="doccomment">/// [`proc_macro2::TokenStream`].</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// Note: for returning tokens to the compiler in a procedural macro, use</span>
-<span class="doccomment">/// `.into()` on the result to convert to [`proc_macro::TokenStream`].</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// [`TokenStream`]: https://docs.rs/proc-macro2/1.0/proc_macro2/struct.TokenStream.html</span>
+<span class="doccomment">/// [`TokenStream`]. For returning tokens to the compiler in a procedural macro, use</span>
+<span class="doccomment">/// `into()` to build a `TokenStream`.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;br&gt;</span>
+<span class="doccomment">/// [`TokenStream`]: https://docs.rs/proc-macro2/0.4/proc_macro2/struct.TokenStream.html</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// # Interpolation</span>
 <span class="doccomment">///</span>
@@ -1083,15 +986,27 @@
 <span class="doccomment">/// Repetition is done using `#(...)*` or `#(...),*` again similar to</span>
 <span class="doccomment">/// `macro_rules!`. This iterates through the elements of any variable</span>
 <span class="doccomment">/// interpolated within the repetition and inserts a copy of the repetition body</span>
-<span class="doccomment">/// for each one. The variables in an interpolation may be a `Vec`, slice,</span>
-<span class="doccomment">/// `BTreeSet`, or any `Iterator`.</span>
+<span class="doccomment">/// for each one. The variables in an interpolation may be anything that</span>
+<span class="doccomment">/// implements `IntoIterator`, including `Vec` or a pre-existing iterator.</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// - `#(#var)*` — no separators</span>
 <span class="doccomment">/// - `#(#var),*` — the character before the asterisk is used as a separator</span>
 <span class="doccomment">/// - `#( struct #var; )*` — the repetition can contain other tokens</span>
 <span class="doccomment">/// - `#( #k =&gt; println!(&quot;{}&quot;, #v), )*` — even multiple interpolations</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;br&gt;</span>
+<span class="doccomment">/// There are two limitations around interpolations in a repetition:</span>
+<span class="doccomment">///</span>
+<span class="doccomment">/// - Every interpolation inside of a repetition must be a distinct variable.</span>
+<span class="doccomment">///   That is, `#(#a #a)*` is not allowed. Work around this by collecting `a`</span>
+<span class="doccomment">///   into a vector and taking references `a1 = &amp;a` and `a2 = &amp;a` which you use</span>
+<span class="doccomment">///   inside the repetition: `#(#a1 #a2)*`. Where possible, use meaningful names</span>
+<span class="doccomment">///   that indicate the distinct role of each copy.</span>
+<span class="doccomment">///</span>
+<span class="doccomment">/// - Every interpolation inside of a repetition must be iterable. If we have</span>
+<span class="doccomment">///   `vec` which is a vector and `ident` which is a single identifier,</span>
+<span class="doccomment">///   `#(#ident #vec)*` is not allowed. Work around this by using</span>
+<span class="doccomment">///   `std::iter::repeat(ident)` to produce an iterable that can be used from</span>
+<span class="doccomment">///   within the repetition.</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// # Hygiene</span>
 <span class="doccomment">///</span>
@@ -1099,14 +1014,12 @@
 <span class="doccomment">/// `ToTokens` implementation. Tokens that originate within the `quote!`</span>
 <span class="doccomment">/// invocation are spanned with [`Span::call_site()`].</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// [`Span::call_site()`]: https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.html#method.call_site</span>
+<span class="doccomment">/// [`Span::call_site()`]: https://docs.rs/proc-macro2/0.4/proc_macro2/struct.Span.html#method.call_site</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// A different span can be provided through the [`quote_spanned!`] macro.</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// [`quote_spanned!`]: macro.quote_spanned.html</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;br&gt;</span>
-<span class="doccomment">///</span>
 <span class="doccomment">/// # Return type</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// The macro evaluates to an expression of type `proc_macro2::TokenStream`.</span>
@@ -1127,11 +1040,9 @@
 <span class="doccomment">///</span>
 <span class="doccomment">/// [`From`]: https://doc.rust-lang.org/std/convert/trait.From.html</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;br&gt;</span>
-<span class="doccomment">///</span>
 <span class="doccomment">/// # Examples</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ### Procedural macro</span>
+<span class="doccomment">/// ## Procedural macro</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// The structure of a basic procedural macro is as follows. Refer to the [Syn]</span>
 <span class="doccomment">/// crate for further useful guidance on using `quote!` as part of a procedural</span>
@@ -1139,14 +1050,12 @@
 <span class="doccomment">///</span>
 <span class="doccomment">/// [Syn]: https://github.com/dtolnay/syn</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # #[cfg(any())]</span>
 <span class="doccomment">/// extern crate proc_macro;</span>
-<span class="doccomment">/// # extern crate proc_macro2;</span>
+<span class="doccomment">/// # use proc_macro2 as proc_macro;</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// # #[cfg(any())]</span>
 <span class="doccomment">/// use proc_macro::TokenStream;</span>
-<span class="doccomment">/// # use proc_macro2::TokenStream;</span>
 <span class="doccomment">/// use quote::quote;</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// # const IGNORE_TOKENS: &amp;&#39;static str = stringify! {</span>
@@ -1176,16 +1085,14 @@
 <span class="doccomment">/// }</span>
 <span class="doccomment">/// ```</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;p&gt;&lt;br&gt;&lt;/p&gt;</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ### Combining quoted fragments</span>
+<span class="doccomment">/// ## Combining quoted fragments</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// Usually you don&#39;t end up constructing an entire final `TokenStream` in one</span>
 <span class="doccomment">/// piece. Different parts may come from different helper functions. The tokens</span>
 <span class="doccomment">/// produced by `quote!` themselves implement `ToTokens` and so can be</span>
 <span class="doccomment">/// interpolated into later `quote!` invocations to build up a final result.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use quote::quote;</span>
 <span class="doccomment">/// #</span>
 <span class="doccomment">/// let type_definition = quote! {...};</span>
@@ -1197,9 +1104,7 @@
 <span class="doccomment">/// };</span>
 <span class="doccomment">/// ```</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;p&gt;&lt;br&gt;&lt;/p&gt;</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ### Constructing identifiers</span>
+<span class="doccomment">/// ## Constructing identifiers</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// Suppose we have an identifier `ident` which came from somewhere in a macro</span>
 <span class="doccomment">/// input and we need to modify it in some way for the macro output. Let&#39;s</span>
@@ -1209,7 +1114,7 @@
 <span class="doccomment">/// behavior of concatenating them. The underscore and the identifier will</span>
 <span class="doccomment">/// continue to be two separate tokens as if you had written `_ x`.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use proc_macro2::{self as syn, Span};</span>
 <span class="doccomment">/// # use quote::quote;</span>
 <span class="doccomment">/// #</span>
@@ -1222,28 +1127,10 @@
 <span class="doccomment">/// # ;</span>
 <span class="doccomment">/// ```</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// The solution is to build a new identifier token with the correct value. As</span>
-<span class="doccomment">/// this is such a common case, the [`format_ident!`] macro provides a</span>
-<span class="doccomment">/// convenient utility for doing so correctly.</span>
+<span class="doccomment">/// The solution is to perform token-level manipulations using the APIs provided</span>
+<span class="doccomment">/// by Syn and proc-macro2.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">/// # use proc_macro2::{Ident, Span};</span>
-<span class="doccomment">/// # use quote::{format_ident, quote};</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// # let ident = Ident::new(&quot;i&quot;, Span::call_site());</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// let varname = format_ident!(&quot;_{}&quot;, ident);</span>
-<span class="doccomment">/// quote! {</span>
-<span class="doccomment">///     let mut #varname = 0;</span>
-<span class="doccomment">/// }</span>
-<span class="doccomment">/// # ;</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// Alternatively, the APIs provided by Syn and proc-macro2 can be used to</span>
-<span class="doccomment">/// directly build the identifier. This is roughly equivalent to the above, but</span>
-<span class="doccomment">/// will not handle `ident` being a raw identifier.</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use proc_macro2::{self as syn, Span};</span>
 <span class="doccomment">/// # use quote::quote;</span>
 <span class="doccomment">/// #</span>
@@ -1257,15 +1144,13 @@
 <span class="doccomment">/// # ;</span>
 <span class="doccomment">/// ```</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;p&gt;&lt;br&gt;&lt;/p&gt;</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ### Making method calls</span>
+<span class="doccomment">/// ## Making method calls</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// Let&#39;s say our macro requires some type specified in the macro input to have</span>
 <span class="doccomment">/// a constructor called `new`. We have the type in a variable called</span>
 <span class="doccomment">/// `field_type` of type `syn::Type` and want to invoke the constructor.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use quote::quote;</span>
 <span class="doccomment">/// #</span>
 <span class="doccomment">/// # let field_type = quote!(...);</span>
@@ -1283,7 +1168,7 @@
 <span class="doccomment">/// syntax. Ordinarily in handwritten Rust we would write `Vec::&lt;i32&gt;::new()`</span>
 <span class="doccomment">/// but for macros often the following is more convenient.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use quote::quote;</span>
 <span class="doccomment">/// #</span>
 <span class="doccomment">/// # let field_type = quote!(...);</span>
@@ -1298,7 +1183,7 @@
 <span class="doccomment">///</span>
 <span class="doccomment">/// A similar pattern is appropriate for trait methods.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use quote::quote;</span>
 <span class="doccomment">/// #</span>
 <span class="doccomment">/// # let field_type = quote!(...);</span>
@@ -1308,137 +1193,25 @@
 <span class="doccomment">/// }</span>
 <span class="doccomment">/// # ;</span>
 <span class="doccomment">/// ```</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// &lt;p&gt;&lt;br&gt;&lt;/p&gt;</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ### Interpolating text inside of doc comments</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// Neither doc comments nor string literals get interpolation behavior in</span>
-<span class="doccomment">/// quote:</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ```compile_fail</span>
-<span class="doccomment">/// quote! {</span>
-<span class="doccomment">///     /// try to interpolate: #ident</span>
-<span class="doccomment">///     ///</span>
-<span class="doccomment">///     /// ...</span>
-<span class="doccomment">/// }</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ```compile_fail</span>
-<span class="doccomment">/// quote! {</span>
-<span class="doccomment">///     #[doc = &quot;try to interpolate: #ident&quot;]</span>
-<span class="doccomment">/// }</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// Macro calls in a doc attribute are not valid syntax:</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ```compile_fail</span>
-<span class="doccomment">/// quote! {</span>
-<span class="doccomment">///     #[doc = concat!(&quot;try to interpolate: &quot;, stringify!(#ident))]</span>
-<span class="doccomment">/// }</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// Instead the best way to build doc comments that involve variables is by</span>
-<span class="doccomment">/// formatting the doc string literal outside of quote.</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ```rust</span>
-<span class="doccomment">/// # use proc_macro2::{Ident, Span};</span>
-<span class="doccomment">/// # use quote::quote;</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// # const IGNORE: &amp;str = stringify! {</span>
-<span class="doccomment">/// let msg = format!(...);</span>
-<span class="doccomment">/// # };</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// # let ident = Ident::new(&quot;var&quot;, Span::call_site());</span>
-<span class="doccomment">/// # let msg = format!(&quot;try to interpolate: {}&quot;, ident);</span>
-<span class="doccomment">/// quote! {</span>
-<span class="doccomment">///     #[doc = #msg]</span>
-<span class="doccomment">///     ///</span>
-<span class="doccomment">///     /// ...</span>
-<span class="doccomment">/// }</span>
-<span class="doccomment">/// # ;</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// &lt;p&gt;&lt;br&gt;&lt;/p&gt;</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ### Indexing into a tuple struct</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// When interpolating indices of a tuple or tuple struct, we need them not to</span>
-<span class="doccomment">/// appears suffixed as integer literals by interpolating them as [`syn::Index`]</span>
-<span class="doccomment">/// instead.</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// [`syn::Index`]: https://docs.rs/syn/1.0/syn/struct.Index.html</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ```compile_fail</span>
-<span class="doccomment">/// let i = 0usize..self.fields.len();</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// // expands to 0 + self.0usize.heap_size() + self.1usize.heap_size() + ...</span>
-<span class="doccomment">/// // which is not valid syntax</span>
-<span class="doccomment">/// quote! {</span>
-<span class="doccomment">///     0 #( + self.#i.heap_size() )*</span>
-<span class="doccomment">/// }</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
-<span class="doccomment">/// # use proc_macro2::{Ident, TokenStream};</span>
-<span class="doccomment">/// # use quote::quote;</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// # mod syn {</span>
-<span class="doccomment">/// #     use proc_macro2::{Literal, TokenStream};</span>
-<span class="doccomment">/// #     use quote::{ToTokens, TokenStreamExt};</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// #     pub struct Index(usize);</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// #     impl From&lt;usize&gt; for Index {</span>
-<span class="doccomment">/// #         fn from(i: usize) -&gt; Self {</span>
-<span class="doccomment">/// #             Index(i)</span>
-<span class="doccomment">/// #         }</span>
-<span class="doccomment">/// #     }</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// #     impl ToTokens for Index {</span>
-<span class="doccomment">/// #         fn to_tokens(&amp;self, tokens: &amp;mut TokenStream) {</span>
-<span class="doccomment">/// #             tokens.append(Literal::usize_unsuffixed(self.0));</span>
-<span class="doccomment">/// #         }</span>
-<span class="doccomment">/// #     }</span>
-<span class="doccomment">/// # }</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// # struct Struct {</span>
-<span class="doccomment">/// #     fields: Vec&lt;Ident&gt;,</span>
-<span class="doccomment">/// # }</span>
-<span class="doccomment">/// #</span>
-<span class="doccomment">/// # impl Struct {</span>
-<span class="doccomment">/// #     fn example(&amp;self) -&gt; TokenStream {</span>
-<span class="doccomment">/// let i = (0..self.fields.len()).map(syn::Index::from);</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// // expands to 0 + self.0.heap_size() + self.1.heap_size() + ...</span>
-<span class="doccomment">/// quote! {</span>
-<span class="doccomment">///     0 #( + self.#i.heap_size() )*</span>
-<span class="doccomment">/// }</span>
-<span class="doccomment">/// #     }</span>
-<span class="doccomment">/// # }</span>
-<span class="doccomment">/// ```</span>
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="attribute">#[<span class="ident">macro_export</span>(<span class="ident">local_inner_macros</span>)]</span>
 <span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote</span> {
     ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_spanned</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Span</span>::<span class="ident">call_site</span>()<span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>)<span [...]
+        <span class="macro">quote_spanned</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Span</span>::<span class="ident">call_site</span>()<span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>)<span class="kw-2">*</span>)
     };
 }
 
 <span class="doccomment">/// Same as `quote!`, but applies a given span to all tokens originating within</span>
 <span class="doccomment">/// the macro invocation.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;br&gt;</span>
-<span class="doccomment">///</span>
 <span class="doccomment">/// # Syntax</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// A span expression of type [`Span`], followed by `=&gt;`, followed by the tokens</span>
-<span class="doccomment">/// to quote. The span expression should be brief &amp;mdash; use a variable for</span>
-<span class="doccomment">/// anything more than a few characters. There should be no space before the</span>
-<span class="doccomment">/// `=&gt;` token.</span>
+<span class="doccomment">/// to quote. The span expression should be brief -- use a variable for anything</span>
+<span class="doccomment">/// more than a few characters. There should be no space before the `=&gt;` token.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// [`Span`]: https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.html</span>
+<span class="doccomment">/// [`Span`]: https://docs.rs/proc-macro2/0.4/proc_macro2/struct.Span.html</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use proc_macro2::Span;</span>
 <span class="doccomment">/// # use quote::quote_spanned;</span>
 <span class="doccomment">/// #</span>
@@ -1463,16 +1236,12 @@
 <span class="doccomment">/// being evaluated in the context of the procedural macro and the remaining</span>
 <span class="doccomment">/// tokens being evaluated in the generated code.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;br&gt;</span>
-<span class="doccomment">///</span>
 <span class="doccomment">/// # Hygiene</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// Any interpolated tokens preserve the `Span` information provided by their</span>
 <span class="doccomment">/// `ToTokens` implementation. Tokens that originate within the `quote_spanned!`</span>
 <span class="doccomment">/// invocation are spanned with the given span argument.</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// &lt;br&gt;</span>
-<span class="doccomment">///</span>
 <span class="doccomment">/// # Example</span>
 <span class="doccomment">///</span>
 <span class="doccomment">/// The following procedural macro code uses `quote_spanned!` to assert that a</span>
@@ -1481,7 +1250,7 @@
 <span class="doccomment">///</span>
 <span class="doccomment">/// [`Sync`]: https://doc.rust-lang.org/std/marker/trait.Sync.html</span>
 <span class="doccomment">///</span>
-<span class="doccomment">/// ```</span>
+<span class="doccomment">/// ```edition2018</span>
 <span class="doccomment">/// # use quote::{quote_spanned, TokenStreamExt, ToTokens};</span>
 <span class="doccomment">/// # use proc_macro2::{Span, TokenStream};</span>
 <span class="doccomment">/// #</span>
@@ -1519,392 +1288,437 @@
 <span class="doccomment">///</span>
 <span class="doccomment">/// In this example it is important for the where-clause to be spanned with the</span>
 <span class="doccomment">/// line/column information of the user&#39;s input type so that error messages are</span>
-<span class="doccomment">/// placed appropriately by the compiler.</span>
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="doccomment">/// placed appropriately by the compiler. But it is also incredibly important</span>
+<span class="doccomment">/// that `Sync` resolves at the macro definition site and not the macro call</span>
+<span class="doccomment">/// site. If we resolve `Sync` at the same span that the user&#39;s type is going to</span>
+<span class="doccomment">/// be resolved, then they could bypass our check by defining their own trait</span>
+<span class="doccomment">/// named `Sync` that is implemented for their type.</span>
+<span class="attribute">#[<span class="ident">macro_export</span>(<span class="ident">local_inner_macros</span>)]</span>
 <span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_spanned</span> {
     (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">expr</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {{
-        <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">_s</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">TokenStream</span>::<span class="ident">new</span>();
-        <span class="kw">let</span> <span class="ident">_span</span>: <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Span</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>;
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_each_token</span><span class="op">!</span>(<span class="ident">_s</span> <span class="ident">_span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>)<span class="kw-2">*</span>);
+        <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">_s</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">TokenStream</span>::<span class="ident">new</span>();
+        <span class="kw">let</span> <span class="ident">_span</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>;
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="ident">_s</span> <span class="ident">_span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>)<span class="kw-2">*</span>);
         <span class="ident">_s</span>
     }};
 }
 
-<span class="comment">// Extract the names of all #metavariables and pass them to the $call macro.</span>
+<span class="comment">// Extract the names of all #metavariables and pass them to the $finish macro.</span>
 <span class="comment">//</span>
-<span class="comment">// in:   pounded_var_names!(then!(...) a #b c #( #d )* #e)</span>
-<span class="comment">// out:  then!(... b);</span>
-<span class="comment">//       then!(... d);</span>
-<span class="comment">//       then!(... e);</span>
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="comment">// in:   pounded_var_names!(then () a #b c #( #d )* #e)</span>
+<span class="comment">// out:  then!(() b d e)</span>
+<span class="attribute">#[<span class="ident">macro_export</span>(<span class="ident">local_inner_macros</span>)]</span>
 <span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
 <span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">pounded_var_names</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span>:<span class="macro">ident</span><span class="macro">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>:<span class="ident">tt</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names_with_context</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span><span class="op">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>
-            (@ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="kw-2">*</span>)
-            ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="op">*</span> @)
-        )
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) # ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ) $(<span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span cla [...]
     };
-}
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
-<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">pounded_var_names_with_context</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span>:<span class="macro">ident</span><span class="macro">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>:<span class="ident">tt</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">b1</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">curr</sp [...]
-        $(
-            <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_with_context</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span><span class="op">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b1</span> <span class="macro-nonterminal">$</span><spa [...]
-        )<span class="op">*</span>
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) # [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ] $(<span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span cla [...]
     };
-}
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
-<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">pounded_var_with_context</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span>:<span class="macro">ident</span><span class="macro">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b1</span>:<span class="ident">tt</span> ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</sp [...]
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span><span class="op">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) # { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> } $(<span class="macro-nonterminal">$</span><span class="macro-nontermi [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span cla [...]
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span>:<span class="macro">ident</span><span class="macro">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b1</span>:<span class="ident">tt</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</sp [...]
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span><span class="op">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) # <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">ident</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class= [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="op">*</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>)
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span>:<span class="macro">ident</span><span class="macro">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b1</span>:<span class="ident">tt</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</sp [...]
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span><span class="op">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ) $(<span class="macro-nonterminal">$</span><span class="macro-nontermina [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span cla [...]
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span>:<span class="macro">ident</span><span class="macro">!</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) # <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span><span class="op">!</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>)<span class="op">*</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ] $(<span class="macro-nonterminal">$</span><span class="macro-nontermina [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span cla [...]
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">call</span>:<span class="macro">ident</span><span class="macro">!</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">extra</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b1</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">curr</span>:<span class="ident">tt</span>)  [...]
-}
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> } $(<span class="macro-nonterminal">$</span><span class="macro-nontermina [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span cla [...]
+    };
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
-<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_bind_into_iter</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">has_iter</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="comment">// `mut` may be unused if $var occurs multiple times in the list.</span>
-        <span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_mut</span>)]</span>
-        <span class="kw">let</span> (<span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>, <span class="ident">i</span>) <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>.<span class="ident">quote_into_iter</span>();
-        <span class="kw">let</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">has_iter</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">has_iter</span> <span class="op">|</span> <span class="ident">i</span>;
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ignore</span>:<span class="ident">tt</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ide [...]
+        <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>)
     };
-}
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
-<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_bind_next_or_break</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>:<span class="ident">ident</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="kw">let</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span> <span class="op">=</span> <span class="kw">match</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>.<span class="ident">next</span>() {
-            <span class="prelude-val">Some</span>(<span class="ident">_x</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">RepInterp</span>(<span class="ident">_x</span>),
-            <span class="prelude-val">None</span> <span class="op">=</span><span class="op">&gt;</span> <span class="kw">break</span>,
-        };
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span>:<span class="ident">ident</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>)) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">finish</span><span class="op">!</span>(() $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">found</span>)<span class="kw-2">*</span>)
     };
 }
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="comment">// in:   nested_tuples_pat!(() a b c d e)</span>
+<span class="comment">// out:  ((((a b) c) d) e)</span>
+<span class="comment">//</span>
+<span class="comment">// in:   nested_tuples_pat!(() a)</span>
+<span class="comment">// out:  a</span>
+<span class="attribute">#[<span class="ident">macro_export</span>(<span class="ident">local_inner_macros</span>)]</span>
 <span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_each_token</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_tokens_with_context</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>
-            (@ @ @ @ @ @ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="kw-2">*</span>)
-            (@ @ @ @ @ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="op">*</span> @)
-            (@ @ @ @ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="op">*</span> @ @)
-            (@ @ @ $((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>))<span class="op">*</span> @ @ @)
-            (@ @ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="op">*</span> @ @ @ @)
-            (@ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="op">*</span> @ @ @ @ @)
-            ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tts</span>)<span class="op">*</span> @ @ @ @ @ @)
-        );
+<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">nested_tuples_pat</span> {
+    (()) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw-2">&amp;</span>()
+    };
+
+    (() <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">ident</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">nested_tuples_pat</span><span class="macro">!</span>((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>)
+    };
+
+    ((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">pat</span>:<span class="ident">pat</span>) <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">ident</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">nested_tuples_pat</span><span class="macro">!</span>(((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">pat</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>)) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>)
+    };
+
+    ((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">done</span>:<span class="ident">pat</span>)) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">done</span>
     };
 }
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="comment">// in:   multi_zip_expr!(() a b c d e)</span>
+<span class="comment">// out:  a.into_iter().zip(b).zip(c).zip(d).zip(e)</span>
+<span class="comment">//</span>
+<span class="comment">// in:   multi_zip_iter!(() a)</span>
+<span class="comment">// out:  a</span>
+<span class="attribute">#[<span class="ident">macro_export</span>(<span class="ident">local_inner_macros</span>)]</span>
 <span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_tokens_with_context</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span>
-        ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">b1</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>)
-        ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">curr</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>)
-        ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">a1</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">a2</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">a3</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>)
-    ) <span class="op">=</span><span class="op">&gt;</span> {
-        $(
-            <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_token_with_context</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span> <span class="macro-nonterminal">$</span><span class="macro-nontermin [...]
-        )<span class="op">*</span>
+<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">multi_zip_expr</span> {
+    (()) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="kw-2">&amp;</span>[]
+    };
+
+    (() <span class="macro-nonterminal">$</span><span class="macro-nonterminal">single</span>:<span class="ident">ident</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">single</span>
+    };
+
+    (() <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">ident</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">multi_zip_expr</span><span class="macro">!</span>((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>.<span class="ident">into_iter</span>()) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>)
+    };
+
+    ((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">zips</span>:<span class="ident">expr</span>) <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">ident</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">multi_zip_expr</span><span class="macro">!</span>((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">zips</span>.<span class="ident">zip</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>)) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>)
+    };
+
+    ((<span class="macro-nonterminal">$</span><span class="macro-nonterminal">done</span>:<span class="ident">expr</span>)) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">done</span>
     };
 }
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="attribute">#[<span class="ident">macro_export</span>(<span class="ident">local_inner_macros</span>)]</span>
 <span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_token_with_context</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> <span class="macro-nontermi [...]
-
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> <span class="macro-nontermi [...]
-        <span class="kw">use</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">ext</span>::<span class="kw-2">*</span>;
-        <span class="kw">let</span> <span class="ident">has_iter</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">ThereIsNoIteratorInRepetition</span>;
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names</span><span class="op">!</span>(<span class="macro">quote_bind_into_iter</span><span class="macro">!</span>(<span class="ident">has_iter</span>) () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
-        <span class="kw">let</span> <span class="kw">_</span>: <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">HasIterator</span> <span class="op">=</span> <span class="ident">has_iter</span>;
-        <span class="comment">// This is `while true` instead of `loop` because if there are no</span>
-        <span class="comment">// iterators used inside of this repetition then the body would not</span>
-        <span class="comment">// contain any `break`, so the compiler would emit unreachable code</span>
-        <span class="comment">// warnings on anything below the loop. We use has_iter to detect and</span>
-        <span class="comment">// fail to compile when there are no iterators, so here we just work</span>
-        <span class="comment">// around the unneeded extra warning.</span>
-        <span class="kw">while</span> <span class="bool-val">true</span> {
-            <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names</span><span class="op">!</span>(<span class="macro">quote_bind_next_or_break</span><span class="macro">!</span>() () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
-            <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_each_token</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
+<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_each_token</span> {
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span>) <span class="op">=</span><span class="op">&gt;</span> {};
+
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # <span class="op">!</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> #);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> <span class="op">!</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
+    };
+
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ) <span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">re [...]
+        <span class="kw">for</span> <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="ident">nested_tuples_pat</span> () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>)
+        <span class="kw">in</span> <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="ident">multi_zip_expr</span> () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>) {
+            <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
         }
-    }};
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> # (( $(<span class="macro-n [...]
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> # ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">* [...]
-
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> <span class="macro-nontermi [...]
-        <span class="kw">use</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">ext</span>::<span class="kw-2">*</span>;
-        <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">_i</span> <span class="op">=</span> <span class="number">0usize</span>;
-        <span class="kw">let</span> <span class="ident">has_iter</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">ThereIsNoIteratorInRepetition</span>;
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names</span><span class="op">!</span>(<span class="macro">quote_bind_into_iter</span><span class="macro">!</span>(<span class="ident">has_iter</span>) () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
-        <span class="kw">let</span> <span class="kw">_</span>: <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">HasIterator</span> <span class="op">=</span> <span class="ident">has_iter</span>;
-        <span class="kw">while</span> <span class="bool-val">true</span> {
-            <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">pounded_var_names</span><span class="op">!</span>(<span class="macro">quote_bind_next_or_break</span><span class="macro">!</span>() () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
+    };
+
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ) <span class="macro-nonterminal">$</span><span class="macro-nonterminal">sep</span>:<span class="ident" [...]
+        <span class="kw">for</span> (<span class="ident">_i</span>, <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="ident">nested_tuples_pat</span> () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>))
+        <span class="kw">in</span> <span class="macro">pounded_var_names</span><span class="macro">!</span>(<span class="ident">multi_zip_expr</span> () $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>).<span class="ident">into_iter</span>().<span class="ident">enumerate</span>() {
             <span class="kw">if</span> <span class="ident">_i</span> <span class="op">&gt;</span> <span class="number">0</span> {
-                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_token</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">sep</span>);
+                <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">sep</span>);
             }
-            <span class="ident">_i</span> <span class="op">+</span><span class="op">=</span> <span class="number">1</span>;
-            <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_each_token</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
+            <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>);
         }
-    }};
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> # (( $(<span class="macro-n [...]
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> # ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">* [...]
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ) <span class="op">*</span> (<span class="kw-2">*</span>) <span class="macro-nonterminal">$</span><span  [...]
-        <span class="comment">// https://github.com/dtolnay/quote/issues/130</span>
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_token</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> <span class="kw-2">*</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ) <span class="macro-nonterminal">$</span><span class="macro-nonterminal">sep</span>:<span class="ident" [...]
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> <span class="macro-nontermi [...]
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">ToTokens</span>::<span class="ident">to_tokens</span>(<span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">var</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ] $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ide [...]
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> #);
+        <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>.<span class="ident">extend</span>({
+            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">g</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Group</span>::<span class="ident">new</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Delimiter</span>::<span class="ident">Bracket</span>,
+                <span class="macro">quote_spanned</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>),
+            );
+            <span class="ident">g</span>.<span class="ident">set_span</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+            <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">TokenTree</span>::<span class="ident">from</span>(<span class="ident">g</span>))
+        });
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> # (<span class="macro-nonte [...]
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b3</span>:<span class="ident">tt</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">b2</span>:<span class="ident">tt</span> <span class="macro-nontermi [...]
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_token</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">curr</span>);
+
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">ident</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw [...]
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">ToTokens</span>::<span class="ident">to_tokens</span>(<span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
-}
 
-<span class="attribute">#[<span class="ident">macro_export</span>]</span>
-<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
-<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_token</span> {
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> )) <span class="op">=</span><span class="op">&gt;</span> {
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ( $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">tt</span>)<span class="op">*</span> ) $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident [...]
         <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>.<span class="ident">extend</span>({
-            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">g</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Group</span>::<span class="ident">new</span>(
-                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Delimiter</span>::<span class="ident">Parenthesis</span>,
-                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_spanned</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>),
+            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">g</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Group</span>::<span class="ident">new</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Delimiter</span>::<span class="ident">Parenthesis</span>,
+                <span class="macro">quote_spanned</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>)<span class="kw-2">*</span>),
             );
             <span class="ident">g</span>.<span class="ident">set_span</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
-            <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">TokenTree</span>::<span class="ident">from</span>(<span class="ident">g</span>))
+            <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">TokenTree</span>::<span class="ident">from</span>(<span class="ident">g</span>))
         });
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> ]) <span class="op">=</span><span class="op">&gt;</span> {
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> [ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">tt</span>)<span class="op">*</span> ] $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident [...]
         <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>.<span class="ident">extend</span>({
-            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">g</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Group</span>::<span class="ident">new</span>(
-                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Delimiter</span>::<span class="ident">Bracket</span>,
-                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_spanned</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>),
+            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">g</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Group</span>::<span class="ident">new</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Delimiter</span>::<span class="ident">Bracket</span>,
+                <span class="macro">quote_spanned</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>)<span class="kw-2">*</span>),
             );
             <span class="ident">g</span>.<span class="ident">set_span</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
-            <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">TokenTree</span>::<span class="ident">from</span>(<span class="ident">g</span>))
+            <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">TokenTree</span>::<span class="ident">from</span>(<span class="ident">g</span>))
         });
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>:<span class="ident">tt</span>)<span class="op">*</span> }) <span class="op">=</span><span class="op">&gt;</span> {
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">tt</span>)<span class="op">*</span> } $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident [...]
         <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>.<span class="ident">extend</span>({
-            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">g</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Group</span>::<span class="ident">new</span>(
-                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">Delimiter</span>::<span class="ident">Brace</span>,
-                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">quote_spanned</span><span class="op">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">inner</span>)<span class="kw-2">*</span>),
+            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">g</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Group</span>::<span class="ident">new</span>(
+                <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">Delimiter</span>::<span class="ident">Brace</span>,
+                <span class="macro">quote_spanned</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span><span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>)<span class="kw-2">*</span>),
             );
             <span class="ident">g</span>.<span class="ident">set_span</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
-            <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">TokenTree</span>::<span class="ident">from</span>(<span class="ident">g</span>))
+            <span class="prelude-val">Some</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">TokenTree</span>::<span class="ident">from</span>(<span class="ident">g</span>))
         });
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">+</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_add</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">+</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_add</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">+</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_add_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">+</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_add_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">&amp;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_and</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&amp;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_and</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">&amp;</span><span class="kw-2">&amp;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_and_and</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">&amp;</span><span class="op">&amp;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt [...]
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_and_and</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">&amp;</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_and_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">&amp;</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_and_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> @) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_at</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> @ $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_at</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">!</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_bang</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">!</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_bang</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">^</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_caret</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">^</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_caret</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">^</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_caret_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">^</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_caret_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> :) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_colon</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> : $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_colon</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ::) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_colon2</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> :: $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_colon2</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ,) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_comma</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> , $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_comma</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">/</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_div</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">/</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_div</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">/</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_div_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">/</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_div_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> .) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_dot</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> . $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_dot</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ..) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_dot2</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> .. $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_dot2</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ...) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_dot3</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ... $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_dot3</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ..<span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_dot_dot_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ..<span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_dot_dot_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">=</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_eq_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">=</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_eq_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_ge</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_ge</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_gt</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_gt</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_le</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_le</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_lt</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_lt</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">*</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_mul_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">*</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_mul_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">!</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_ne</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">!</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_ne</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">|</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_or</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">|</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_or</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">|</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_or_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">|</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_or_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">|</span><span class="op">|</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_or_or</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">|</span><span class="op">|</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_or_or</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> #) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_pound</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> # $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_pound</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="question-mark">?</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_question</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="question-mark">?</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_question</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">-</span><span class="op">&gt;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_rarrow</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">-</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_rarrow</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">-</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_larrow</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">-</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_larrow</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">%</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_rem</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">%</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_rem</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">%</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_rem_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">%</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_rem_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">=</span><span class="op">&gt;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_fat_arrow</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">=</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_fat_arrow</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ;) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_semi</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> ; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_semi</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">&lt;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_shl</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">&lt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_shl</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">&lt;</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_shl_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&lt;</span><span class="op">&lt;</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span [...]
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_shl_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span><span class="op">&gt;</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_shr</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span><span class="op">&gt;</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_shr</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span><span class="op">&gt;</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_shr_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">&gt;</span><span class="op">&gt;</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span [...]
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_shr_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_star</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_star</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">-</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_sub</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">-</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_sub</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">-</span><span class="op">=</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_sub_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="op">-</span><span class="op">=</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">push_sub_eq</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>);
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ident</span>:<span class="ident">ident</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">push_ident</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>, <span class="macro">stringify</span><span class="macro">!</span>(<span class="macro-nontermi [...]
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">first</span>:<span class="ident">tt</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">* [...]
+        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__rt</span>::<span class="ident">parse</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>, <span class="macro">quote_stringify</span><span class="macro">!</span>(<span class="macro-nonterminal" [...]
+        <span class="macro">quote_each_token</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="kw-2">*</span>);
     };
+}
 
-    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">other</span>:<span class="ident">tt</span>) <span class="op">=</span><span class="op">&gt;</span> {
-        <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__private</span>::<span class="ident">parse</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">tokens</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">span</span>, <span class="macro">stringify</span><span class="macro">!</span>(<span class="macro-nonterminal"> [...]
+<span class="comment">// Unhygienically invoke whatever `stringify` the caller has in scope i.e. not a</span>
+<span class="comment">// local macro. The macros marked `local_inner_macros` above cannot invoke</span>
+<span class="comment">// `stringify` directly.</span>
+<span class="attribute">#[<span class="ident">macro_export</span>]</span>
+<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
+<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">quote_stringify</span> {
+    (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>:<span class="ident">tt</span>) <span class="op">=</span><span class="op">&gt;</span> {
+        <span class="macro">stringify</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">tt</span>)
     };
 }
 </pre></div>
diff --git a/docs/crates-enclave/src/quote/runtime.rs.html b/docs/crates-enclave/src/quote/runtime.rs.html
index 362dac8..79e5a96 100644
--- a/docs/crates-enclave/src/quote/runtime.rs.html
+++ b/docs/crates-enclave/src/quote/runtime.rs.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `/home/mssun/incubator-mesatee/build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quote/src/runtime.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>runtime.rs.html -- source</title><link rel="stylesheet" type="text/css" href=".. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Source to the Rust file `/home/mssun/incubator-mesatee/build/cmake_tomls/sgx_trusted_lib/third_party/crates-sgx/vendor/quote-0.6.13/src/runtime.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>runtime.rs.html -- source</title><link rel="stylesheet" type="text/css" h [...]
 <span id="2">  2</span>
 <span id="3">  3</span>
 <span id="4">  4</span>
@@ -106,460 +106,35 @@
 <span id="106">106</span>
 <span id="107">107</span>
 <span id="108">108</span>
-<span id="109">109</span>
-<span id="110">110</span>
-<span id="111">111</span>
-<span id="112">112</span>
-<span id="113">113</span>
-<span id="114">114</span>
-<span id="115">115</span>
-<span id="116">116</span>
-<span id="117">117</span>
-<span id="118">118</span>
-<span id="119">119</span>
-<span id="120">120</span>
-<span id="121">121</span>
-<span id="122">122</span>
-<span id="123">123</span>
-<span id="124">124</span>
-<span id="125">125</span>
-<span id="126">126</span>
-<span id="127">127</span>
-<span id="128">128</span>
-<span id="129">129</span>
-<span id="130">130</span>
-<span id="131">131</span>
-<span id="132">132</span>
-<span id="133">133</span>
-<span id="134">134</span>
-<span id="135">135</span>
-<span id="136">136</span>
-<span id="137">137</span>
-<span id="138">138</span>
-<span id="139">139</span>
-<span id="140">140</span>
-<span id="141">141</span>
-<span id="142">142</span>
-<span id="143">143</span>
-<span id="144">144</span>
-<span id="145">145</span>
-<span id="146">146</span>
-<span id="147">147</span>
-<span id="148">148</span>
-<span id="149">149</span>
-<span id="150">150</span>
-<span id="151">151</span>
-<span id="152">152</span>
-<span id="153">153</span>
-<span id="154">154</span>
-<span id="155">155</span>
-<span id="156">156</span>
-<span id="157">157</span>
-<span id="158">158</span>
-<span id="159">159</span>
-<span id="160">160</span>
-<span id="161">161</span>
-<span id="162">162</span>
-<span id="163">163</span>
-<span id="164">164</span>
-<span id="165">165</span>
-<span id="166">166</span>
-<span id="167">167</span>
-<span id="168">168</span>
-<span id="169">169</span>
-<span id="170">170</span>
-<span id="171">171</span>
-<span id="172">172</span>
-<span id="173">173</span>
-<span id="174">174</span>
-<span id="175">175</span>
-<span id="176">176</span>
-<span id="177">177</span>
-<span id="178">178</span>
-<span id="179">179</span>
-<span id="180">180</span>
-<span id="181">181</span>
-<span id="182">182</span>
-<span id="183">183</span>
-<span id="184">184</span>
-<span id="185">185</span>
-<span id="186">186</span>
-<span id="187">187</span>
-<span id="188">188</span>
-<span id="189">189</span>
-<span id="190">190</span>
-<span id="191">191</span>
-<span id="192">192</span>
-<span id="193">193</span>
-<span id="194">194</span>
-<span id="195">195</span>
-<span id="196">196</span>
-<span id="197">197</span>
-<span id="198">198</span>
-<span id="199">199</span>
-<span id="200">200</span>
-<span id="201">201</span>
-<span id="202">202</span>
-<span id="203">203</span>
-<span id="204">204</span>
-<span id="205">205</span>
-<span id="206">206</span>
-<span id="207">207</span>
-<span id="208">208</span>
-<span id="209">209</span>
-<span id="210">210</span>
-<span id="211">211</span>
-<span id="212">212</span>
-<span id="213">213</span>
-<span id="214">214</span>
-<span id="215">215</span>
-<span id="216">216</span>
-<span id="217">217</span>
-<span id="218">218</span>
-<span id="219">219</span>
-<span id="220">220</span>
-<span id="221">221</span>
-<span id="222">222</span>
-<span id="223">223</span>
-<span id="224">224</span>
-<span id="225">225</span>
-<span id="226">226</span>
-<span id="227">227</span>
-<span id="228">228</span>
-<span id="229">229</span>
-<span id="230">230</span>
-<span id="231">231</span>
-<span id="232">232</span>
-<span id="233">233</span>
-<span id="234">234</span>
-<span id="235">235</span>
-<span id="236">236</span>
-<span id="237">237</span>
-<span id="238">238</span>
-<span id="239">239</span>
-<span id="240">240</span>
-<span id="241">241</span>
-<span id="242">242</span>
-<span id="243">243</span>
-<span id="244">244</span>
-<span id="245">245</span>
-<span id="246">246</span>
-<span id="247">247</span>
-<span id="248">248</span>
-<span id="249">249</span>
-<span id="250">250</span>
-<span id="251">251</span>
-<span id="252">252</span>
-<span id="253">253</span>
-<span id="254">254</span>
-<span id="255">255</span>
-<span id="256">256</span>
-<span id="257">257</span>
-<span id="258">258</span>
-<span id="259">259</span>
-<span id="260">260</span>
-<span id="261">261</span>
-<span id="262">262</span>
-<span id="263">263</span>
-<span id="264">264</span>
-<span id="265">265</span>
-<span id="266">266</span>
-<span id="267">267</span>
-<span id="268">268</span>
-<span id="269">269</span>
-<span id="270">270</span>
-<span id="271">271</span>
-<span id="272">272</span>
-<span id="273">273</span>
-<span id="274">274</span>
-<span id="275">275</span>
-<span id="276">276</span>
-<span id="277">277</span>
-<span id="278">278</span>
-<span id="279">279</span>
-<span id="280">280</span>
-<span id="281">281</span>
-<span id="282">282</span>
-<span id="283">283</span>
-<span id="284">284</span>
-<span id="285">285</span>
-<span id="286">286</span>
-<span id="287">287</span>
-<span id="288">288</span>
-<span id="289">289</span>
-<span id="290">290</span>
-<span id="291">291</span>
-<span id="292">292</span>
-<span id="293">293</span>
-<span id="294">294</span>
-<span id="295">295</span>
-<span id="296">296</span>
-<span id="297">297</span>
-<span id="298">298</span>
-<span id="299">299</span>
-<span id="300">300</span>
-<span id="301">301</span>
-<span id="302">302</span>
-<span id="303">303</span>
-<span id="304">304</span>
-<span id="305">305</span>
-<span id="306">306</span>
-<span id="307">307</span>
-<span id="308">308</span>
-<span id="309">309</span>
-<span id="310">310</span>
-<span id="311">311</span>
-<span id="312">312</span>
-<span id="313">313</span>
-<span id="314">314</span>
-<span id="315">315</span>
-<span id="316">316</span>
-<span id="317">317</span>
-<span id="318">318</span>
-<span id="319">319</span>
-<span id="320">320</span>
-<span id="321">321</span>
-<span id="322">322</span>
-<span id="323">323</span>
-<span id="324">324</span>
-<span id="325">325</span>
-<span id="326">326</span>
-<span id="327">327</span>
-<span id="328">328</span>
-<span id="329">329</span>
-<span id="330">330</span>
-<span id="331">331</span>
-<span id="332">332</span>
-<span id="333">333</span>
-<span id="334">334</span>
-<span id="335">335</span>
-<span id="336">336</span>
-<span id="337">337</span>
-<span id="338">338</span>
-<span id="339">339</span>
-<span id="340">340</span>
-<span id="341">341</span>
-<span id="342">342</span>
-<span id="343">343</span>
-<span id="344">344</span>
-<span id="345">345</span>
-<span id="346">346</span>
-<span id="347">347</span>
-<span id="348">348</span>
-<span id="349">349</span>
-<span id="350">350</span>
-<span id="351">351</span>
-<span id="352">352</span>
-<span id="353">353</span>
-<span id="354">354</span>
-<span id="355">355</span>
-<span id="356">356</span>
-<span id="357">357</span>
-<span id="358">358</span>
-<span id="359">359</span>
-<span id="360">360</span>
-<span id="361">361</span>
-<span id="362">362</span>
 </pre><div class="example-wrap"><pre class="rust ">
-<span class="kw">use</span> <span class="kw">crate</span>::{<span class="ident">IdentFragment</span>, <span class="ident">ToTokens</span>, <span class="ident">TokenStreamExt</span>};
-<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
-<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ops</span>::<span class="ident">BitOr</span>;
-
+<span class="kw">use</span> <span class="ident">ext</span>::<span class="ident">TokenStreamExt</span>;
 <span class="kw">pub</span> <span class="kw">use</span> <span class="ident">proc_macro2</span>::<span class="kw-2">*</span>;
 
-<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">HasIterator</span>; <span class="comment">// True</span>
-<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">ThereIsNoIteratorInRepetition</span>; <span class="comment">// False</span>
-
-<span class="kw">impl</span> <span class="ident">BitOr</span><span class="op">&lt;</span><span class="ident">ThereIsNoIteratorInRepetition</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">ThereIsNoIteratorInRepetition</span> {
-    <span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="ident">ThereIsNoIteratorInRepetition</span>;
-    <span class="kw">fn</span> <span class="ident">bitor</span>(<span class="self">self</span>, <span class="ident">_rhs</span>: <span class="ident">ThereIsNoIteratorInRepetition</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">ThereIsNoIteratorInRepetition</span> {
-        <span class="ident">ThereIsNoIteratorInRepetition</span>
-    }
-}
-
-<span class="kw">impl</span> <span class="ident">BitOr</span><span class="op">&lt;</span><span class="ident">ThereIsNoIteratorInRepetition</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">HasIterator</span> {
-    <span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="ident">HasIterator</span>;
-    <span class="kw">fn</span> <span class="ident">bitor</span>(<span class="self">self</span>, <span class="ident">_rhs</span>: <span class="ident">ThereIsNoIteratorInRepetition</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">HasIterator</span> {
-        <span class="ident">HasIterator</span>
-    }
+<span class="kw">fn</span> <span class="ident">is_ident_start</span>(<span class="ident">c</span>: <span class="ident">u8</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">bool</span> {
+    (<span class="string">b&#39;a&#39;</span> <span class="op">&lt;</span><span class="op">=</span> <span class="ident">c</span> <span class="kw-2">&amp;</span><span class="op">&amp;</span> <span class="ident">c</span> <span class="op">&lt;</span><span class="op">=</span> <span class="string">b&#39;z&#39;</span>) <span class="op">|</span><span class="op">|</span> (<span class="string">b&#39;A&#39;</span> <span class="op">&lt;</span><span class="op">=</span> <span class="ident">c</span> < [...]
 }
 
-<span class="kw">impl</span> <span class="ident">BitOr</span><span class="op">&lt;</span><span class="ident">HasIterator</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">ThereIsNoIteratorInRepetition</span> {
-    <span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="ident">HasIterator</span>;
-    <span class="kw">fn</span> <span class="ident">bitor</span>(<span class="self">self</span>, <span class="ident">_rhs</span>: <span class="ident">HasIterator</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">HasIterator</span> {
-        <span class="ident">HasIterator</span>
-    }
+<span class="kw">fn</span> <span class="ident">is_ident_continue</span>(<span class="ident">c</span>: <span class="ident">u8</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">bool</span> {
+    (<span class="string">b&#39;a&#39;</span> <span class="op">&lt;</span><span class="op">=</span> <span class="ident">c</span> <span class="kw-2">&amp;</span><span class="op">&amp;</span> <span class="ident">c</span> <span class="op">&lt;</span><span class="op">=</span> <span class="string">b&#39;z&#39;</span>) <span class="op">|</span><span class="op">|</span> (<span class="string">b&#39;A&#39;</span> <span class="op">&lt;</span><span class="op">=</span> <span class="ident">c</span> < [...]
 }
 
-<span class="kw">impl</span> <span class="ident">BitOr</span><span class="op">&lt;</span><span class="ident">HasIterator</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">HasIterator</span> {
-    <span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="ident">HasIterator</span>;
-    <span class="kw">fn</span> <span class="ident">bitor</span>(<span class="self">self</span>, <span class="ident">_rhs</span>: <span class="ident">HasIterator</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">HasIterator</span> {
-        <span class="ident">HasIterator</span>
-    }
-}
-
-<span class="doccomment">/// Extension traits used by the implementation of `quote!`. These are defined</span>
-<span class="doccomment">/// in separate traits, rather than as a single trait due to ambiguity issues.</span>
-<span class="doccomment">///</span>
-<span class="doccomment">/// These traits expose a `quote_into_iter` method which should allow calling</span>
-<span class="doccomment">/// whichever impl happens to be applicable. Calling that method repeatedly on</span>
-<span class="doccomment">/// the returned value should be idempotent.</span>
-<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">ext</span> {
-    <span class="kw">use</span> <span class="kw">super</span>::<span class="ident">RepInterp</span>;
-    <span class="kw">use</span> <span class="kw">super</span>::{<span class="ident">HasIterator</span> <span class="kw">as</span> <span class="ident">HasIter</span>, <span class="ident">ThereIsNoIteratorInRepetition</span> <span class="kw">as</span> <span class="ident">DoesNotHaveIter</span>};
-    <span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">ToTokens</span>;
-    <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">btree_set</span>::{<span class="self">self</span>, <span class="ident">BTreeSet</span>};
-    <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">slice</span>;
-
-    <span class="doccomment">/// Extension trait providing the `quote_into_iter` method on iterators.</span>
-    <span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">RepIteratorExt</span>: <span class="ident">Iterator</span> <span class="op">+</span> <span class="ident">Sized</span> {
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>, <span class="ident">HasIter</span>) {
-            (<span class="self">self</span>, <span class="ident">HasIter</span>)
-        }
-    }
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">Iterator</span><span class="op">&gt;</span> <span class="ident">RepIteratorExt</span> <span class="kw">for</span> <span class="ident">T</span> {}
-
-    <span class="doccomment">/// Extension trait providing the `quote_into_iter` method for</span>
-    <span class="doccomment">/// non-iterable types. These types interpolate the same value in each</span>
-    <span class="doccomment">/// iteration of the repetition.</span>
-    <span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">RepToTokensExt</span> {
-        <span class="doccomment">/// Pretend to be an iterator for the purposes of `quote_into_iter`.</span>
-        <span class="doccomment">/// This allows repeated calls to `quote_into_iter` to continue</span>
-        <span class="doccomment">/// correctly returning DoesNotHaveIter.</span>
-        <span class="kw">fn</span> <span class="ident">next</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="self">Self</span><span class="op">&gt;</span> {
-            <span class="prelude-val">Some</span>(<span class="self">self</span>)
-        }
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="kw-2">&amp;</span><span class="self">Self</span>, <span class="ident">DoesNotHaveIter</span>) {
-            (<span class="self">self</span>, <span class="ident">DoesNotHaveIter</span>)
-        }
-    }
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">ToTokens</span> <span class="op">+</span> <span class="question-mark">?</span><span class="ident">Sized</span><span class="op">&gt;</span> <span class="ident">RepToTokensExt</span> <span class="kw">for</span> <span class="ident">T</span> {}
-
-    <span class="doccomment">/// Extension trait providing the `quote_into_iter` method for types that</span>
-    <span class="doccomment">/// can be referenced as an iterator.</span>
-    <span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> {
-        <span class="kw">type</span> <span class="ident">Iter</span>: <span class="ident">Iterator</span>;
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>);
-    }
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="op">+</span> <span class="question-mark">?</span><span class="ident">Sized</span><span class="op">&gt;</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</s [...]
-        <span class="kw">type</span> <span class="ident">Iter</span> <span class="op">=</span> <span class="ident">T</span>::<span class="ident">Iter</span>;
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>) {
-            <span class="op">&lt;</span><span class="ident">T</span> <span class="kw">as</span> <span class="ident">RepAsIteratorExt</span><span class="op">&gt;</span>::<span class="ident">quote_into_iter</span>(<span class="kw-2">*</span><span class="self">self</span>)
-        }
-    }
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="op">+</span> <span class="question-mark">?</span><span class="ident">Sized</span><span class="op">&gt;</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</s [...]
-        <span class="kw">type</span> <span class="ident">Iter</span> <span class="op">=</span> <span class="ident">T</span>::<span class="ident">Iter</span>;
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>) {
-            <span class="op">&lt;</span><span class="ident">T</span> <span class="kw">as</span> <span class="ident">RepAsIteratorExt</span><span class="op">&gt;</span>::<span class="ident">quote_into_iter</span>(<span class="kw-2">*</span><span class="self">self</span>)
-        }
-    }
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span>: <span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="kw">for</span> [<span class="ident">T</span>] {
-        <span class="kw">type</span> <span class="ident">Iter</span> <span class="op">=</span> <span class="ident">slice</span>::<span class="ident">Iter</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span><span class="op">&gt;</span>;
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>) {
-            (<span class="self">self</span>.<span class="ident">iter</span>(), <span class="ident">HasIter</span>)
-        }
-    }
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span>: <span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-        <span class="kw">type</span> <span class="ident">Iter</span> <span class="op">=</span> <span class="ident">slice</span>::<span class="ident">Iter</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span><span class="op">&gt;</span>;
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>) {
-            (<span class="self">self</span>.<span class="ident">iter</span>(), <span class="ident">HasIter</span>)
-        }
-    }
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span>: <span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">BTreeSet</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-        <span class="kw">type</span> <span class="ident">Iter</span> <span class="op">=</span> <span class="ident">btree_set</span>::<span class="ident">Iter</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span><span class="op">&gt;</span>;
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>) {
-            (<span class="self">self</span>.<span class="ident">iter</span>(), <span class="ident">HasIter</span>)
-        }
-    }
-
-    <span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">array_rep_slice</span> {
-        ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">l</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=</span><span class="op">&gt;</span> {
-            $(
-                <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span>: <span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="kw">for</span> [<span class="ident">T</span>; <span class="macro-nonterminal">$</span><span class="macro-nonterminal">l</span>] {
-                    <span class="kw">type</span> <span class="ident">Iter</span> <span class="op">=</span> <span class="ident">slice</span>::<span class="ident">Iter</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span><span class="op">&gt;</span>;
-
-                    <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>) {
-                        (<span class="self">self</span>.<span class="ident">iter</span>(), <span class="ident">HasIter</span>)
-                    }
-                }
-            )<span class="op">*</span>
-        }
-    }
-
-    <span class="macro">array_rep_slice</span><span class="macro">!</span>(
-        <span class="number">0</span> <span class="number">1</span> <span class="number">2</span> <span class="number">3</span> <span class="number">4</span> <span class="number">5</span> <span class="number">6</span> <span class="number">7</span> <span class="number">8</span> <span class="number">9</span> <span class="number">10</span> <span class="number">11</span> <span class="number">12</span> <span class="number">13</span> <span class="number">14</span> <span class="number">15</span [...]
-        <span class="number">17</span> <span class="number">18</span> <span class="number">19</span> <span class="number">20</span> <span class="number">21</span> <span class="number">22</span> <span class="number">23</span> <span class="number">24</span> <span class="number">25</span> <span class="number">26</span> <span class="number">27</span> <span class="number">28</span> <span class="number">29</span> <span class="number">30</span> <span class="number">31</span> <span class="number [...]
-    );
-
-    <span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span>, <span class="ident">T</span>: <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span><span class="op">&gt;</span> <span class="ident">RepAsIteratorExt</span><span class="op">&lt;</span><span class="lifetime">&#39;q</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">RepInterp</span> [...]
-        <span class="kw">type</span> <span class="ident">Iter</span> <span class="op">=</span> <span class="ident">T</span>::<span class="ident">Iter</span>;
-
-        <span class="kw">fn</span> <span class="ident">quote_into_iter</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;q</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> (<span class="self">Self</span>::<span class="ident">Iter</span>, <span class="ident">HasIter</span>) {
-            <span class="self">self</span>.<span class="number">0</span>.<span class="ident">quote_into_iter</span>()
-        }
-    }
-}
-
-<span class="comment">// Helper type used within interpolations to allow for repeated binding names.</span>
-<span class="comment">// Implements the relevant traits, and exports a dummy `next()` method.</span>
-<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Copy</span>, <span class="ident">Clone</span>)]</span>
-<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">RepInterp</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span>(<span class="kw">pub</span> <span class="ident">T</span>);
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> <span class="ident">RepInterp</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-    <span class="comment">// This method is intended to look like `Iterator::next`, and is called when</span>
-    <span class="comment">// a name is bound multiple times, as the previous binding will shadow the</span>
-    <span class="comment">// original `Iterator` object. This allows us to avoid advancing the</span>
-    <span class="comment">// iterator multiple times per iteration.</span>
-    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">next</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-        <span class="prelude-val">Some</span>(<span class="self">self</span>.<span class="number">0</span>)
-    }
-}
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">Iterator</span><span class="op">&gt;</span> <span class="ident">Iterator</span> <span class="kw">for</span> <span class="ident">RepInterp</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-    <span class="kw">type</span> <span class="ident">Item</span> <span class="op">=</span> <span class="ident">T</span>::<span class="ident">Item</span>;
-
-    <span class="kw">fn</span> <span class="ident">next</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span>::<span class="ident">Item</span><span class="op">&gt;</span> {
-        <span class="self">self</span>.<span class="number">0</span>.<span class="ident">next</span>()
-    }
-}
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">ToTokens</span><span class="op">&gt;</span> <span class="ident">ToTokens</span> <span class="kw">for</span> <span class="ident">RepInterp</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-    <span class="kw">fn</span> <span class="ident">to_tokens</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">tokens</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">TokenStream</span>) {
-        <span class="self">self</span>.<span class="number">0</span>.<span class="ident">to_tokens</span>(<span class="ident">tokens</span>);
-    }
+<span class="kw">fn</span> <span class="ident">is_ident</span>(<span class="ident">token</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">bool</span> {
+    <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">iter</span> <span class="op">=</span> <span class="ident">token</span>.<span class="ident">bytes</span>();
+    <span class="kw">let</span> <span class="ident">first_ok</span> <span class="op">=</span> <span class="ident">iter</span>.<span class="ident">next</span>().<span class="ident">map</span>(<span class="ident">is_ident_start</span>).<span class="ident">unwrap_or</span>(<span class="bool-val">false</span>);
+    
+    <span class="ident">first_ok</span> <span class="kw-2">&amp;</span><span class="op">&amp;</span> <span class="ident">iter</span>.<span class="ident">all</span>(<span class="ident">is_ident_continue</span>)
 }
 
 <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">parse</span>(<span class="ident">tokens</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">TokenStream</span>, <span class="ident">span</span>: <span class="ident">Span</span>, <span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
-    <span class="kw">let</span> <span class="ident">s</span>: <span class="ident">TokenStream</span> <span class="op">=</span> <span class="ident">s</span>.<span class="ident">parse</span>().<span class="ident">expect</span>(<span class="string">&quot;invalid token stream&quot;</span>);
-    <span class="ident">tokens</span>.<span class="ident">extend</span>(<span class="ident">s</span>.<span class="ident">into_iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="kw-2">mut</span> <span class="ident">t</span><span class="op">|</span> {
-        <span class="ident">t</span>.<span class="ident">set_span</span>(<span class="ident">span</span>);
-        <span class="ident">t</span>
-    }));
-}
-
-<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">push_ident</span>(<span class="ident">tokens</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">TokenStream</span>, <span class="ident">span</span>: <span class="ident">Span</span>, <span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
-    <span class="comment">// Optimization over `mk_ident`, as `s` is guaranteed to be a valid ident.</span>
-    <span class="comment">//</span>
-    <span class="comment">// FIXME: When `Ident::new_raw` becomes stable, this method should be</span>
-    <span class="comment">// updated to call it when available.</span>
-    <span class="kw">if</span> <span class="ident">s</span>.<span class="ident">starts_with</span>(<span class="string">&quot;r#&quot;</span>) {
-        <span class="ident">parse</span>(<span class="ident">tokens</span>, <span class="ident">span</span>, <span class="ident">s</span>);
-    } <span class="kw">else</span> {
+    <span class="kw">if</span> <span class="ident">is_ident</span>(<span class="ident">s</span>) {
+        <span class="comment">// Fast path, since idents are the most common token.</span>
         <span class="ident">tokens</span>.<span class="ident">append</span>(<span class="ident">Ident</span>::<span class="ident">new</span>(<span class="ident">s</span>, <span class="ident">span</span>));
+    } <span class="kw">else</span> {
+        <span class="kw">let</span> <span class="ident">s</span>: <span class="ident">TokenStream</span> <span class="op">=</span> <span class="ident">s</span>.<span class="ident">parse</span>().<span class="ident">expect</span>(<span class="string">&quot;invalid token stream&quot;</span>);
+        <span class="ident">tokens</span>.<span class="ident">extend</span>(<span class="ident">s</span>.<span class="ident">into_iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="kw-2">mut</span> <span class="ident">t</span><span class="op">|</span> {
+            <span class="ident">t</span>.<span class="ident">set_span</span>(<span class="ident">span</span>);
+            <span class="ident">t</span>
+        }));
     }
 }
 
@@ -640,88 +215,5 @@
 <span class="macro">push_punct</span><span class="macro">!</span>(<span class="ident">push_star</span> <span class="string">&#39;*&#39;</span>);
 <span class="macro">push_punct</span><span class="macro">!</span>(<span class="ident">push_sub</span> <span class="string">&#39;-&#39;</span>);
 <span class="macro">push_punct</span><span class="macro">!</span>(<span class="ident">push_sub_eq</span> <span class="string">&#39;-&#39;</span> <span class="string">&#39;=&#39;</span>);
-
-<span class="comment">// Helper method for constructing identifiers from the `format_ident!` macro,</span>
-<span class="comment">// handling `r#` prefixes.</span>
-<span class="comment">//</span>
-<span class="comment">// Directly parsing the input string may produce a valid identifier,</span>
-<span class="comment">// although the input string was invalid, due to ignored characters such as</span>
-<span class="comment">// whitespace and comments. Instead, we always create a non-raw identifier</span>
-<span class="comment">// to validate that the string is OK, and only parse again if needed.</span>
-<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">mk_ident</span>(<span class="ident">id</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">span</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Span</span><span class="op">&gt;</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">Ident</span> {
-    <span class="kw">let</span> <span class="ident">span</span> <span class="op">=</span> <span class="ident">span</span>.<span class="ident">unwrap_or_else</span>(<span class="ident">Span</span>::<span class="ident">call_site</span>);
-
-    <span class="kw">let</span> <span class="ident">is_raw</span> <span class="op">=</span> <span class="ident">id</span>.<span class="ident">starts_with</span>(<span class="string">&quot;r#&quot;</span>);
-    <span class="kw">let</span> <span class="ident">unraw</span> <span class="op">=</span> <span class="ident">Ident</span>::<span class="ident">new</span>(<span class="kw">if</span> <span class="ident">is_raw</span> { <span class="kw-2">&amp;</span><span class="ident">id</span>[<span class="number">2</span>..] } <span class="kw">else</span> { <span class="ident">id</span> }, <span class="ident">span</span>);
-    <span class="kw">if</span> <span class="op">!</span><span class="ident">is_raw</span> {
-        <span class="kw">return</span> <span class="ident">unraw</span>;
-    }
-
-    <span class="comment">// At this point, the identifier is raw, and the unraw-ed version of it was</span>
-    <span class="comment">// successfully converted into an identifier. Try to produce a valid raw</span>
-    <span class="comment">// identifier by running the `TokenStream` parser, and unwrapping the first</span>
-    <span class="comment">// token as an `Ident`.</span>
-    <span class="comment">//</span>
-    <span class="comment">// FIXME: When `Ident::new_raw` becomes stable, this method should be</span>
-    <span class="comment">// updated to call it when available.</span>
-    <span class="kw">match</span> <span class="ident">id</span>.<span class="ident">parse</span>::<span class="op">&lt;</span><span class="ident">TokenStream</span><span class="op">&gt;</span>() {
-        <span class="prelude-val">Ok</span>(<span class="ident">ts</span>) <span class="op">=</span><span class="op">&gt;</span> {
-            <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">iter</span> <span class="op">=</span> <span class="ident">ts</span>.<span class="ident">into_iter</span>();
-            <span class="kw">match</span> (<span class="ident">iter</span>.<span class="ident">next</span>(), <span class="ident">iter</span>.<span class="ident">next</span>()) {
-                (<span class="prelude-val">Some</span>(<span class="ident">TokenTree</span>::<span class="ident">Ident</span>(<span class="kw-2">mut</span> <span class="ident">id</span>)), <span class="prelude-val">None</span>) <span class="op">=</span><span class="op">&gt;</span> {
-                    <span class="ident">id</span>.<span class="ident">set_span</span>(<span class="ident">span</span>);
-                    <span class="ident">id</span>
-                }
-                <span class="kw">_</span> <span class="op">=</span><span class="op">&gt;</span> <span class="macro">unreachable</span><span class="macro">!</span>(<span class="string">&quot;valid raw ident fails to parse&quot;</span>),
-            }
-        }
-        <span class="prelude-val">Err</span>(<span class="kw">_</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="macro">unreachable</span><span class="macro">!</span>(<span class="string">&quot;valid raw ident fails to parse&quot;</span>),
-    }
-}
-
-<span class="comment">// Adapts from `IdentFragment` to `fmt::Display` for use by the `format_ident!`</span>
-<span class="comment">// macro, and exposes span information from these fragments.</span>
-<span class="comment">//</span>
-<span class="comment">// This struct also has forwarding implementations of the formatting traits</span>
-<span class="comment">// `Octal`, `LowerHex`, `UpperHex`, and `Binary` to allow for their use within</span>
-<span class="comment">// `format_ident!`.</span>
-<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Copy</span>, <span class="ident">Clone</span>)]</span>
-<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">IdentFragmentAdapter</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IdentFragment</span><span class="op">&gt;</span>(<span class="kw">pub</span> <span class="ident">T</span>);
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IdentFragment</span><span class="op">&gt;</span> <span class="ident">IdentFragmentAdapter</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-    <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">span</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Span</span><span class="op">&gt;</span> {
-        <span class="self">self</span>.<span class="number">0</span>.<span class="ident">span</span>()
-    }
-}
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IdentFragment</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="ident">IdentFragmentAdapter</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-    <span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
-        <span class="ident">IdentFragment</span>::<span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="number">0</span>, <span class="ident">f</span>)
-    }
-}
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IdentFragment</span> <span class="op">+</span> <span class="ident">fmt</span>::<span class="ident">Octal</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="ident">Octal</span> <span class="kw">for</span> <span class="ident">IdentFragmentAdapter</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-    <span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
-        <span class="ident">fmt</span>::<span class="ident">Octal</span>::<span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="number">0</span>, <span class="ident">f</span>)
-    }
-}
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IdentFragment</span> <span class="op">+</span> <span class="ident">fmt</span>::<span class="ident">LowerHex</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="ident">LowerHex</span> <span class="kw">for</span> <span class="ident">IdentFragmentAdapter</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
-    <span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
-        <span class="ident">fmt</span>::<span class="ident">LowerHex</span>::<span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="number">0</span>, <span class="ident">f</span>)
-    }
-}
-
-<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IdentFragment</span> <span class="op">+</span> <span class="ident">fmt</span>::<span class="ident">UpperH