1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 1em; font-size: 70%;">
<style>
.node {
padding: .5em;
border: thin solid;
border-radius: 1em;
}
h3 {
margin-top: 0 !important;
font-size: 1.25em !important;
}
h3 code {
background: none !important;
}
.arrow-head {
width: 10px;
height: 10px;
border-top: thin solid;
border-right: thin solid;
transform: rotate(-45deg);
margin-bottom: -11px;
}
.arrow-v {
width: 0px;
min-height: 10px;
border-left: thin solid;
}
.arrow-h {
height: 0px;
border-bottom: thin solid;
}
.arrow-label {
padding-inline: 5px;
background: none !important;
text-align: center !important;
max-width: calc(100% - 1.5em);
}
.center-h {
margin-inline: auto;
}
.arrow-cell {
display: flex;
flex-direction: column;
align-content: center;
align-items: center;
}
</style>
<div class="node">
<h3><a href="../trait.FromAttr.html"><code>FromAttr</code></a></h3>
<p>Main entry point. Derived via macro. Anything that can be parsed from one or multiple attributes.</p>
</div>
<div class="node">
<h3><a href="trait.AttributeNamed.html"><code>AttributeNamed</code></a></h3>
<p>Values that can be parsed named, e.g. <code>name(<value>)</code>, <code>name = <value></code>, <code>name</code> (as flag).</p>
<p>This is the default parsing mode used for fields in derived <a href="../trait.FromAttr.html"><code>FromAttr</code></a> implementations.</p>
</div>
<div class="node">
<h3><a href="trait.AttributePositional.html"><code>AttributePositional</code></a></h3>
<p>Values that can be parsed positionally, i.e., without a name, e.g. <code>"literal"</code>, <code>a + b</code>, <code>true</code>.</p>
<p>When deriving <a href="../trait.FromAttr.html"><code>FromAttr</code></a> this is enabled via putting <code>#[attr(positional)]</code> on the field.</p>
</div>
<div class="arrow-cell" style="grid-column: 1; grid-row: 2;">
<div class="arrow-head"></div>
<div style="flex: 1" class="arrow-v"></div>
<code class="arrow-label">impl <T: AttributeValue> FromAttr for T</code>
<div style="flex: 1" class="arrow-v"></div>
</div>
<div class="arrow-cell" style="grid-column: 2; grid-row: 2;">
<div class="arrow-head"></div>
<div style="flex: 1" class="arrow-v"></div>
<code class="arrow-label">impl <T: AttributeValue> AttributeNamed for T</code>
<div style="flex: 1" class="arrow-v"></div>
</div>
<div class="arrow-cell" style="grid-column: 3; grid-row: 2;">
<div class="arrow-head"></div>
<div style="flex: 1" class="arrow-v"></div>
<code class="arrow-label">impl <T: AttributeValue + PositionalValue> AttributePositional for T</code>
<div style="flex: 1" class="arrow-v"></div>
</div>
<div style="grid-column: 2 / 4; grid-row: 2; position: relative;">
<div class="arrow-v" style="left: calc(50% - 1.5em); bottom: 0; height: 50%; position: absolute;"> </div>
<div class="arrow-h" style="left: calc(50% - 1.5em); bottom: 50%; width: 3em; position: absolute;"> </div>
</div>
<div class="arrow-cell">
<div style="height: 4em; margin-top: -1em;" class="arrow-v"></div>
<div class="arrow-h" style="margin-left: 50%; width: 50%;"></div>
</div>
<div class="node">
<h3><a href="trait.AttributeValue.html"><code>AttributeValue</code></a></h3>
Any attribute that has the concept of a value, e.g., <code>"positional"</code>, <code>meta(<value>)</code>, <code>key = <value></code>.
</div>
<div class="node">
<h3><a href="trait.PositionalValue.html"><code>PositionalValue</code></a></h3>
Empty marker trait, defining which <code>AttributeValue</code> implement <code>AttributePositional</code>.
</div>
<div class="arrow-cell" style="grid-column: 2;">
<div class="arrow-head"></div>
<div style="flex: 1" class="arrow-v"></div>
<code class="arrow-label">impl <T: AttributeMeta> AttributeValue for T</code>
<div style="flex: 1" class="arrow-v"></div>
</div>
<div class="node" style="grid-column: 2;">
<h3><a href="trait.AttributeMeta.html"><code>AttributeMeta</code></a></h3>
<p>Values in function or meta style attributes, i.e., <code>meta(<value>).</code></p>
</div>
</div>
|