|
1 |
| -<h2 id="layout" class="small-section-header"> {# #} |
| 1 | +<h2 id="layout" class="small-section-header"> {# #} |
2 | 2 | Layout<a href="#layout" class="anchor">§</a> {# #}
|
3 | 3 | </h2> {# #}
|
4 | 4 | <div class="docblock"> {# #}
|
5 | 5 | {% match type_layout_size %}
|
6 |
| - {% when Ok(type_layout_size) %} |
7 |
| - <div class="warning"> {# #} |
8 |
| - <p> {# #} |
9 |
| - <strong>Note:</strong> Most layout information is <strong>completely {#+ #} |
10 |
| - unstable</strong> and may even differ between compilations. {#+ #} |
11 |
| - The only exception is types with certain <code>repr(...)</code> {#+ #} |
12 |
| - attributes. Please see the Rust Reference’s {#+ #} |
13 |
| - <a href="https://doc.rust-lang.org/reference/type-layout.html">“Type Layout”</a> {#+ #} |
14 |
| - chapter for details on type layout guarantees. {# #} |
15 |
| - </p> {# #} |
16 |
| - </div> {# #} |
17 |
| - <p><strong>Size:</strong> {{ type_layout_size|safe }}</p> {# #} |
18 |
| - {% if !variants.is_empty() %} |
19 |
| - <p> {# #} |
20 |
| - <strong>Size for each variant:</strong> {# #} |
21 |
| - </p> {# #} |
22 |
| - <ul> {# #} |
23 |
| - {% for (name, layout_size) in variants %} |
24 |
| - <li> {# #} |
25 |
| - <code>{{ name }}</code>: {#+ #} |
26 |
| - {{ layout_size|safe }} |
27 |
| - </li> {# #} |
28 |
| - {% endfor %} |
29 |
| - </ul> {# #} |
30 |
| - {% endif %} |
31 |
| - {# This kind of layout error can occur with valid code, e.g. if you try to |
32 |
| - get the layout of a generic type such as `Vec<T>`. #} |
| 6 | + {% when Ok(type_layout_size) %} |
| 7 | + <div class="warning"> {# #} |
| 8 | + <p> {# #} |
| 9 | + <strong>Note:</strong> Most layout information is <strong>completely {#+ #} |
| 10 | + unstable</strong> and may even differ between compilations. {#+ #} |
| 11 | + The only exception is types with certain <code>repr(...)</code> {#+ #} |
| 12 | + attributes. Please see the Rust Reference’s {#+ #} |
| 13 | + <a href="https://doc.rust-lang.org/reference/type-layout.html">“Type Layout”</a> {#+ #} |
| 14 | + chapter for details on type layout guarantees. {# #} |
| 15 | + </p> {# #} |
| 16 | + </div> {# #} |
| 17 | + <p><strong>Size:</strong> {{ type_layout_size|safe }}</p> {# #} |
| 18 | + {% if !variants.is_empty() %} |
| 19 | + <p> {# #} |
| 20 | + <strong>Size for each variant:</strong> {# #} |
| 21 | + </p> {# #} |
| 22 | + <ul> {# #} |
| 23 | + {% for (name, layout_size) in variants %} |
| 24 | + <li> {# #} |
| 25 | + <code>{{ name }}</code>: {#+ #} |
| 26 | + {{ layout_size|safe }} |
| 27 | + </li> {# #} |
| 28 | + {% endfor %} |
| 29 | + </ul> {# #} |
| 30 | + {% endif %} |
| 31 | + {# This kind of layout error can occur with valid code, e.g. if you try to |
| 32 | + get the layout of a generic type such as `Vec<T>`. #} |
33 | 33 | {% when Err(LayoutError::Unknown(_)) %}
|
34 |
| - <p> {# #} |
35 |
| - <strong>Note:</strong> Unable to compute type layout, {#+ #} |
36 |
| - possibly due to this type having generic parameters. {#+ #} |
37 |
| - Layout can only be computed for concrete, fully-instantiated types. {# #} |
38 |
| - </p> {# #} |
| 34 | + <p> {# #} |
| 35 | + <strong>Note:</strong> Unable to compute type layout, {#+ #} |
| 36 | + possibly due to this type having generic parameters. {#+ #} |
| 37 | + Layout can only be computed for concrete, fully-instantiated types. {# #} |
| 38 | + </p> {# #} |
39 | 39 | {# This kind of error probably can't happen with valid code, but we don't
|
40 |
| - want to panic and prevent the docs from building, so we just let the |
41 |
| - user know that we couldn't compute the layout. #} |
| 40 | + want to panic and prevent the docs from building, so we just let the |
| 41 | + user know that we couldn't compute the layout. #} |
42 | 42 | {% when Err(LayoutError::SizeOverflow(_)) %}
|
43 |
| - <p> {# #} |
44 |
| - <strong>Note:</strong> Encountered an error during type layout; {#+ #} |
45 |
| - the type was too big. {# #} |
46 |
| - </p> {# #} |
| 43 | + <p> {# #} |
| 44 | + <strong>Note:</strong> Encountered an error during type layout; {#+ #} |
| 45 | + the type was too big. {# #} |
| 46 | + </p> {# #} |
47 | 47 | {% when Err(LayoutError::NormalizationFailure(_, _)) %}
|
48 |
| - <p> {# #} |
49 |
| - <strong>Note:</strong> Encountered an error during type layout; {#+ #} |
50 |
| - the type failed to be normalized. {# #} |
51 |
| - </p> {# #} |
52 |
| - {% endmatch %} |
| 48 | + <p> {# #} |
| 49 | + <strong>Note:</strong> Encountered an error during type layout; {#+ #} |
| 50 | + the type failed to be normalized. {# #} |
| 51 | + </p> {# #} |
| 52 | + {% when Err(LayoutError::Cycle) %} |
| 53 | + <p> {# #} |
| 54 | + <strong>Note:</strong> Encountered an error during type layout; {#+ #} |
| 55 | + the type's layout depended on the type's layout itself. {# #} |
| 56 | + </p> {# #} |
| 57 | + {% endmatch %} |
53 | 58 | </div> {# #}
|
0 commit comments