doc: 2020-04-01 11:32:45 +0200: 478563f - Adding documentation
This commit is contained in:
3
quick_error/all.html
Normal file
3
quick_error/all.html
Normal file
@@ -0,0 +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 rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../quick_error/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span>
|
||||
</span>
|
||||
<span class='in-band'>List of all items</span></h1><h3 id='Structs'>Structs</h3><ul class='structs docblock'><li><a href='struct.Context.html'>Context</a></li></ul><h3 id='Traits'>Traits</h3><ul class='traits docblock'><li><a href='trait.ResultExt.html'>ResultExt</a></li></ul><h3 id='Macros'>Macros</h3><ul class='macros docblock'><li><a href='macro.quick_error.html'>quick_error</a></li></ul></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quick_error";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||
229
quick_error/index.html
Normal file
229
quick_error/index.html
Normal file
@@ -0,0 +1,229 @@
|
||||
<!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 `quick_error` crate."><meta name="keywords" content="rust, rustlang, rust-lang, quick_error"><title>quick_error - Rust</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" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../quick_error/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Crate quick_error</p><div class="sidebar-elems"><a id='all-types' href='all.html'><p>See all quick_error's items</p></a><div class="block items"><ul><li><a href="#macros">Macros</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></div><p class='location'></p><script>window.sidebarCurrent = {name: 'quick_error', ty: 'mod', relpath: '../'};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/quick_error/lib.rs.html#1-1262' title='goto source code'>[src]</a></span><span class='in-band'>Crate <a class="mod" href=''>quick_error</a></span></h1><div class='docblock'><p>A macro which makes errors easy to write</p>
|
||||
<p>Minimum type is like this:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="attribute">#[<span class="ident">macro_use</span>]</span> <span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">quick_error</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">SomeError</span> {
|
||||
<span class="ident">Variant1</span> {}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>Both <code>pub</code> and non-public types may be declared, and all meta attributes
|
||||
(such as <code>#[derive(Debug)]</code>) are forwarded as is. The <code>Debug</code> must be
|
||||
implemented (but you may do that yourself if you like). The documentation
|
||||
comments <code>/// something</code> (as well as other meta attrbiutes) on variants
|
||||
are allowed.</p>
|
||||
<h1 id="allowed-syntax" class="section-header"><a href="#allowed-syntax">Allowed Syntax</a></h1>
|
||||
<p>You may add arbitrary parameters to any struct variant:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<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">SomeError</span> {
|
||||
<span class="doccomment">/// IO Error</span>
|
||||
<span class="ident">Io</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>) {}
|
||||
<span class="doccomment">/// Utf8 Error</span>
|
||||
<span class="ident">Utf8</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">Utf8Error</span>) {}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>Note unlike in normal Enum declarations you declare names of fields (which
|
||||
are omitted from type). How they can be used is outlined below.</p>
|
||||
<p>Now you might have noticed trailing braces <code>{}</code>. They are used to define
|
||||
implementations. By default:</p>
|
||||
<ul>
|
||||
<li><code>Error::cause()</code> returns None (even if type wraps some value)</li>
|
||||
<li><code>Display</code> outputs debug representation</li>
|
||||
<li>No <code>From</code> implementations are defined</li>
|
||||
</ul>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<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">SomeError</span> {
|
||||
<span class="ident">Io</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>) {
|
||||
<span class="ident">display</span>(<span class="string">"{}"</span>, <span class="ident">err</span>)
|
||||
}
|
||||
<span class="ident">Utf8</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">Utf8Error</span>) {
|
||||
<span class="ident">display</span>(<span class="string">"utf8 error"</span>)
|
||||
}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>To change <code>cause</code> method to return some error, add <code>cause(value)</code>, for
|
||||
example:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<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">SomeError</span> {
|
||||
<span class="ident">Io</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>) {
|
||||
<span class="ident">cause</span>(<span class="ident">err</span>)
|
||||
}
|
||||
<span class="ident">Utf8</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">Utf8Error</span>) {
|
||||
<span class="ident">display</span>(<span class="string">"utf8 error"</span>)
|
||||
}
|
||||
<span class="ident">Other</span>(<span class="ident">err</span>: <span class="ident">Box</span><span class="op"><</span><span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span><span class="op">></span>) {
|
||||
<span class="ident">cause</span>(<span class="kw-2">&</span><span class="kw-2">*</span><span class="kw-2">*</span><span class="ident">err</span>)
|
||||
}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>Note you don't need to wrap value in <code>Some</code>, its implicit. In case you want
|
||||
<code>None</code> returned just omit the <code>cause</code>. You can't return <code>None</code>
|
||||
conditionally.</p>
|
||||
<p>To change how each clause is <code>Display</code>ed add <code>display(pattern,..args)</code>,
|
||||
for example:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<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">SomeError</span> {
|
||||
<span class="ident">Io</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>) {
|
||||
<span class="ident">display</span>(<span class="string">"I/O error: {}"</span>, <span class="ident">err</span>)
|
||||
}
|
||||
<span class="ident">Utf8</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">Utf8Error</span>) {
|
||||
<span class="ident">display</span>(<span class="string">"Utf8 error, valid up to {}"</span>, <span class="ident">err</span>.<span class="ident">valid_up_to</span>())
|
||||
}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>If you need a reference to the error when <code>Display</code>ing, you can instead use
|
||||
<code>display(x) -> (pattern, ..args)</code>, where <code>x</code> sets the name of the reference.</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">error</span>::<span class="ident">Error</span>; <span class="comment">// put methods like `source()` of this trait into scope</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">SomeError</span> {
|
||||
<span class="ident">Io</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>) {
|
||||
<span class="ident">display</span>(<span class="ident">x</span>) <span class="op">-</span><span class="op">></span> (<span class="string">"I/O: {}"</span>, <span class="ident">err</span>)
|
||||
}
|
||||
<span class="ident">Utf8</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">Utf8Error</span>) {
|
||||
<span class="ident">display</span>(<span class="ident">self_</span>) <span class="op">-</span><span class="op">></span> (<span class="string">"UTF-8 error. Valid up to {}"</span>, <span class="ident">err</span>.<span class="ident">valid_up_to</span>())
|
||||
}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>To convert to the type from any other, use one of the three forms of
|
||||
<code>from</code> clause.</p>
|
||||
<p>For example, to convert simple wrapper use bare <code>from()</code>:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<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">SomeError</span> {
|
||||
<span class="ident">Io</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">Error</span>) {
|
||||
<span class="ident">from</span>()
|
||||
}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>This implements <code>From<io::Error></code>.</p>
|
||||
<p>To convert to singleton enumeration type (discarding the value), use
|
||||
the <code>from(type)</code> form:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<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">SomeError</span> {
|
||||
<span class="ident">FormatError</span> {
|
||||
<span class="ident">from</span>(<span class="ident">std</span>::<span class="ident">fmt</span>::<span class="ident">Error</span>)
|
||||
}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>And the most powerful form is <code>from(var: type) -> (arguments...)</code>. It
|
||||
might be used to convert to type with multiple arguments or for arbitrary
|
||||
value conversions:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<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">SomeError</span> {
|
||||
<span class="ident">FailedOperation</span>(<span class="ident">s</span>: <span class="kw-2">&</span><span class="lifetime">'static</span> <span class="ident">str</span>, <span class="ident">errno</span>: <span class="ident">i32</span>) {
|
||||
<span class="ident">from</span>(<span class="ident">errno</span>: <span class="ident">i32</span>) <span class="op">-</span><span class="op">></span> (<span class="string">"os error"</span>, <span class="ident">errno</span>)
|
||||
<span class="ident">from</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">></span> (<span class="string">"io error"</span>, <span class="ident">e</span>.<span class="ident">raw_os_error</span>().<span class="ident">unwrap</span>())
|
||||
}
|
||||
<span class="doccomment">/// Converts from both kinds of utf8 errors</span>
|
||||
<span class="ident">Utf8</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">str</span>::<span class="ident">Utf8Error</span>) {
|
||||
<span class="ident">from</span>()
|
||||
<span class="ident">from</span>(<span class="ident">err</span>: <span class="ident">std</span>::<span class="ident">string</span>::<span class="ident">FromUtf8Error</span>) <span class="op">-</span><span class="op">></span> (<span class="ident">err</span>.<span class="ident">utf8_error</span>())
|
||||
}
|
||||
}
|
||||
}</pre></div>
|
||||
<h1 id="context" class="section-header"><a href="#context">Context</a></h1>
|
||||
<p>Since quick-error 1.1 we also have a <code>context</code> declaration, which is
|
||||
similar to (the longest form of) <code>from</code>, but allows adding some context to
|
||||
the error. We need a longer example to demonstrate this:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="kw">use</span> <span class="ident">quick_error</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">Error</span> {
|
||||
<span class="ident">File</span>(<span class="ident">filename</span>: <span class="ident">PathBuf</span>, <span class="ident">err</span>: <span class="ident">io</span>::<span class="ident">Error</span>) {
|
||||
<span class="ident">context</span>(<span class="ident">path</span>: <span class="kw-2">&</span><span class="lifetime">'a</span> <span class="ident">Path</span>, <span class="ident">err</span>: <span class="ident">io</span>::<span class="ident">Error</span>)
|
||||
<span class="op">-</span><span class="op">></span> (<span class="ident">path</span>.<span class="ident">to_path_buf</span>(), <span class="ident">err</span>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">openfile</span>(<span class="ident">path</span>: <span class="kw-2">&</span><span class="ident">Path</span>) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Result</span><span class="op"><</span>(), <span class="ident">Error</span><span class="op">></span> {
|
||||
<span class="macro">try</span><span class="macro">!</span>(<span class="ident">File</span>::<span class="ident">open</span>(<span class="ident">path</span>).<span class="ident">context</span>(<span class="ident">path</span>));
|
||||
|
||||
<span class="comment">// If we didn't have context, the line above would be written as;</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="comment">// try!(File::open(path)</span>
|
||||
<span class="comment">// .map_err(|err| Error::File(path.to_path_buf(), err)));</span>
|
||||
|
||||
<span class="prelude-val">Ok</span>(())
|
||||
}
|
||||
</pre></div>
|
||||
<p>Each <code>context(a: A, b: B)</code> clause implements
|
||||
<code>From<Context<A, B>> for Error</code>. Which means multiple <code>context</code> clauses
|
||||
are a subject to the normal coherence rules. Unfortunately, we can't
|
||||
provide full support of generics for the context, but you may either use a
|
||||
lifetime <code>'a</code> for references or <code>AsRef<Type></code> (the latter means <code>A: AsRef<Type></code>, and <code>Type</code> must be concrete). It's also occasionally useful
|
||||
to use a tuple as a type of the first argument.</p>
|
||||
<p>You also need to <code>use quick_error::ResultExt</code> extension trait to get
|
||||
working <code>.context()</code> method.</p>
|
||||
<p>More info on context in <a href="http://bit.ly/1PsuxDt">this article</a>.</p>
|
||||
<p>All forms of <code>from</code>, <code>display</code>, <code>cause</code>, and <code>context</code>
|
||||
clauses can be combined and put in arbitrary order. Only <code>from</code> and
|
||||
<code>context</code> can be used multiple times in single variant of enumeration.
|
||||
Docstrings are also okay. Empty braces can be omitted as of quick_error
|
||||
0.1.3.</p>
|
||||
<h1 id="private-enums" class="section-header"><a href="#private-enums">Private Enums</a></h1>
|
||||
<p>Since quick-error 1.2.0 we have a way to make a private enum that is
|
||||
wrapped by public structure:</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
<span class="attribute">#[<span class="ident">macro_use</span>]</span> <span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">quick_error</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">PubError</span> <span class="ident">wraps</span> <span class="ident">ErrorEnum</span> {
|
||||
<span class="ident">Variant1</span> {}
|
||||
}
|
||||
}</pre></div>
|
||||
<p>This generates data structures like this</p>
|
||||
|
||||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">PubError</span>(<span class="ident">ErrorEnum</span>);
|
||||
|
||||
<span class="kw">enum</span> <span class="ident">ErrorEnum</span> {
|
||||
<span class="ident">Variant1</span>,
|
||||
}
|
||||
</pre></div>
|
||||
<p>Which in turn allows you to export just <code>PubError</code> in your crate and keep
|
||||
actual enumeration private to the crate. This is useful to keep backwards
|
||||
compatibility for error types. Currently there is no shorcuts to define
|
||||
error constructors for the inner type, but we consider adding some in
|
||||
future versions.</p>
|
||||
<p>It's possible to declare internal enum as public too.</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.quick_error.html" title='quick_error::quick_error macro'>quick_error</a></td><td class='docblock-short'><p>Main macro that does all the work</p>
|
||||
</td></tr></table><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
|
||||
<table><tr class='module-item'><td><a class="struct" href="struct.Context.html" title='quick_error::Context struct'>Context</a></td><td class='docblock-short'><p>Generic context type</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.ResultExt.html" title='quick_error::ResultExt trait'>ResultExt</a></td><td class='docblock-short'><p>Result extension trait adding a <code>context</code> method</p>
|
||||
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quick_error";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||
10
quick_error/macro.quick_error!.html
Normal file
10
quick_error/macro.quick_error!.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0;URL=macro.quick_error.html">
|
||||
</head>
|
||||
<body>
|
||||
<p>Redirecting to <a href="macro.quick_error.html">macro.quick_error.html</a>...</p>
|
||||
<script>location.replace("macro.quick_error.html" + location.search + location.hash);</script>
|
||||
</body>
|
||||
</html>
|
||||
263
quick_error/macro.quick_error.html
Normal file
263
quick_error/macro.quick_error.html
Normal file
@@ -0,0 +1,263 @@
|
||||
<!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 `quick_error` macro in crate `quick_error`."><meta name="keywords" content="rust, rustlang, rust-lang, quick_error"><title>quick_error::quick_error - Rust</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" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc macro"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../quick_error/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='index.html'>quick_error</a></p><script>window.sidebarCurrent = {name: 'quick_error', ty: 'macro', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/quick_error/lib.rs.html#299-966' title='goto source code'>[src]</a></span><span class='in-band'>Macro <a href='index.html'>quick_error</a>::<wbr><a class="macro" href=''>quick_error</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><div class="example-wrap"><pre class="rust macro">
|
||||
<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">></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">></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">></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 class="op">*</span> }
|
||||
) <span class="op">=</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">></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">></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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">btyp</span>:<span class="ident">ty</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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">btyp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>] ]
|
||||
<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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">btyp</span>:<span class="ident">ty</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">></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">></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-nonterminal">ityp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>]
|
||||
{$( <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">></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">btyp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>] ]
|
||||
<span class="ident">queue</span> [ ]
|
||||
) <span class="op">=</span><span class="op">></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">></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>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">styp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>})<span class="kw-2">*</span>} )<span class="op">*</span> ]
|
||||
<span class="ident">queue</span> [ ]
|
||||
) <span class="op">=</span><span class="op">></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">></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>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">styp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>})<span class="kw-2">*</span>} )<span class="op">*</span> ]
|
||||
<span class="ident">queue</span> [ ]
|
||||
) <span class="op">=</span><span class="op">></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">></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>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">styp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>})<span class="kw-2">*</span>} )<span class="op">*</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="op">*</span>
|
||||
<span class="op">=</span><span class="op">></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">></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">></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>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">styp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>})<span class="kw-2">*</span>} )<span class="op">*</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="op">*</span>
|
||||
<span class="op">=</span><span class="op">></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 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">></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">></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>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">styp</span>:<span class="ident">ty</span> ),<span class="kw-2">*</span>})<span class="kw-2">*</span>} )<span class="op">*</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="op">*</span>
|
||||
<span class="op">=</span><span class="op">></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>] $( <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">></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-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">funcs</span>:<span class="ident">tt</span> )<span class="kw-2">*</span>}
|
||||
)<span class="kw-2">*</span>}
|
||||
) <span class="op">=</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">></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">></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">></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">></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="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">></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">></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 class="ident">ident</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">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">></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 class="ident">ident</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">></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 class="ident">ident</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">></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">></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">></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">></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">></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">></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">></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="kw-2">*</span>}
|
||||
) <span class="op">=</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">></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="kw-2">*</span>}
|
||||
) <span class="op">=</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">></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">></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"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span><span class="op">></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">></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">></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="ident">ty</span>)
|
||||
<span class="op">-</span><span class="op">></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">></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"><</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ctyp</span>:<span class="ident">ty</span><span class="op">></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">></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">></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="ident">ty</span>)
|
||||
<span class="op">-</span><span class="op">></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">></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">></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">></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">></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">></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">></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">></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">></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">></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">></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">></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">></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-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">></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">></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">></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">></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">></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">></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">></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">></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">></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-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>)
|
||||
<span class="op">-</span><span class="op">></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">></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-nonterminal">$</span><span class="macro-nonterminal">ftyp</span>:<span class="ident">ty</span>)
|
||||
<span class="op">-</span><span class="op">></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">></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">></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">></span> { ... };
|
||||
}</pre></div>
|
||||
</div><div class='docblock'><p>Main macro that does all the work</p>
|
||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quick_error";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||
1
quick_error/sidebar-items.js
Normal file
1
quick_error/sidebar-items.js
Normal file
@@ -0,0 +1 @@
|
||||
initSidebarItems({"macro":[["quick_error","Main macro that does all the work"]],"struct":[["Context","Generic context type"]],"trait":[["ResultExt","Result extension trait adding a `context` method"]]});
|
||||
13
quick_error/struct.Context.html
Normal file
13
quick_error/struct.Context.html
Normal file
File diff suppressed because one or more lines are too long
12
quick_error/trait.ResultExt.html
Normal file
12
quick_error/trait.ResultExt.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!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 `ResultExt` trait in crate `quick_error`."><meta name="keywords" content="rust, rustlang, rust-lang, ResultExt"><title>quick_error::ResultExt - Rust</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" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../quick_error/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Trait ResultExt</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.context">context</a></div><a class="sidebar-title" href="#foreign-impls">Implementations on Foreign Types</a><div class="sidebar-links"><a href="#impl-ResultExt%3CT%2C%20E%3E-for-Result%3CT%2C%20E%3E">Result<T, E></a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class='location'><a href='index.html'>quick_error</a></p><script>window.sidebarCurrent = {name: 'ResultExt', ty: 'trait', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/quick_error/lib.rs.html#976-984' title='goto source code'>[src]</a></span><span class='in-band'>Trait <a href='index.html'>quick_error</a>::<wbr><a class="trait" href=''>ResultExt</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust trait'>pub trait ResultExt<T, E> {
|
||||
fn <a href='#tymethod.context' class='fnname'>context</a><X>(self, x: X) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <a class="struct" href="../quick_error/struct.Context.html" title="struct quick_error::Context">Context</a><X, E>>;
|
||||
}</pre></div><div class='docblock'><p>Result extension trait adding a <code>context</code> method</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.context' class='method'><code id='context.v'>fn <a href='#tymethod.context' class='fnname'>context</a><X>(self, x: X) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <a class="struct" href="../quick_error/struct.Context.html" title="struct quick_error::Context">Context</a><X, E>></code></h3><div class='docblock'><p>The method is use to add context information to current operation</p>
|
||||
<p>The context data is then used in error constructor to store additional
|
||||
information within error. For example, you may add a filename as a
|
||||
context for file operation. See crate documentation for the actual
|
||||
example.</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-ResultExt%3CT%2C%20E%3E-for-Result%3CT%2C%20E%3E' class='impl'><code class='in-band'>impl<T, E> <a class="trait" href="../quick_error/trait.ResultExt.html" title="trait quick_error::ResultExt">ResultExt</a><T, E> for <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, E></code><a href='#impl-ResultExt%3CT%2C%20E%3E-for-Result%3CT%2C%20E%3E' class='anchor'></a><a class='srclink' href='../src/quick_error/lib.rs.html#986-990' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.context' class="method hidden"><code id='context.v-1'>fn <a href='#method.context' class='fnname'>context</a><X>(self, x: X) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <a class="struct" href="../quick_error/struct.Context.html" title="struct quick_error::Context">Context</a><X, E>></code><a class='srclink' href='../src/quick_error/lib.rs.html#987-989' title='goto source code'>[src]</a></h4></div><span class='loading-content'>Loading content...</span>
|
||||
<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/quick_error/trait.ResultExt.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "quick_error";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>
|
||||
Reference in New Issue
Block a user