| ofs | hex dump | ascii |
|---|
| 0000 | 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 6f 61 ab 2c 14 00 00 00 14 00 00 00 08 00 00 00 6d 69 | PK..........!Roa.,............mi |
| 0020 | 6d 65 74 79 70 65 61 70 70 6c 69 63 61 74 69 6f 6e 2f 65 70 75 62 2b 7a 69 70 50 4b 03 04 14 00 | metypeapplication/epub+zipPK.... |
| 0040 | 00 00 00 00 00 00 21 52 6f 92 d0 0a fc 00 00 00 fc 00 00 00 16 00 00 00 4d 45 54 41 2d 49 4e 46 | ......!Ro...............META-INF |
| 0060 | 2f 63 6f 6e 74 61 69 6e 65 72 2e 78 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 | /container.xml<?xml.version="1.0 |
| 0080 | 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a 3c 63 6f 6e 74 61 69 6e 65 72 20 | ".encoding="utf-8"?>.<container. |
| 00a0 | 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 6f 61 73 69 73 3a 6e | version="1.0".xmlns="urn:oasis:n |
| 00c0 | 61 6d 65 73 3a 74 63 3a 6f 70 65 6e 64 6f 63 75 6d 65 6e 74 3a 78 6d 6c 6e 73 3a 63 6f 6e 74 61 | ames:tc:opendocument:xmlns:conta |
| 00e0 | 69 6e 65 72 22 3e 0a 20 20 3c 72 6f 6f 74 66 69 6c 65 73 3e 0a 20 20 20 20 3c 72 6f 6f 74 66 69 | iner">...<rootfiles>.....<rootfi |
| 0100 | 6c 65 20 66 75 6c 6c 2d 70 61 74 68 3d 22 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 22 | le.full-path="OEBPS/content.opf" |
| 0120 | 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 65 62 70 73 2d 70 | .media-type="application/oebps-p |
| 0140 | 61 63 6b 61 67 65 2b 78 6d 6c 22 2f 3e 0a 20 20 3c 2f 72 6f 6f 74 66 69 6c 65 73 3e 0a 3c 2f 63 | ackage+xml"/>...</rootfiles>.</c |
| 0160 | 6f 6e 74 61 69 6e 65 72 3e 0a 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 6a 86 4f 68 a7 02 00 00 | ontainer>.PK..........!Rj.Oh.... |
| 0180 | a7 02 00 00 11 00 00 00 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 3c 3f 78 6d 6c 20 76 | ........OEBPS/content.opf<?xml.v |
| 01a0 | 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a | ersion="1.0".encoding="utf-8"?>. |
| 01c0 | 3c 70 61 63 6b 61 67 65 20 78 6d 6c 6e 73 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 69 64 70 66 2e | <package.xmlns="http://www.idpf. |
| 01e0 | 6f 72 67 2f 32 30 30 37 2f 6f 70 66 22 20 76 65 72 73 69 6f 6e 3d 22 33 2e 30 22 20 75 6e 69 71 | org/2007/opf".version="3.0".uniq |
| 0200 | 75 65 2d 69 64 65 6e 74 69 66 69 65 72 3d 22 70 75 62 2d 69 64 22 3e 0a 20 20 3c 6d 65 74 61 64 | ue-identifier="pub-id">...<metad |
| 0220 | 61 74 61 20 78 6d 6c 6e 73 3a 64 63 3d 22 68 74 74 70 3a 2f 2f 70 75 72 6c 2e 6f 72 67 2f 64 63 | ata.xmlns:dc="http://purl.org/dc |
| 0240 | 2f 65 6c 65 6d 65 6e 74 73 2f 31 2e 31 2f 22 3e 0a 20 20 20 20 3c 64 63 3a 69 64 65 6e 74 69 66 | /elements/1.1/">.....<dc:identif |
| 0260 | 69 65 72 20 69 64 3d 22 70 75 62 2d 69 64 22 3e 75 72 6e 3a 7a 69 67 6c 61 6e 67 2d 64 6f 63 73 | ier.id="pub-id">urn:ziglang-docs |
| 0280 | 3a 30 2e 32 2e 30 3c 2f 64 63 3a 69 64 65 6e 74 69 66 69 65 72 3e 0a 20 20 20 20 3c 64 63 3a 74 | :0.2.0</dc:identifier>.....<dc:t |
| 02a0 | 69 74 6c 65 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 32 | itle>Zig.Language.Reference.(0.2 |
| 02c0 | 2e 30 29 3c 2f 64 63 3a 74 69 74 6c 65 3e 0a 20 20 20 20 3c 64 63 3a 6c 61 6e 67 75 61 67 65 3e | .0)</dc:title>.....<dc:language> |
| 02e0 | 65 6e 3c 2f 64 63 3a 6c 61 6e 67 75 61 67 65 3e 0a 20 20 20 20 3c 6d 65 74 61 20 70 72 6f 70 65 | en</dc:language>.....<meta.prope |
| 0300 | 72 74 79 3d 22 64 63 74 65 72 6d 73 3a 6d 6f 64 69 66 69 65 64 22 3e 32 30 32 31 2d 30 31 2d 30 | rty="dcterms:modified">2021-01-0 |
| 0320 | 31 54 30 30 3a 30 30 3a 30 30 5a 3c 2f 6d 65 74 61 3e 0a 20 20 3c 2f 6d 65 74 61 64 61 74 61 3e | 1T00:00:00Z</meta>...</metadata> |
| 0340 | 0a 20 20 3c 6d 61 6e 69 66 65 73 74 3e 0a 20 20 20 20 3c 69 74 65 6d 20 69 64 3d 22 6e 61 76 22 | ...<manifest>.....<item.id="nav" |
| 0360 | 20 68 72 65 66 3d 22 6e 61 76 2e 78 68 74 6d 6c 22 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 | .href="nav.xhtml".media-type="ap |
| 0380 | 70 6c 69 63 61 74 69 6f 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 22 20 70 72 6f 70 65 72 74 69 65 73 3d | plication/xhtml+xml".properties= |
| 03a0 | 22 6e 61 76 22 2f 3e 0a 20 20 20 20 3c 69 74 65 6d 20 69 64 3d 22 69 6e 64 65 78 22 20 68 72 65 | "nav"/>.....<item.id="index".hre |
| 03c0 | 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c 22 20 6d 65 64 69 61 2d 74 79 70 65 3d 22 61 70 70 6c | f="index.xhtml".media-type="appl |
| 03e0 | 69 63 61 74 69 6f 6e 2f 78 68 74 6d 6c 2b 78 6d 6c 22 2f 3e 0a 20 20 3c 2f 6d 61 6e 69 66 65 73 | ication/xhtml+xml"/>...</manifes |
| 0400 | 74 3e 0a 20 20 3c 73 70 69 6e 65 3e 0a 20 20 20 20 3c 69 74 65 6d 72 65 66 20 69 64 72 65 66 3d | t>...<spine>.....<itemref.idref= |
| 0420 | 22 69 6e 64 65 78 22 2f 3e 0a 20 20 3c 2f 73 70 69 6e 65 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a | "index"/>...</spine>.</package>. |
| 0440 | 50 4b 03 04 14 00 00 00 00 00 00 00 21 52 52 1f 07 5d 86 01 00 00 86 01 00 00 0f 00 00 00 4f 45 | PK..........!RR..]............OE |
| 0460 | 42 50 53 2f 6e 61 76 2e 78 68 74 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 | BPS/nav.xhtml<?xml.version="1.0" |
| 0480 | 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e 0a 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3d | .encoding="utf-8"?>.<html.xmlns= |
| 04a0 | 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 31 39 39 39 2f 78 68 74 6d 6c 22 20 78 | "http://www.w3.org/1999/xhtml".x |
| 04c0 | 6d 6c 6e 73 3a 65 70 75 62 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 69 64 70 66 2e 6f 72 67 2f 32 | mlns:epub="http://www.idpf.org/2 |
| 04e0 | 30 30 37 2f 6f 70 73 22 20 6c 61 6e 67 3d 22 65 6e 22 3e 0a 20 20 3c 68 65 61 64 3e 3c 74 69 74 | 007/ops".lang="en">...<head><tit |
| 0500 | 6c 65 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 32 2e 30 | le>Zig.Language.Reference.(0.2.0 |
| 0520 | 29 3c 2f 74 69 74 6c 65 3e 3c 2f 68 65 61 64 3e 0a 20 20 3c 62 6f 64 79 3e 0a 20 20 20 20 3c 6e | )</title></head>...<body>.....<n |
| 0540 | 61 76 20 65 70 75 62 3a 74 79 70 65 3d 22 74 6f 63 22 20 69 64 3d 22 74 6f 63 22 3e 0a 20 20 20 | av.epub:type="toc".id="toc">.... |
| 0560 | 20 20 20 3c 68 31 3e 43 6f 6e 74 65 6e 74 73 3c 2f 68 31 3e 0a 20 20 20 20 20 20 3c 6f 6c 3e 0a | ...<h1>Contents</h1>.......<ol>. |
| 0580 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e 78 68 74 6d 6c | ........<li><a.href="index.xhtml |
| 05a0 | 22 3e 5a 69 67 20 4c 61 6e 67 75 61 67 65 20 52 65 66 65 72 65 6e 63 65 20 28 30 2e 32 2e 30 29 | ">Zig.Language.Reference.(0.2.0) |
| 05c0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 6f 6c 3e 0a 20 20 20 20 3c 2f 6e 61 76 3e | </a></li>.......</ol>.....</nav> |
| 05e0 | 0a 20 20 3c 2f 62 6f 64 79 3e 0a 3c 2f 68 74 6d 6c 3e 0a 50 4b 03 04 14 00 00 00 00 00 00 00 21 | ...</body>.</html>.PK..........! |
| 0600 | 52 29 ef 77 42 03 9c 03 00 03 9c 03 00 11 00 00 00 4f 45 42 50 53 2f 69 6e 64 65 78 2e 78 68 74 | R).wB............OEBPS/index.xht |
| 0620 | 6d 6c 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 | ml<?xml.version="1.0".encoding=" |
| 0640 | 75 74 66 2d 38 22 3f 3e 0a 0a 3c 68 74 6d 6c 20 78 6d 6c 6e 73 3d 22 68 74 74 70 3a 2f 2f 77 77 | utf-8"?>..<html.xmlns="http://ww |
| 0660 | 77 2e 77 33 2e 6f 72 67 2f 31 39 39 39 2f 78 68 74 6d 6c 22 3e 0a 20 20 3c 68 65 61 64 3e 0a 20 | w.w3.org/1999/xhtml">...<head>.. |
| 0680 | 20 20 20 3c 6d 65 74 61 20 63 68 61 72 73 65 74 3d 22 75 74 66 2d 38 22 2f 3e 0a 20 20 20 20 3c | ...<meta.charset="utf-8"/>.....< |
| 06a0 | 74 69 74 6c 65 3e 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 2d 20 54 68 65 20 5a 69 67 20 50 72 | title>Documentation.-.The.Zig.Pr |
| 06c0 | 6f 67 72 61 6d 6d 69 6e 67 20 4c 61 6e 67 75 61 67 65 3c 2f 74 69 74 6c 65 3e 0a 20 20 20 20 3c | ogramming.Language</title>.....< |
| 06e0 | 73 74 79 6c 65 20 74 79 70 65 3d 22 74 65 78 74 2f 63 73 73 22 3e 0a 2e 68 6c 6a 73 7b 64 69 73 | style.type="text/css">..hljs{dis |
| 0700 | 70 6c 61 79 3a 62 6c 6f 63 6b 3b 6f 76 65 72 66 6c 6f 77 2d 78 3a 61 75 74 6f 3b 70 61 64 64 69 | play:block;overflow-x:auto;paddi |
| 0720 | 6e 67 3a 30 2e 35 65 6d 3b 63 6f 6c 6f 72 3a 23 33 33 33 3b 62 61 63 6b 67 72 6f 75 6e 64 3a 23 | ng:0.5em;color:#333;background:# |
| 0740 | 66 38 66 38 66 38 7d 2e 68 6c 6a 73 2d 63 6f 6d 6d 65 6e 74 2c 2e 68 6c 6a 73 2d 71 75 6f 74 65 | f8f8f8}.hljs-comment,.hljs-quote |
| 0760 | 7b 63 6f 6c 6f 72 3a 23 39 39 38 3b 66 6f 6e 74 2d 73 74 79 6c 65 3a 69 74 61 6c 69 63 7d 2e 68 | {color:#998;font-style:italic}.h |
| 0780 | 6c 6a 73 2d 6b 65 79 77 6f 72 64 2c 2e 68 6c 6a 73 2d 73 65 6c 65 63 74 6f 72 2d 74 61 67 2c 2e | ljs-keyword,.hljs-selector-tag,. |
| 07a0 | 68 6c 6a 73 2d 73 75 62 73 74 7b 63 6f 6c 6f 72 3a 23 33 33 33 3b 66 6f 6e 74 2d 77 65 69 67 68 | hljs-subst{color:#333;font-weigh |
| 07c0 | 74 3a 62 6f 6c 64 7d 2e 68 6c 6a 73 2d 6e 75 6d 62 65 72 2c 2e 68 6c 6a 73 2d 6c 69 74 65 72 61 | t:bold}.hljs-number,.hljs-litera |
| 07e0 | 6c 2c 2e 68 6c 6a 73 2d 76 61 72 69 61 62 6c 65 2c 2e 68 6c 6a 73 2d 74 65 6d 70 6c 61 74 65 2d | l,.hljs-variable,.hljs-template- |
| 0800 | 76 61 72 69 61 62 6c 65 2c 2e 68 6c 6a 73 2d 74 61 67 20 2e 68 6c 6a 73 2d 61 74 74 72 7b 63 6f | variable,.hljs-tag..hljs-attr{co |
| 0820 | 6c 6f 72 3a 23 30 30 38 30 38 30 7d 2e 68 6c 6a 73 2d 73 74 72 69 6e 67 2c 2e 68 6c 6a 73 2d 64 | lor:#008080}.hljs-string,.hljs-d |
| 0840 | 6f 63 74 61 67 7b 63 6f 6c 6f 72 3a 23 64 31 34 7d 2e 68 6c 6a 73 2d 74 69 74 6c 65 2c 2e 68 6c | octag{color:#d14}.hljs-title,.hl |
| 0860 | 6a 73 2d 73 65 63 74 69 6f 6e 2c 2e 68 6c 6a 73 2d 73 65 6c 65 63 74 6f 72 2d 69 64 7b 63 6f 6c | js-section,.hljs-selector-id{col |
| 0880 | 6f 72 3a 23 39 30 30 3b 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f 6c 64 7d 2e 68 6c 6a 73 2d 73 | or:#900;font-weight:bold}.hljs-s |
| 08a0 | 75 62 73 74 7b 66 6f 6e 74 2d 77 65 69 67 68 74 3a 6e 6f 72 6d 61 6c 7d 2e 68 6c 6a 73 2d 74 79 | ubst{font-weight:normal}.hljs-ty |
| 08c0 | 70 65 2c 2e 68 6c 6a 73 2d 63 6c 61 73 73 20 2e 68 6c 6a 73 2d 74 69 74 6c 65 7b 63 6f 6c 6f 72 | pe,.hljs-class..hljs-title{color |
| 08e0 | 3a 23 34 35 38 3b 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f 6c 64 7d 2e 68 6c 6a 73 2d 74 61 67 | :#458;font-weight:bold}.hljs-tag |
| 0900 | 2c 2e 68 6c 6a 73 2d 6e 61 6d 65 2c 2e 68 6c 6a 73 2d 61 74 74 72 69 62 75 74 65 7b 63 6f 6c 6f | ,.hljs-name,.hljs-attribute{colo |
| 0920 | 72 3a 23 30 30 30 30 38 30 3b 66 6f 6e 74 2d 77 65 69 67 68 74 3a 6e 6f 72 6d 61 6c 7d 2e 68 6c | r:#000080;font-weight:normal}.hl |
| 0940 | 6a 73 2d 72 65 67 65 78 70 2c 2e 68 6c 6a 73 2d 6c 69 6e 6b 7b 63 6f 6c 6f 72 3a 23 30 30 39 39 | js-regexp,.hljs-link{color:#0099 |
| 0960 | 32 36 7d 2e 68 6c 6a 73 2d 73 79 6d 62 6f 6c 2c 2e 68 6c 6a 73 2d 62 75 6c 6c 65 74 7b 63 6f 6c | 26}.hljs-symbol,.hljs-bullet{col |
| 0980 | 6f 72 3a 23 39 39 30 30 37 33 7d 2e 68 6c 6a 73 2d 62 75 69 6c 74 5f 69 6e 2c 2e 68 6c 6a 73 2d | or:#990073}.hljs-built_in,.hljs- |
| 09a0 | 62 75 69 6c 74 69 6e 2d 6e 61 6d 65 7b 63 6f 6c 6f 72 3a 23 30 30 38 36 62 33 7d 2e 68 6c 6a 73 | builtin-name{color:#0086b3}.hljs |
| 09c0 | 2d 6d 65 74 61 7b 63 6f 6c 6f 72 3a 23 39 39 39 3b 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f 6c | -meta{color:#999;font-weight:bol |
| 09e0 | 64 7d 2e 68 6c 6a 73 2d 64 65 6c 65 74 69 6f 6e 7b 62 61 63 6b 67 72 6f 75 6e 64 3a 23 66 64 64 | d}.hljs-deletion{background:#fdd |
| 0a00 | 7d 2e 68 6c 6a 73 2d 61 64 64 69 74 69 6f 6e 7b 62 61 63 6b 67 72 6f 75 6e 64 3a 23 64 66 64 7d | }.hljs-addition{background:#dfd} |
| 0a20 | 2e 68 6c 6a 73 2d 65 6d 70 68 61 73 69 73 7b 66 6f 6e 74 2d 73 74 79 6c 65 3a 69 74 61 6c 69 63 | .hljs-emphasis{font-style:italic |
| 0a40 | 7d 2e 68 6c 6a 73 2d 73 74 72 6f 6e 67 7b 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f 6c 64 7d 0a | }.hljs-strong{font-weight:bold}. |
| 0a60 | 20 20 20 20 3c 2f 73 74 79 6c 65 3e 0a 20 20 20 20 3c 73 74 79 6c 65 20 74 79 70 65 3d 22 74 65 | ....</style>.....<style.type="te |
| 0a80 | 78 74 2f 63 73 73 22 3e 0a 20 20 20 20 20 20 74 61 62 6c 65 2c 20 74 68 2c 20 74 64 20 7b 0a 20 | xt/css">.......table,.th,.td.{.. |
| 0aa0 | 20 20 20 20 20 20 20 62 6f 72 64 65 72 2d 63 6f 6c 6c 61 70 73 65 3a 20 63 6f 6c 6c 61 70 73 65 | .......border-collapse:.collapse |
| 0ac0 | 3b 0a 20 20 20 20 20 20 20 20 62 6f 72 64 65 72 3a 20 31 70 78 20 73 6f 6c 69 64 20 67 72 65 79 | ;.........border:.1px.solid.grey |
| 0ae0 | 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 74 68 2c 20 74 64 20 7b 0a 20 20 20 20 20 20 20 | ;.......}.......th,.td.{........ |
| 0b00 | 20 70 61 64 64 69 6e 67 3a 20 30 2e 31 65 6d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e | .padding:.0.1em;.......}........ |
| 0b20 | 74 30 5f 31 2c 20 2e 74 33 37 2c 20 2e 74 33 37 5f 31 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 6e | t0_1,..t37,..t37_1.{.........fon |
| 0b40 | 74 2d 77 65 69 67 68 74 3a 20 62 6f 6c 64 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 | t-weight:.bold;.......}........t |
| 0b60 | 32 5f 30 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 67 72 65 79 3b 0a 20 20 20 20 20 | 2_0.{.........color:.grey;...... |
| 0b80 | 20 7d 0a 20 20 20 20 20 20 2e 74 33 31 5f 31 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a | .}........t31_1.{.........color: |
| 0ba0 | 20 72 65 64 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 74 33 32 5f 31 20 7b 0a 20 20 20 | .red;.......}........t32_1.{.... |
| 0bc0 | 20 20 20 20 20 63 6f 6c 6f 72 3a 20 67 72 65 65 6e 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 | .....color:.green;.......}...... |
| 0be0 | 20 2e 74 33 36 5f 31 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3a 20 23 30 30 38 36 62 33 | ..t36_1.{.........color:.#0086b3 |
| 0c00 | 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2e 66 69 6c 65 20 7b 0a 20 20 20 20 20 20 20 20 | ;.......}........file.{......... |
| 0c20 | 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 20 75 6e 64 65 72 6c 69 6e 65 3b 0a 20 20 20 20 | text-decoration:.underline;..... |
| 0c40 | 20 20 7d 0a 20 20 20 20 20 20 63 6f 64 65 20 7b 0a 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 73 69 | ..}.......code.{.........font-si |
| 0c60 | 7a 65 3a 20 31 32 70 74 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 70 72 65 20 3e 20 63 6f | ze:.12pt;.......}.......pre.>.co |
| 0c80 | 64 65 20 7b 0a 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 3a 20 62 6c 6f 63 6b 3b 0a 20 20 20 | de.{.........display:.block;.... |
| 0ca0 | 20 20 20 20 20 6f 76 65 72 66 6c 6f 77 3a 20 61 75 74 6f 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 | .....overflow:.auto;.......}.... |
| 0cc0 | 20 20 20 2e 74 61 62 6c 65 2d 77 72 61 70 70 65 72 20 7b 0a 20 20 20 20 20 20 20 20 77 69 64 74 | ....table-wrapper.{.........widt |
| 0ce0 | 68 3a 20 31 30 30 25 3b 0a 20 20 20 20 20 20 20 20 6f 76 65 72 66 6c 6f 77 2d 79 3a 20 61 75 74 | h:.100%;.........overflow-y:.aut |
| 0d00 | 6f 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2f 2a 20 44 65 73 6b 74 6f 70 20 2a 2f 0a 20 | o;.......}......./*.Desktop.*/.. |
| 0d20 | 20 20 20 20 20 40 6d 65 64 69 61 20 73 63 72 65 65 6e 20 61 6e 64 20 28 6d 69 6e 2d 77 69 64 74 | .....@media.screen.and.(min-widt |
| 0d40 | 68 3a 20 35 36 2e 32 35 65 6d 29 20 7b 0a 20 20 20 20 20 20 20 20 23 6e 61 76 20 7b 0a 20 20 20 | h:.56.25em).{.........#nav.{.... |
| 0d60 | 20 20 20 20 20 20 20 77 69 64 74 68 3a 20 32 30 65 6d 3b 0a 20 20 20 20 20 20 20 20 20 20 68 65 | .......width:.20em;...........he |
| 0d80 | 69 67 68 74 3a 20 31 30 30 25 3b 0a 20 20 20 20 20 20 20 20 20 20 70 6f 73 69 74 69 6f 6e 3a 20 | ight:.100%;...........position:. |
| 0da0 | 66 69 78 65 64 3b 0a 20 20 20 20 20 20 20 20 20 20 6f 76 65 72 66 6c 6f 77 2d 79 3a 20 73 63 72 | fixed;...........overflow-y:.scr |
| 0dc0 | 6f 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 6c 65 66 74 3a 20 30 3b 0a 20 20 20 20 20 20 20 20 | oll;...........left:.0;......... |
| 0de0 | 20 20 74 6f 70 3a 20 32 65 6d 3b 0a 20 20 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 2d 6c 65 | ..top:.2em;...........padding-le |
| 0e00 | 66 74 3a 20 31 65 6d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 23 63 6f 6e 74 | ft:.1em;.........}.........#cont |
| 0e20 | 65 6e 74 73 20 7b 0a 20 20 20 20 20 20 20 20 20 20 6d 61 78 2d 77 69 64 74 68 3a 20 36 30 65 6d | ents.{...........max-width:.60em |
| 0e40 | 3b 0a 20 20 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 2d 6c 65 66 74 3a 20 32 32 65 6d 3b 0a | ;...........padding-left:.22em;. |
| 0e60 | 20 20 20 20 20 20 20 20 20 20 70 61 64 64 69 6e 67 3a 20 31 65 6d 3b 0a 20 20 20 20 20 20 20 20 | ..........padding:.1em;......... |
| 0e80 | 20 20 70 61 64 64 69 6e 67 2d 6c 65 66 74 3a 20 32 34 65 6d 3b 0a 20 20 20 20 20 20 20 20 7d 0a | ..padding-left:.24em;.........}. |
| 0ea0 | 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2f 2a 20 4d 6f 62 69 6c 65 20 2a 2f 0a 20 20 20 20 20 | ......}......./*.Mobile.*/...... |
| 0ec0 | 20 40 6d 65 64 69 61 20 73 63 72 65 65 6e 20 61 6e 64 20 28 6d 61 78 2d 77 69 64 74 68 3a 20 35 | .@media.screen.and.(max-width:.5 |
| 0ee0 | 36 2e 32 35 65 6d 29 20 7b 0a 20 20 20 20 20 20 20 20 62 6f 64 79 2c 20 63 6f 64 65 20 7b 0a 20 | 6.25em).{.........body,.code.{.. |
| 0f00 | 20 20 20 20 20 20 20 20 20 66 6f 6e 74 2d 73 69 7a 65 3a 20 73 6d 61 6c 6c 3b 0a 20 20 20 20 20 | .........font-size:.small;...... |
| 0f20 | 20 20 20 7d 0a 20 20 20 20 20 20 20 20 23 6e 61 76 20 7b 0a 20 20 20 20 20 20 20 20 20 20 62 6f | ...}.........#nav.{...........bo |
| 0f40 | 72 64 65 72 2d 62 6f 74 74 6f 6d 3a 20 31 70 78 20 73 6f 6c 69 64 20 67 72 65 79 3b 0a 20 20 20 | rder-bottom:.1px.solid.grey;.... |
| 0f60 | 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 3c 2f 73 74 79 6c 65 3e 0a 20 20 3c 2f | .....}.......}.....</style>...</ |
| 0f80 | 68 65 61 64 3e 0a 20 20 3c 62 6f 64 79 3e 0a 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 | head>...<body>.....<a.href="http |
| 0fa0 | 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e | s://ziglang.org/documentation/0. |
| 0fc0 | 31 2e 31 2f 22 3e 30 2e 31 2e 31 3c 2f 61 3e 20 7c 0a 30 2e 32 2e 30 20 7c 0a 3c 61 20 68 72 65 | 1.1/">0.1.1</a>.|.0.2.0.|.<a.hre |
| 0fe0 | 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 | f="https://ziglang.org/documenta |
| 1000 | 74 69 6f 6e 2f 30 2e 33 2e 30 2f 22 3e 30 2e 33 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 | tion/0.3.0/">0.3.0</a>.|.<a.href |
| 1020 | 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 | ="https://ziglang.org/documentat |
| 1040 | 69 6f 6e 2f 30 2e 34 2e 30 2f 22 3e 30 2e 34 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d | ion/0.4.0/">0.4.0</a>.|.<a.href= |
| 1060 | 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 | "https://ziglang.org/documentati |
| 1080 | 6f 6e 2f 30 2e 35 2e 30 2f 22 3e 30 2e 35 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 | on/0.5.0/">0.5.0</a>.|.<a.href=" |
| 10a0 | 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f | https://ziglang.org/documentatio |
| 10c0 | 6e 2f 30 2e 36 2e 30 2f 22 3e 30 2e 36 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 | n/0.6.0/">0.6.0</a>.|.<a.href="h |
| 10e0 | 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e | ttps://ziglang.org/documentation |
| 1100 | 2f 30 2e 37 2e 31 2f 22 3e 30 2e 37 2e 31 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 | /0.7.1/">0.7.1</a>.|.<a.href="ht |
| 1120 | 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f | tps://ziglang.org/documentation/ |
| 1140 | 30 2e 38 2e 31 2f 22 3e 30 2e 38 2e 31 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 | 0.8.1/">0.8.1</a>.|.<a.href="htt |
| 1160 | 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 | ps://ziglang.org/documentation/0 |
| 1180 | 2e 39 2e 31 2f 22 3e 30 2e 39 2e 31 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 70 | .9.1/">0.9.1</a>.|.<a.href="http |
| 11a0 | 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 2e | s://ziglang.org/documentation/0. |
| 11c0 | 31 30 2e 31 2f 22 3e 30 2e 31 30 2e 31 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 74 | 10.1/">0.10.1</a>.|.<a.href="htt |
| 11e0 | 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f 30 | ps://ziglang.org/documentation/0 |
| 1200 | 2e 31 31 2e 30 2f 22 3e 30 2e 31 31 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 74 | .11.0/">0.11.0</a>.|.<a.href="ht |
| 1220 | 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2f | tps://ziglang.org/documentation/ |
| 1240 | 30 2e 31 32 2e 31 2f 22 3e 30 2e 31 32 2e 31 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 68 | 0.12.1/">0.12.1</a>.|.<a.href="h |
| 1260 | 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e | ttps://ziglang.org/documentation |
| 1280 | 2f 30 2e 31 33 2e 30 2f 22 3e 30 2e 31 33 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d 22 | /0.13.0/">0.13.0</a>.|.<a.href=" |
| 12a0 | 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 6f | https://ziglang.org/documentatio |
| 12c0 | 6e 2f 30 2e 31 34 2e 31 2f 22 3e 30 2e 31 34 2e 31 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 3d | n/0.14.1/">0.14.1</a>.|.<a.href= |
| 12e0 | 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 69 | "https://ziglang.org/documentati |
| 1300 | 6f 6e 2f 30 2e 31 35 2e 32 2f 22 3e 30 2e 31 35 2e 32 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 66 | on/0.15.2/">0.15.2</a>.|.<a.href |
| 1320 | 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 74 | ="https://ziglang.org/documentat |
| 1340 | 69 6f 6e 2f 30 2e 31 36 2e 30 2f 22 3e 30 2e 31 36 2e 30 3c 2f 61 3e 20 7c 0a 3c 61 20 68 72 65 | ion/0.16.0/">0.16.0</a>.|.<a.hre |
| 1360 | 66 3d 22 68 74 74 70 73 3a 2f 2f 7a 69 67 6c 61 6e 67 2e 6f 72 67 2f 64 6f 63 75 6d 65 6e 74 61 | f="https://ziglang.org/documenta |
| 1380 | 74 69 6f 6e 2f 6d 61 73 74 65 72 2f 22 3e 6d 61 73 74 65 72 3c 2f 61 3e 0a 20 20 20 20 3c 64 69 | tion/master/">master</a>.....<di |
| 13a0 | 76 20 69 64 3d 22 6e 61 76 22 3e 0a 20 20 20 20 20 20 3c 68 33 3e 49 6e 64 65 78 3c 2f 68 33 3e | v.id="nav">.......<h3>Index</h3> |
| 13c0 | 0a 20 20 20 20 20 20 0a 0a 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | .............<ul>.........<li><a |
| 13e0 | 20 68 72 65 66 3d 22 23 49 6e 74 72 6f 64 75 63 74 69 6f 6e 22 3e 49 6e 74 72 6f 64 75 63 74 69 | .href="#Introduction">Introducti |
| 1400 | 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | on</a></li>.........<li><a.href= |
| 1420 | 22 23 48 65 6c 6c 6f 2d 57 6f 72 6c 64 22 3e 48 65 6c 6c 6f 20 57 6f 72 6c 64 3c 2f 61 3e 3c 2f | "#Hello-World">Hello.World</a></ |
| 1440 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 56 61 6c 75 65 73 | li>.........<li><a.href="#Values |
| 1460 | 22 3e 56 61 6c 75 65 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 | ">Values</a>.........<ul>....... |
| 1480 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 | ......<li><a.href="#Primitive-Ty |
| 14a0 | 70 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | pes">Primitive.Types</a></li>... |
| 14c0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 | ..........<li><a.href="#Primitiv |
| 14e0 | 65 2d 56 61 6c 75 65 73 22 3e 50 72 69 6d 69 74 69 76 65 20 56 61 6c 75 65 73 3c 2f 61 3e 3c 2f | e-Values">Primitive.Values</a></ |
| 1500 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 74 | li>.............<li><a.href="#St |
| 1520 | 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f | ring-Literals">String.Literals</ |
| 1540 | 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | a>.............<ul>............. |
| 1560 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 73 63 61 70 65 2d 53 65 71 75 65 6e 63 | ....<li><a.href="#Escape-Sequenc |
| 1580 | 65 73 22 3e 45 73 63 61 70 65 20 53 65 71 75 65 6e 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | es">Escape.Sequences</a></li>... |
| 15a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4d 75 6c 74 | ..............<li><a.href="#Mult |
| 15c0 | 69 6c 69 6e 65 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 4d 75 6c 74 69 6c 69 6e 65 | iline-String-Literals">Multiline |
| 15e0 | 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | .String.Literals</a></li>....... |
| 1600 | 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | ......</ul></li>.............<li |
| 1620 | 3e 3c 61 20 68 72 65 66 3d 22 23 41 73 73 69 67 6e 6d 65 6e 74 22 3e 41 73 73 69 67 6e 6d 65 6e | ><a.href="#Assignment">Assignmen |
| 1640 | 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 | t</a></li>.........</ul></li>... |
| 1660 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e | ......<li><a.href="#Integers">In |
| 1680 | 74 65 67 65 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | tegers</a>.........<ul>......... |
| 16a0 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 | ....<li><a.href="#Integer-Litera |
| 16c0 | 6c 73 22 3e 49 6e 74 65 67 65 72 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | ls">Integer.Literals</a></li>... |
| 16e0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 75 6e 74 69 6d 65 2d | ..........<li><a.href="#Runtime- |
| 1700 | 49 6e 74 65 67 65 72 2d 56 61 6c 75 65 73 22 3e 52 75 6e 74 69 6d 65 20 49 6e 74 65 67 65 72 20 | Integer-Values">Runtime.Integer. |
| 1720 | 56 61 6c 75 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c | Values</a></li>.........</ul></l |
| 1740 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 | i>.........<li><a.href="#Floats" |
| 1760 | 3e 46 6c 6f 61 74 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 | >Floats</a>.........<ul>........ |
| 1780 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 2d 4c 69 74 65 72 61 6c | .....<li><a.href="#Float-Literal |
| 17a0 | 73 22 3e 46 6c 6f 61 74 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | s">Float.Literals</a></li>...... |
| 17c0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 69 6e 67 2d 50 6f | .......<li><a.href="#Floating-Po |
| 17e0 | 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 69 6e 67 20 50 6f 69 6e 74 20 4f | int-Operations">Floating.Point.O |
| 1800 | 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e | perations</a></li>.........</ul> |
| 1820 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4f 70 65 72 | </li>.........<li><a.href="#Oper |
| 1840 | 61 74 6f 72 73 22 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c | ators">Operators</a>.........<ul |
| 1860 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 61 62 6c | >.............<li><a.href="#Tabl |
| 1880 | 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 73 22 3e 54 61 62 6c 65 20 6f 66 20 4f 70 65 72 61 74 6f | e-of-Operators">Table.of.Operato |
| 18a0 | 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | rs</a></li>.............<li><a.h |
| 18c0 | 72 65 66 3d 22 23 50 72 65 63 65 64 65 6e 63 65 22 3e 50 72 65 63 65 64 65 6e 63 65 3c 2f 61 3e | ref="#Precedence">Precedence</a> |
| 18e0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | </li>.........</ul></li>........ |
| 1900 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 | .<li><a.href="#Arrays">Arrays</a |
| 1920 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 | ></li>.........<li><a.href="#Poi |
| 1940 | 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e | nters">Pointers</a>.........<ul> |
| 1960 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 6c 69 67 6e | .............<li><a.href="#Align |
| 1980 | 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | ment">Alignment</a></li>........ |
| 19a0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 79 70 65 2d 42 61 73 65 64 2d 41 6c | .....<li><a.href="#Type-Based-Al |
| 19c0 | 69 61 73 2d 41 6e 61 6c 79 73 69 73 22 3e 54 79 70 65 20 42 61 73 65 64 20 41 6c 69 61 73 20 41 | ias-Analysis">Type.Based.Alias.A |
| 19e0 | 6e 61 6c 79 73 69 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f | nalysis</a></li>.........</ul></ |
| 1a00 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 | li>.........<li><a.href="#Slices |
| 1a20 | 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | ">Slices</a></li>.........<li><a |
| 1a40 | 20 68 72 65 66 3d 22 23 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a | .href="#struct">struct</a></li>. |
| 1a60 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d | ........<li><a.href="#enum">enum |
| 1a80 | 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | </a>.........<ul>.............<l |
| 1aa0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 74 65 72 6e 2d 65 6e 75 6d 22 3e 65 78 74 65 72 6e 20 | i><a.href="#extern-enum">extern. |
| 1ac0 | 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e | enum</a></li>.........</ul></li> |
| 1ae0 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 69 6f 6e 22 3e 75 6e | .........<li><a.href="#union">un |
| 1b00 | 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | ion</a></li>.........<li><a.href |
| 1b20 | 3d 22 23 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ="#switch">switch</a></li>...... |
| 1b40 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c 2f 61 | ...<li><a.href="#while">while</a |
| 1b60 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 | ></li>.........<li><a.href="#for |
| 1b80 | 22 3e 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | ">for</a></li>.........<li><a.hr |
| 1ba0 | 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | ef="#if">if</a></li>.........<li |
| 1bc0 | 3e 3c 61 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e 64 65 66 65 72 3c 2f 61 3e 3c 2f 6c 69 3e | ><a.href="#defer">defer</a></li> |
| 1be0 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 75 6e 72 65 61 63 68 61 62 | .........<li><a.href="#unreachab |
| 1c00 | 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e | le">unreachable</a>.........<ul> |
| 1c20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 61 73 69 63 | .............<li><a.href="#Basic |
| 1c40 | 73 22 3e 42 61 73 69 63 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | s">Basics</a></li>.............< |
| 1c60 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 3e 41 74 | li><a.href="#At-Compile-Time">At |
| 1c80 | 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | .Compile-Time</a></li>.........< |
| 1ca0 | 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | /ul></li>.........<li><a.href="# |
| 1cc0 | 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | noreturn">noreturn</a></li>..... |
| 1ce0 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 73 22 3e 46 75 6e | ....<li><a.href="#Functions">Fun |
| 1d00 | 63 74 69 6f 6e 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | ctions</a>.........<ul>......... |
| 1d20 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 2d | ....<li><a.href="#Pass-by-value- |
| 1d40 | 50 61 72 61 6d 65 74 65 72 73 22 3e 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 20 50 61 72 61 6d 65 | Parameters">Pass-by-value.Parame |
| 1d60 | 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | ters</a></li>.............<li><a |
| 1d80 | 20 68 72 65 66 3d 22 23 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 3e 46 75 6e | .href="#Function-Reflection">Fun |
| 1da0 | 63 74 69 6f 6e 20 52 65 66 6c 65 63 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | ction.Reflection</a></li>....... |
| 1dc0 | 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | ..</ul></li>.........<li><a.href |
| 1de0 | 3d 22 23 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 | ="#Errors">Errors</a>.........<u |
| 1e00 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 | l>.............<li><a.href="#Err |
| 1e20 | 6f 72 2d 53 65 74 2d 54 79 70 65 22 3e 45 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f 61 3e 0a | or-Set-Type">Error.Set.Type</a>. |
| 1e40 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............<ul>................ |
| 1e60 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d | .<li><a.href="#The-Global-Error- |
| 1e80 | 53 65 74 22 3e 54 68 65 20 47 6c 6f 62 61 6c 20 45 72 72 6f 72 20 53 65 74 3c 2f 61 3e 3c 2f 6c | Set">The.Global.Error.Set</a></l |
| 1ea0 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | i>.............</ul></li>....... |
| 1ec0 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d | ......<li><a.href="#Error-Union- |
| 1ee0 | 54 79 70 65 22 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 61 3e 0a 20 20 20 20 20 | Type">Error.Union.Type</a>...... |
| 1f00 | 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | .......<ul>.................<li> |
| 1f20 | 3c 61 20 68 72 65 66 3d 22 23 49 6e 66 65 72 72 65 64 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 49 | <a.href="#Inferred-Error-Sets">I |
| 1f40 | 6e 66 65 72 72 65 64 20 45 72 72 6f 72 20 53 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | nferred.Error.Sets</a></li>..... |
| 1f60 | 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | ........</ul></li>.............< |
| 1f80 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 2d 52 65 74 75 72 6e 2d 54 72 61 63 65 73 | li><a.href="#Error-Return-Traces |
| 1fa0 | 22 3e 45 72 72 6f 72 20 52 65 74 75 72 6e 20 54 72 61 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | ">Error.Return.Traces</a></li>.. |
| 1fc0 | 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | .......</ul></li>.........<li><a |
| 1fe0 | 20 68 72 65 66 3d 22 23 4e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e | .href="#Nullables">Nullables</a> |
| 2000 | 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | .........<ul>.............<li><a |
| 2020 | 20 68 72 65 66 3d 22 23 4e 75 6c 6c 61 62 6c 65 2d 54 79 70 65 22 3e 4e 75 6c 6c 61 62 6c 65 20 | .href="#Nullable-Type">Nullable. |
| 2040 | 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e | Type</a></li>.........</ul></li> |
| 2060 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 61 73 74 69 6e 67 22 3e | .........<li><a.href="#Casting"> |
| 2080 | 43 61 73 74 69 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | Casting</a></li>.........<li><a. |
| 20a0 | 68 72 65 66 3d 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | href="#void">void</a></li>...... |
| 20c0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 68 69 73 22 3e 74 68 69 73 3c 2f 61 3e 3c | ...<li><a.href="#this">this</a>< |
| 20e0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 | /li>.........<li><a.href="#compt |
| 2100 | 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 | ime">comptime</a>.........<ul>.. |
| 2120 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 72 6f 64 75 | ...........<li><a.href="#Introdu |
| 2140 | 63 69 6e 67 2d 74 68 65 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 43 6f 6e 63 65 70 74 22 3e 49 | cing-the-Compile-Time-Concept">I |
| 2160 | 6e 74 72 6f 64 75 63 69 6e 67 20 74 68 65 20 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 43 6f 6e 63 | ntroducing.the.Compile-Time.Conc |
| 2180 | 65 70 74 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 | ept</a>.............<ul>........ |
| 21a0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 54 | .........<li><a.href="#Compile-T |
| 21c0 | 69 6d 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 50 61 72 | ime-Parameters">Compile-Time.Par |
| 21e0 | 61 6d 65 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ameters</a></li>................ |
| 2200 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 56 61 72 69 | .<li><a.href="#Compile-Time-Vari |
| 2220 | 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 | ables">Compile-Time.Variables</a |
| 2240 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | ></li>.................<li><a.hr |
| 2260 | 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 45 78 70 72 65 73 73 69 6f 6e 73 22 3e 43 | ef="#Compile-Time-Expressions">C |
| 2280 | 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 45 78 70 72 65 73 73 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e | ompile-Time.Expressions</a></li> |
| 22a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | .............</ul></li>......... |
| 22c0 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 47 65 6e 65 72 69 63 2d 44 61 74 61 2d 53 | ....<li><a.href="#Generic-Data-S |
| 22e0 | 74 72 75 63 74 75 72 65 73 22 3e 47 65 6e 65 72 69 63 20 44 61 74 61 20 53 74 72 75 63 74 75 72 | tructures">Generic.Data.Structur |
| 2300 | 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | es</a></li>.............<li><a.h |
| 2320 | 72 65 66 3d 22 23 43 61 73 65 2d 53 74 75 64 79 2d 70 72 69 6e 74 66 2d 69 6e 2d 5a 69 67 22 3e | ref="#Case-Study-printf-in-Zig"> |
| 2340 | 43 61 73 65 20 53 74 75 64 79 3a 20 70 72 69 6e 74 66 20 69 6e 20 5a 69 67 3c 2f 61 3e 3c 2f 6c | Case.Study:.printf.in.Zig</a></l |
| 2360 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | i>.........</ul></li>.........<l |
| 2380 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 22 3e 69 6e 6c 69 6e 65 3c 2f 61 3e 3c 2f | i><a.href="#inline">inline</a></ |
| 23a0 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 73 73 65 6d 62 | li>.........<li><a.href="#Assemb |
| 23c0 | 6c 79 22 3e 41 73 73 65 6d 62 6c 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ly">Assembly</a></li>.........<l |
| 23e0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 74 6f 6d 69 63 73 22 3e 41 74 6f 6d 69 63 73 3c 2f 61 3e | i><a.href="#Atomics">Atomics</a> |
| 2400 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 75 69 6c | </li>.........<li><a.href="#Buil |
| 2420 | 74 69 6e 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e 73 | tin-Functions">Builtin.Functions |
| 2440 | 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | </a>.........<ul>.............<l |
| 2460 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 61 64 | i><a.href="#addWithOverflow">@ad |
| 2480 | 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | dWithOverflow</a></li>.......... |
| 24a0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 67 54 79 70 65 22 3e 40 41 72 67 54 79 | ...<li><a.href="#ArgType">@ArgTy |
| 24c0 | 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | pe</a></li>.............<li><a.h |
| 24e0 | 72 65 66 3d 22 23 61 74 6f 6d 69 63 52 6d 77 22 3e 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 61 3e 3c | ref="#atomicRmw">@atomicRmw</a>< |
| 2500 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 | /li>.............<li><a.href="#b |
| 2520 | 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | itCast">@bitCast</a></li>....... |
| 2540 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 62 72 65 61 6b 70 6f 69 6e 74 22 3e | ......<li><a.href="#breakpoint"> |
| 2560 | 40 62 72 65 61 6b 70 6f 69 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | @breakpoint</a></li>............ |
| 2580 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 43 61 73 74 22 3e 40 61 6c 69 67 6e | .<li><a.href="#alignCast">@align |
| 25a0 | 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | Cast</a></li>.............<li><a |
| 25c0 | 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 61 3e 3c 2f 6c | .href="#alignOf">@alignOf</a></l |
| 25e0 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 44 65 | i>.............<li><a.href="#cDe |
| 2600 | 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | fine">@cDefine</a></li>......... |
| 2620 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 | ....<li><a.href="#cImport">@cImp |
| 2640 | 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | ort</a></li>.............<li><a. |
| 2660 | 68 72 65 66 3d 22 23 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f | href="#cInclude">@cInclude</a></ |
| 2680 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 | li>.............<li><a.href="#cU |
| 26a0 | 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ndef">@cUndef</a></li>.......... |
| 26c0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 61 6e 49 6d 70 6c 69 63 69 74 43 61 73 74 | ...<li><a.href="#canImplicitCast |
| 26e0 | 22 3e 40 63 61 6e 49 6d 70 6c 69 63 69 74 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | ">@canImplicitCast</a></li>..... |
| 2700 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6c 7a 22 3e 40 63 6c 7a 3c | ........<li><a.href="#clz">@clz< |
| 2720 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | /a></li>.............<li><a.href |
| 2740 | 3d 22 23 63 6d 70 78 63 68 67 22 3e 40 63 6d 70 78 63 68 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | ="#cmpxchg">@cmpxchg</a></li>... |
| 2760 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 45 | ..........<li><a.href="#compileE |
| 2780 | 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | rror">@compileError</a></li>.... |
| 27a0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 69 6c 65 4c 6f | .........<li><a.href="#compileLo |
| 27c0 | 67 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | g">@compileLog</a></li>......... |
| 27e0 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 74 7a 22 3e 40 63 74 7a 3c 2f 61 3e 3c | ....<li><a.href="#ctz">@ctz</a>< |
| 2800 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 | /li>.............<li><a.href="#d |
| 2820 | 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | ivExact">@divExact</a></li>..... |
| 2840 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 46 6c 6f 6f 72 22 3e | ........<li><a.href="#divFloor"> |
| 2860 | 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | @divFloor</a></li>.............< |
| 2880 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 | li><a.href="#divTrunc">@divTrunc |
| 28a0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | </a></li>.............<li><a.hre |
| 28c0 | 66 3d 22 23 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 61 3e 3c 2f 6c | f="#embedFile">@embedFile</a></l |
| 28e0 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 78 70 | i>.............<li><a.href="#exp |
| 2900 | 6f 72 74 22 3e 40 65 78 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | ort">@export</a></li>........... |
| 2920 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 61 67 4e 61 6d 65 22 3e 40 74 61 67 4e 61 6d | ..<li><a.href="#tagName">@tagNam |
| 2940 | 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | e</a></li>.............<li><a.hr |
| 2960 | 65 66 3d 22 23 54 61 67 54 79 70 65 22 3e 40 54 61 67 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ef="#TagType">@TagType</a></li>. |
| 2980 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 4e | ............<li><a.href="#errorN |
| 29a0 | 61 6d 65 22 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | ame">@errorName</a></li>........ |
| 29c0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 72 72 6f 72 52 65 74 75 72 6e 54 72 | .....<li><a.href="#errorReturnTr |
| 29e0 | 61 63 65 22 3e 40 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ace">@errorReturnTrace</a></li>. |
| 2a00 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 65 6e 63 65 22 | ............<li><a.href="#fence" |
| 2a20 | 3e 40 66 65 6e 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | >@fence</a></li>.............<li |
| 2a40 | 3e 3c 61 20 68 72 65 66 3d 22 23 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 6c | ><a.href="#fieldParentPtr">@fiel |
| 2a60 | 64 50 61 72 65 6e 74 50 74 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | dParentPtr</a></li>............. |
| 2a80 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 72 61 6d 65 41 64 64 72 65 73 73 22 3e 40 66 72 61 | <li><a.href="#frameAddress">@fra |
| 2aa0 | 6d 65 41 64 64 72 65 73 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | meAddress</a></li>.............< |
| 2ac0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f 61 3e | li><a.href="#import">@import</a> |
| 2ae0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </li>.............<li><a.href="# |
| 2b00 | 69 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e | inlineCall">@inlineCall</a></li> |
| 2b20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f | .............<li><a.href="#intTo |
| 2b40 | 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | Ptr">@intToPtr</a></li>......... |
| 2b60 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 54 79 70 65 22 3e 40 49 6e 74 54 | ....<li><a.href="#IntType">@IntT |
| 2b80 | 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | ype</a></li>.............<li><a. |
| 2ba0 | 68 72 65 66 3d 22 23 6d 61 78 56 61 6c 75 65 22 3e 40 6d 61 78 56 61 6c 75 65 3c 2f 61 3e 3c 2f | href="#maxValue">@maxValue</a></ |
| 2bc0 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 | li>.............<li><a.href="#me |
| 2be0 | 6d 62 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e | mberCount">@memberCount</a></li> |
| 2c00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 | .............<li><a.href="#membe |
| 2c20 | 72 4e 61 6d 65 22 3e 40 6d 65 6d 62 65 72 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | rName">@memberName</a></li>..... |
| 2c40 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 72 54 79 70 65 | ........<li><a.href="#memberType |
| 2c60 | 22 3e 40 6d 65 6d 62 65 72 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ">@memberType</a></li>.......... |
| 2c80 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 6d 63 70 79 22 3e 40 6d 65 6d 63 70 79 | ...<li><a.href="#memcpy">@memcpy |
| 2ca0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | </a></li>.............<li><a.hre |
| 2cc0 | 66 3d 22 23 6d 65 6d 73 65 74 22 3e 40 6d 65 6d 73 65 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | f="#memset">@memset</a></li>.... |
| 2ce0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 69 6e 56 61 6c 75 65 22 | .........<li><a.href="#minValue" |
| 2d00 | 3e 40 6d 69 6e 56 61 6c 75 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | >@minValue</a></li>............. |
| 2d20 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 61 3e 3c 2f 6c 69 3e | <li><a.href="#mod">@mod</a></li> |
| 2d40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 75 6c 57 69 | .............<li><a.href="#mulWi |
| 2d60 | 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e | thOverflow">@mulWithOverflow</a> |
| 2d80 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </li>.............<li><a.href="# |
| 2da0 | 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c | noInlineCall">@noInlineCall</a>< |
| 2dc0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6f | /li>.............<li><a.href="#o |
| 2de0 | 66 66 73 65 74 4f 66 22 3e 40 6f 66 66 73 65 74 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | ffsetOf">@offsetOf</a></li>..... |
| 2e00 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4f 70 61 71 75 65 54 79 70 65 | ........<li><a.href="#OpaqueType |
| 2e20 | 22 3e 40 4f 70 61 71 75 65 54 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ">@OpaqueType</a></li>.......... |
| 2e40 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 61 6e 69 63 22 3e 40 70 61 6e 69 63 3c 2f | ...<li><a.href="#panic">@panic</ |
| 2e60 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | a></li>.............<li><a.href= |
| 2e80 | 22 23 70 74 72 43 61 73 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | "#ptrCast">@ptrCast</a></li>.... |
| 2ea0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 70 74 72 54 6f 49 6e 74 22 | .........<li><a.href="#ptrToInt" |
| 2ec0 | 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | >@ptrToInt</a></li>............. |
| 2ee0 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 65 6d 22 3e 40 72 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e | <li><a.href="#rem">@rem</a></li> |
| 2f00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 65 74 75 72 | .............<li><a.href="#retur |
| 2f20 | 6e 41 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 73 73 3c 2f 61 3e 3c 2f 6c 69 | nAddress">@returnAddress</a></li |
| 2f40 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 74 41 | >.............<li><a.href="#setA |
| 2f60 | 6c 69 67 6e 53 74 61 63 6b 22 3e 40 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 3c 2f 61 3e 3c 2f 6c | lignStack">@setAlignStack</a></l |
| 2f80 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 74 | i>.............<li><a.href="#set |
| 2fa0 | 43 6f 6c 64 22 3e 40 73 65 74 43 6f 6c 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | Cold">@setCold</a></li>......... |
| 2fc0 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 | ....<li><a.href="#setRuntimeSafe |
| 2fe0 | 74 79 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | ty">@setRuntimeSafety</a></li>.. |
| 3000 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 74 45 76 61 6c | ...........<li><a.href="#setEval |
| 3020 | 42 72 61 6e 63 68 51 75 6f 74 61 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 | BranchQuota">@setEvalBranchQuota |
| 3040 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | </a></li>.............<li><a.hre |
| 3060 | 66 3d 22 23 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c | f="#setFloatMode">@setFloatMode< |
| 3080 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | /a></li>.............<li><a.href |
| 30a0 | 3d 22 23 73 65 74 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 22 3e 40 73 65 74 47 6c 6f 62 61 6c 4c | ="#setGlobalLinkage">@setGlobalL |
| 30c0 | 69 6e 6b 61 67 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | inkage</a></li>.............<li> |
| 30e0 | 3c 61 20 68 72 65 66 3d 22 23 73 65 74 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 22 3e 40 73 65 74 | <a.href="#setGlobalSection">@set |
| 3100 | 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | GlobalSection</a></li>.......... |
| 3120 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 | ...<li><a.href="#shlExact">@shlE |
| 3140 | 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | xact</a></li>.............<li><a |
| 3160 | 20 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 | .href="#shlWithOverflow">@shlWit |
| 3180 | 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | hOverflow</a></li>.............< |
| 31a0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 | li><a.href="#shrExact">@shrExact |
| 31c0 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | </a></li>.............<li><a.hre |
| 31e0 | 66 3d 22 23 73 69 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | f="#sizeOf">@sizeOf</a></li>.... |
| 3200 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 75 62 57 69 74 68 4f 76 | .........<li><a.href="#subWithOv |
| 3220 | 65 72 66 6c 6f 77 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 | erflow">@subWithOverflow</a></li |
| 3240 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 72 75 6e | >.............<li><a.href="#trun |
| 3260 | 63 61 74 65 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | cate">@truncate</a></li>........ |
| 3280 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 79 70 65 49 64 22 3e 40 74 79 70 65 | .....<li><a.href="#typeId">@type |
| 32a0 | 49 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | Id</a></li>.............<li><a.h |
| 32c0 | 72 65 66 3d 22 23 74 79 70 65 4e 61 6d 65 22 3e 40 74 79 70 65 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c | ref="#typeName">@typeName</a></l |
| 32e0 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 79 70 | i>.............<li><a.href="#typ |
| 3300 | 65 4f 66 22 3e 40 74 79 70 65 4f 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f | eOf">@typeOf</a></li>.........</ |
| 3320 | 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 | ul></li>.........<li><a.href="#B |
| 3340 | 75 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c 2f 61 3e 0a 20 20 20 20 20 20 | uild-Mode">Build.Mode</a>....... |
| 3360 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | ..<ul>.............<li><a.href=" |
| 3380 | 23 44 65 62 75 67 22 3e 44 65 62 75 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | #Debug">Debug</a></li>.......... |
| 33a0 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 46 61 73 74 22 3e 52 65 | ...<li><a.href="#ReleaseFast">Re |
| 33c0 | 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | leaseFast</a></li>.............< |
| 33e0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 61 66 65 22 3e 52 65 6c 65 61 73 | li><a.href="#ReleaseSafe">Releas |
| 3400 | 65 53 61 66 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 | eSafe</a></li>.........</ul></li |
| 3420 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 65 66 69 6e 65 | >.........<li><a.href="#Undefine |
| 3440 | 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f | d-Behavior">Undefined.Behavior</ |
| 3460 | 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | a>.........<ul>.............<li> |
| 3480 | 3c 61 20 68 72 65 66 3d 22 23 52 65 61 63 68 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 6c 65 2d 43 | <a.href="#Reaching-Unreachable-C |
| 34a0 | 6f 64 65 22 3e 52 65 61 63 68 69 6e 67 20 55 6e 72 65 61 63 68 61 62 6c 65 20 43 6f 64 65 3c 2f | ode">Reaching.Unreachable.Code</ |
| 34c0 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | a></li>.............<li><a.href= |
| 34e0 | 22 23 49 6e 64 65 78 2d 6f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 3e 49 6e 64 65 78 20 6f 75 74 | "#Index-out-of-Bounds">Index.out |
| 3500 | 20 6f 66 20 42 6f 75 6e 64 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .of.Bounds</a></li>............. |
| 3520 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 61 73 74 2d 4e 65 67 61 74 69 76 65 2d 4e 75 6d 62 | <li><a.href="#Cast-Negative-Numb |
| 3540 | 65 72 2d 74 6f 2d 55 6e 73 69 67 6e 65 64 2d 49 6e 74 65 67 65 72 22 3e 43 61 73 74 20 4e 65 67 | er-to-Unsigned-Integer">Cast.Neg |
| 3560 | 61 74 69 76 65 20 4e 75 6d 62 65 72 20 74 6f 20 55 6e 73 69 67 6e 65 64 20 49 6e 74 65 67 65 72 | ative.Number.to.Unsigned.Integer |
| 3580 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | </a></li>.............<li><a.hre |
| 35a0 | 66 3d 22 23 43 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d 44 61 74 61 22 3e 43 61 73 74 20 54 72 | f="#Cast-Truncates-Data">Cast.Tr |
| 35c0 | 75 6e 63 61 74 65 73 20 44 61 74 61 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | uncates.Data</a></li>........... |
| 35e0 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 2d 4f 76 65 72 66 6c 6f 77 | ..<li><a.href="#Integer-Overflow |
| 3600 | 22 3e 49 6e 74 65 67 65 72 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 20 | ">Integer.Overflow</a>.......... |
| 3620 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | ...<ul>.................<li><a.h |
| 3640 | 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 44 65 66 61 75 6c | ref="#Default-Operations">Defaul |
| 3660 | 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | t.Operations</a></li>........... |
| 3680 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 74 61 6e 64 61 72 64 2d 4c 69 62 | ......<li><a.href="#Standard-Lib |
| 36a0 | 72 61 72 79 2d 4d 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 53 74 61 6e 64 61 72 64 20 4c 69 | rary-Math-Functions">Standard.Li |
| 36c0 | 62 72 61 72 79 20 4d 61 74 68 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | brary.Math.Functions</a></li>... |
| 36e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 75 69 6c | ..............<li><a.href="#Buil |
| 3700 | 74 69 6e 2d 4f 76 65 72 66 6c 6f 77 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 | tin-Overflow-Functions">Builtin. |
| 3720 | 4f 76 65 72 66 6c 6f 77 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | Overflow.Functions</a></li>..... |
| 3740 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 57 72 61 70 70 69 | ............<li><a.href="#Wrappi |
| 3760 | 6e 67 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 57 72 61 70 70 69 6e 67 20 4f 70 65 72 61 74 69 6f | ng-Operations">Wrapping.Operatio |
| 3780 | 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c | ns</a></li>.............</ul></l |
| 37a0 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 78 61 | i>.............<li><a.href="#Exa |
| 37c0 | 63 74 2d 4c 65 66 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 4c 65 | ct-Left-Shift-Overflow">Exact.Le |
| 37e0 | 66 74 20 53 68 69 66 74 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ft.Shift.Overflow</a></li>...... |
| 3800 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 78 61 63 74 2d 52 69 67 68 74 | .......<li><a.href="#Exact-Right |
| 3820 | 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 52 69 67 68 74 20 53 68 69 | -Shift-Overflow">Exact.Right.Shi |
| 3840 | 66 74 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | ft.Overflow</a></li>............ |
| 3860 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 | .<li><a.href="#Division-by-Zero" |
| 3880 | 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | >Division.by.Zero</a></li>...... |
| 38a0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 65 6d 61 69 6e 64 65 72 2d 44 | .......<li><a.href="#Remainder-D |
| 38c0 | 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 52 65 6d 61 69 6e 64 65 72 20 44 69 76 69 73 | ivision-by-Zero">Remainder.Divis |
| 38e0 | 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | ion.by.Zero</a></li>............ |
| 3900 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 78 61 63 74 2d 44 69 76 69 73 69 6f 6e 2d 52 65 | .<li><a.href="#Exact-Division-Re |
| 3920 | 6d 61 69 6e 64 65 72 22 3e 45 78 61 63 74 20 44 69 76 69 73 69 6f 6e 20 52 65 6d 61 69 6e 64 65 | mainder">Exact.Division.Remainde |
| 3940 | 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | r</a></li>.............<li><a.hr |
| 3960 | 65 66 3d 22 23 53 6c 69 63 65 2d 57 69 64 65 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 53 6c 69 63 | ef="#Slice-Widen-Remainder">Slic |
| 3980 | 65 20 57 69 64 65 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | e.Widen.Remainder</a></li>...... |
| 39a0 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 74 74 65 6d 70 74 2d 74 6f 2d | .......<li><a.href="#Attempt-to- |
| 39c0 | 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 4e | Unwrap-Null">Attempt.to.Unwrap.N |
| 39e0 | 75 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 | ull</a></li>.............<li><a. |
| 3a00 | 68 72 65 66 3d 22 23 41 74 74 65 6d 70 74 2d 74 6f 2d 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 3e | href="#Attempt-to-Unwrap-Error"> |
| 3a20 | 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e | Attempt.to.Unwrap.Error</a></li> |
| 3a40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 76 61 6c | .............<li><a.href="#Inval |
| 3a60 | 69 64 2d 45 72 72 6f 72 2d 43 6f 64 65 22 3e 49 6e 76 61 6c 69 64 20 45 72 72 6f 72 20 43 6f 64 | id-Error-Code">Invalid.Error.Cod |
| 3a80 | 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | e</a></li>.............<li><a.hr |
| 3aa0 | 65 66 3d 22 23 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e 49 6e 76 61 6c 69 64 20 | ef="#Invalid-Enum-Cast">Invalid. |
| 3ac0 | 45 6e 75 6d 20 43 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | Enum.Cast</a></li>.............< |
| 3ae0 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 | li><a.href="#Incorrect-Pointer-A |
| 3b00 | 6c 69 67 6e 6d 65 6e 74 22 3e 49 6e 63 6f 72 72 65 63 74 20 50 6f 69 6e 74 65 72 20 41 6c 69 67 | lignment">Incorrect.Pointer.Alig |
| 3b20 | 6e 6d 65 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | nment</a></li>.............<li>< |
| 3b40 | 61 20 68 72 65 66 3d 22 23 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 | a.href="#Wrong-Union-Field-Acces |
| 3b60 | 73 22 3e 57 72 6f 6e 67 20 55 6e 69 6f 6e 20 46 69 65 6c 64 20 41 63 63 65 73 73 3c 2f 61 3e 3c | s">Wrong.Union.Field.Access</a>< |
| 3b80 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | /li>.........</ul></li>......... |
| 3ba0 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f 61 3e | <li><a.href="#Memory">Memory</a> |
| 3bc0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 | </li>.........<li><a.href="#Comp |
| 3be0 | 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 | ile-Variables">Compile.Variables |
| 3c00 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | </a></li>.........<li><a.href="# |
| 3c20 | 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 | Root-Source-File">Root.Source.Fi |
| 3c40 | 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | le</a></li>.........<li><a.href= |
| 3c60 | 22 23 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | "#Zig-Test">Zig.Test</a></li>... |
| 3c80 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 5a 69 67 2d 42 75 69 6c 64 2d 53 79 | ......<li><a.href="#Zig-Build-Sy |
| 3ca0 | 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a | stem">Zig.Build.System</a></li>. |
| 3cc0 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 22 3e 43 3c 2f 61 3e 0a 20 | ........<li><a.href="#C">C</a>.. |
| 3ce0 | 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | .......<ul>.............<li><a.h |
| 3d00 | 72 65 66 3d 22 23 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 73 22 3e 43 20 54 79 70 65 20 | ref="#C-Type-Primitives">C.Type. |
| 3d20 | 50 72 69 6d 69 74 69 76 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | Primitives</a></li>............. |
| 3d40 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 | <li><a.href="#C-String-Literals" |
| 3d60 | 3e 43 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | >C.String.Literals</a></li>..... |
| 3d80 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6f 72 74 2d 66 72 6f | ........<li><a.href="#Import-fro |
| 3da0 | 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 | m-C-Header-File">Import.from.C.H |
| 3dc0 | 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | eader.File</a></li>............. |
| 3de0 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4d 69 78 69 6e 67 2d 4f 62 6a 65 63 74 2d 46 69 6c 65 | <li><a.href="#Mixing-Object-File |
| 3e00 | 73 22 3e 4d 69 78 69 6e 67 20 4f 62 6a 65 63 74 20 46 69 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | s">Mixing.Object.Files</a></li>. |
| 3e20 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 65 72 6d 69 6e | ............<li><a.href="#Termin |
| 3e40 | 61 6c 22 3e 54 65 72 6d 69 6e 61 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 2f | al">Terminal</a></li>.........</ |
| 3e60 | 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 | ul></li>.........<li><a.href="#T |
| 3e80 | 61 72 67 65 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | argets">Targets</a></li>........ |
| 3ea0 | 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 74 79 6c 65 2d 47 75 69 64 65 22 3e 53 74 79 6c | .<li><a.href="#Style-Guide">Styl |
| 3ec0 | 65 20 47 75 69 64 65 3c 2f 61 3e 0a 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 | e.Guide</a>.........<ul>........ |
| 3ee0 | 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 57 68 69 74 65 73 70 61 63 65 22 3e 57 | .....<li><a.href="#Whitespace">W |
| 3f00 | 68 69 74 65 73 70 61 63 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | hitespace</a></li>.............< |
| 3f20 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4e 61 6d 65 73 22 3e 4e 61 6d 65 73 3c 2f 61 3e 3c 2f 6c | li><a.href="#Names">Names</a></l |
| 3f40 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 78 61 | i>.............<li><a.href="#Exa |
| 3f60 | 6d 70 6c 65 73 22 3e 45 78 61 6d 70 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | mples">Examples</a></li>........ |
| 3f80 | 20 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | .</ul></li>.........<li><a.href= |
| 3fa0 | 22 23 53 6f 75 72 63 65 2d 45 6e 63 6f 64 69 6e 67 22 3e 53 6f 75 72 63 65 20 45 6e 63 6f 64 69 | "#Source-Encoding">Source.Encodi |
| 3fc0 | 6e 67 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | ng</a></li>.........<li><a.href= |
| 3fe0 | 22 23 47 72 61 6d 6d 61 72 22 3e 47 72 61 6d 6d 61 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | "#Grammar">Grammar</a></li>..... |
| 4000 | 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 5a 65 6e 22 3e 5a 65 6e 3c 2f 61 3e 3c 2f | ....<li><a.href="#Zen">Zen</a></ |
| 4020 | 6c 69 3e 0a 20 20 20 20 3c 2f 75 6c 3e 0a 0a 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 3c 64 | li>.....</ul>......</div>.....<d |
| 4040 | 69 76 20 69 64 3d 22 63 6f 6e 74 65 6e 74 73 22 3e 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 | iv.id="contents">.......<h1.id=" |
| 4060 | 49 6e 74 72 6f 64 75 63 74 69 6f 6e 22 3e 49 6e 74 72 6f 64 75 63 74 69 6f 6e 3c 2f 68 31 3e 0a | Introduction">Introduction</h1>. |
| 4080 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 69 73 20 61 6e 20 6f 70 65 6e 2d | .......<p>.......Zig.is.an.open- |
| 40a0 | 73 6f 75 72 63 65 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 20 64 65 73 69 | source.programming.language.desi |
| 40c0 | 67 6e 65 64 20 66 6f 72 20 3c 73 74 72 6f 6e 67 3e 72 6f 62 75 73 74 6e 65 73 73 3c 2f 73 74 72 | gned.for.<strong>robustness</str |
| 40e0 | 6f 6e 67 3e 2c 0a 20 20 20 20 20 20 3c 73 74 72 6f 6e 67 3e 6f 70 74 69 6d 61 6c 69 74 79 3c 2f | ong>,.......<strong>optimality</ |
| 4100 | 73 74 72 6f 6e 67 3e 2c 20 61 6e 64 20 3c 73 74 72 6f 6e 67 3e 63 6c 61 72 69 74 79 3c 2f 73 74 | strong>,.and.<strong>clarity</st |
| 4120 | 72 6f 6e 67 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | rong>........</p>.......<ul>.... |
| 4140 | 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e 52 6f 62 75 73 74 3c 2f 73 74 72 6f 6e 67 3e | .....<li><strong>Robust</strong> |
| 4160 | 20 2d 20 62 65 68 61 76 69 6f 72 20 69 73 20 63 6f 72 72 65 63 74 20 65 76 65 6e 20 66 6f 72 20 | .-.behavior.is.correct.even.for. |
| 4180 | 65 64 67 65 20 63 61 73 65 73 20 73 75 63 68 20 61 73 20 6f 75 74 20 6f 66 20 6d 65 6d 6f 72 79 | edge.cases.such.as.out.of.memory |
| 41a0 | 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e 4f 70 74 69 6d | .</li>.........<li><strong>Optim |
| 41c0 | 61 6c 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 77 72 69 74 65 20 70 72 6f 67 72 61 6d 73 20 74 68 65 | al</strong>.-.write.programs.the |
| 41e0 | 20 62 65 73 74 20 77 61 79 20 74 68 65 79 20 63 61 6e 20 62 65 68 61 76 65 20 61 6e 64 20 70 65 | .best.way.they.can.behave.and.pe |
| 4200 | 72 66 6f 72 6d 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 73 74 72 6f 6e 67 3e | rform.</li>.........<li><strong> |
| 4220 | 43 6c 65 61 72 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 70 72 65 63 69 73 65 6c 79 20 63 6f 6d 6d 75 | Clear</strong>.-.precisely.commu |
| 4240 | 6e 69 63 61 74 65 20 79 6f 75 72 20 69 6e 74 65 6e 74 20 74 6f 20 74 68 65 20 63 6f 6d 70 69 6c | nicate.your.intent.to.the.compil |
| 4260 | 65 72 20 61 6e 64 20 6f 74 68 65 72 20 70 72 6f 67 72 61 6d 6d 65 72 73 2e 20 54 68 65 20 6c 61 | er.and.other.programmers..The.la |
| 4280 | 6e 67 75 61 67 65 20 69 6d 70 6f 73 65 73 20 61 20 6c 6f 77 20 6f 76 65 72 68 65 61 64 20 74 6f | nguage.imposes.a.low.overhead.to |
| 42a0 | 20 72 65 61 64 69 6e 67 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | .reading.code.</li>.......</ul>. |
| 42c0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 66 74 65 6e 20 74 68 65 20 6d 6f 73 74 20 65 | ......<p>.......Often.the.most.e |
| 42e0 | 66 66 69 63 69 65 6e 74 20 77 61 79 20 74 6f 20 6c 65 61 72 6e 20 73 6f 6d 65 74 68 69 6e 67 20 | fficient.way.to.learn.something. |
| 4300 | 6e 65 77 20 69 73 20 74 6f 20 73 65 65 20 65 78 61 6d 70 6c 65 73 2c 20 73 6f 0a 20 20 20 20 20 | new.is.to.see.examples,.so...... |
| 4320 | 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 73 68 6f 77 73 20 68 6f 77 20 74 6f | .this.documentation.shows.how.to |
| 4340 | 20 75 73 65 20 65 61 63 68 20 6f 66 20 5a 69 67 27 73 20 66 65 61 74 75 72 65 73 2e 20 49 74 20 | .use.each.of.Zig's.features..It. |
| 4360 | 69 73 0a 20 20 20 20 20 20 61 6c 6c 20 6f 6e 20 6f 6e 65 20 70 61 67 65 20 73 6f 20 79 6f 75 20 | is.......all.on.one.page.so.you. |
| 4380 | 63 61 6e 20 73 65 61 72 63 68 20 77 69 74 68 20 79 6f 75 72 20 62 72 6f 77 73 65 72 27 73 20 73 | can.search.with.your.browser's.s |
| 43a0 | 65 61 72 63 68 20 74 6f 6f 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | earch.tool........</p>.......<p> |
| 43c0 | 0a 20 20 20 20 20 20 54 68 65 20 63 6f 64 65 20 73 61 6d 70 6c 65 73 20 69 6e 20 74 68 69 73 20 | .......The.code.samples.in.this. |
| 43e0 | 64 6f 63 75 6d 65 6e 74 20 61 72 65 20 63 6f 6d 70 69 6c 65 64 20 61 6e 64 20 74 65 73 74 65 64 | document.are.compiled.and.tested |
| 4400 | 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 6d 61 69 6e 20 74 65 73 74 20 73 75 69 74 65 20 | .as.part.of.the.main.test.suite. |
| 4420 | 6f 66 20 5a 69 67 2e 0a 20 20 20 20 20 20 54 68 69 73 20 48 54 4d 4c 20 64 6f 63 75 6d 65 6e 74 | of.Zig........This.HTML.document |
| 4440 | 20 64 65 70 65 6e 64 73 20 6f 6e 20 6e 6f 20 65 78 74 65 72 6e 61 6c 20 66 69 6c 65 73 2c 20 73 | .depends.on.no.external.files,.s |
| 4460 | 6f 20 79 6f 75 20 63 61 6e 20 75 73 65 20 69 74 20 6f 66 66 6c 69 6e 65 2e 0a 20 20 20 20 20 20 | o.you.can.use.it.offline........ |
| 4480 | 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 48 65 6c 6c 6f 2d | </p>..............<h1.id="Hello- |
| 44a0 | 57 6f 72 6c 64 22 3e 48 65 6c 6c 6f 20 57 6f 72 6c 64 3c 2f 68 31 3e 0a 0a 0a 20 20 20 20 20 20 | World">Hello.World</h1>......... |
| 44c0 | 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 68 65 6c 6c 6f 2e 7a 69 67 3c 2f 70 3e 3c 70 72 | <p.class="file">hello.zig</p><pr |
| 44e0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 73 74 64 20 3d 20 | e><code.class="zig">const.std.=. |
| 4500 | 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 3b 0a 0a 70 75 62 20 66 | @import("std");..pub.f |
| 4520 | 6e 20 6d 61 69 6e 28 29 20 21 76 6f 69 64 20 7b 0a 20 20 20 20 2f 2f 20 49 66 20 74 68 69 73 20 | n.main().!void.{.....//.If.this. |
| 4540 | 70 72 6f 67 72 61 6d 20 69 73 20 72 75 6e 20 77 69 74 68 6f 75 74 20 73 74 64 6f 75 74 20 61 74 | program.is.run.without.stdout.at |
| 4560 | 74 61 63 68 65 64 2c 20 65 78 69 74 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 2e 0a 20 20 20 20 | tached,.exit.with.an.error...... |
| 4580 | 76 61 72 20 73 74 64 6f 75 74 5f 66 69 6c 65 20 3d 20 74 72 79 20 73 74 64 2e 69 6f 2e 67 65 74 | var.stdout_file.=.try.std.io.get |
| 45a0 | 53 74 64 4f 75 74 28 29 3b 0a 20 20 20 20 2f 2f 20 49 66 20 74 68 69 73 20 70 72 6f 67 72 61 6d | StdOut();.....//.If.this.program |
| 45c0 | 20 65 6e 63 6f 75 6e 74 65 72 73 20 70 69 70 65 20 66 61 69 6c 75 72 65 20 77 68 65 6e 20 70 72 | .encounters.pipe.failure.when.pr |
| 45e0 | 69 6e 74 69 6e 67 20 74 6f 20 73 74 64 6f 75 74 2c 20 65 78 69 74 0a 20 20 20 20 2f 2f 20 77 69 | inting.to.stdout,.exit.....//.wi |
| 4600 | 74 68 20 61 6e 20 65 72 72 6f 72 2e 0a 20 20 20 20 74 72 79 20 73 74 64 6f 75 74 5f 66 69 6c 65 | th.an.error......try.stdout_file |
| 4620 | 2e 77 72 69 74 65 28 26 71 75 6f 74 3b 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 5c 6e 26 71 75 6f | .write("Hello,.world!\n&quo |
| 4640 | 74 3b 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | t;);.}</code></pre><pre><code.cl |
| 4660 | 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 68 65 6c 6c | ass="shell">$.zig.build-exe.hell |
| 4680 | 6f 2e 7a 69 67 0a 24 20 2e 2f 68 65 6c 6c 6f 0a 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 3c 2f | o.zig.$../hello.Hello,.world!.</ |
| 46a0 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 75 | code></pre>........<p>.......Usu |
| 46c0 | 61 6c 6c 79 20 79 6f 75 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 77 72 69 74 65 20 74 6f 20 | ally.you.don't.want.to.write.to. |
| 46e0 | 73 74 64 6f 75 74 2e 20 59 6f 75 20 77 61 6e 74 20 74 6f 20 77 72 69 74 65 20 74 6f 20 73 74 64 | stdout..You.want.to.write.to.std |
| 4700 | 65 72 72 2e 20 41 6e 64 20 79 6f 75 0a 20 20 20 20 20 20 64 6f 6e 27 74 20 63 61 72 65 20 69 66 | err..And.you.......don't.care.if |
| 4720 | 20 69 74 20 66 61 69 6c 73 2e 20 49 74 27 73 20 6d 6f 72 65 20 6c 69 6b 65 20 61 20 3c 65 6d 3e | .it.fails..It's.more.like.a.<em> |
| 4740 | 77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 3c 2f 65 6d 3e 20 74 68 61 74 20 79 6f 75 20 77 61 | warning.message</em>.that.you.wa |
| 4760 | 6e 74 0a 20 20 20 20 20 20 74 6f 20 65 6d 69 74 2e 20 46 6f 72 20 74 68 61 74 20 79 6f 75 20 63 | nt.......to.emit..For.that.you.c |
| 4780 | 61 6e 20 75 73 65 20 61 20 73 69 6d 70 6c 65 72 20 41 50 49 3a 0a 20 20 20 20 20 20 3c 2f 70 3e | an.use.a.simpler.API:.......</p> |
| 47a0 | 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 68 65 6c 6c 6f 2e 7a 69 67 | .......<p.class="file">hello.zig |
| 47c0 | 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 | </p><pre><code.class="zig">const |
| 47e0 | 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 | .warn.=.@import("std") |
| 4800 | 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 76 6f 69 64 | .debug.warn;..pub.fn.main().void |
| 4820 | 20 7b 0a 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 5c | .{.....warn("Hello,.world!\ |
| 4840 | 6e 26 71 75 6f 74 3b 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f | n");.}</code></pre><pre><co |
| 4860 | 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 | de.class="shell">$.zig.build-exe |
| 4880 | 20 68 65 6c 6c 6f 2e 7a 69 67 0a 24 20 2e 2f 68 65 6c 6c 6f 0a 48 65 6c 6c 6f 2c 20 77 6f 72 6c | .hello.zig.$../hello.Hello,.worl |
| 48a0 | 64 21 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | d!.</code></pre>........<p>..... |
| 48c0 | 20 20 4e 6f 74 65 20 74 68 61 74 20 77 65 20 61 6c 73 6f 20 6c 65 66 74 20 6f 66 66 20 74 68 65 | ..Note.that.we.also.left.off.the |
| 48e0 | 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 21 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d | .<code.class="zig">!</code>.from |
| 4900 | 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 | .the.return.type........In.Zig,. |
| 4920 | 69 66 20 79 6f 75 72 20 6d 61 69 6e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6e 6f 74 20 66 61 69 | if.your.main.function.cannot.fai |
| 4940 | 6c 2c 20 79 6f 75 20 6d 75 73 74 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d | l,.you.must.use.the.<code.class= |
| 4960 | 22 7a 69 67 22 3e 76 6f 69 64 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 20 74 79 70 65 2e 0a 20 | "zig">void</code>.return.type... |
| 4980 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e | .....</p>.......<p>See.also:</p> |
| 49a0 | 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 | <ul>.<li><a.href="#Values">Value |
| 49c0 | 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 | s</a></li>.<li><a.href="#import" |
| 49e0 | 3e 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | >@import</a></li>.<li><a.href="# |
| 4a00 | 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 | Errors">Errors</a></li>.<li><a.h |
| 4a20 | 72 65 66 3d 22 23 52 6f 6f 74 2d 53 6f 75 72 63 65 2d 46 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 | ref="#Root-Source-File">Root.Sou |
| 4a40 | 72 63 65 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a | rce.File</a></li>.</ul>......... |
| 4a60 | 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 56 61 6c 75 65 73 22 3e 56 61 6c 75 65 73 3c 2f 68 31 | ......<h1.id="Values">Values</h1 |
| 4a80 | 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 76 61 6c 75 65 73 2e | >........<p.class="file">values. |
| 4aa0 | 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f | zig</p><pre><code.class="zig">co |
| 4ac0 | 6e 73 74 20 73 74 64 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 | nst.std.=.@import("std" |
| 4ae0 | 3b 29 3b 0a 63 6f 6e 73 74 20 77 61 72 6e 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 77 61 72 6e 3b | ;);.const.warn.=.std.debug.warn; |
| 4b00 | 0a 63 6f 6e 73 74 20 6f 73 20 3d 20 73 74 64 2e 6f 73 3b 0a 63 6f 6e 73 74 20 61 73 73 65 72 74 | .const.os.=.std.os;.const.assert |
| 4b20 | 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 | .=.std.debug.assert;..pub.fn.mai |
| 4b40 | 6e 28 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 2f 2f 20 69 6e 74 65 67 65 72 73 0a 20 20 20 20 63 | n().void.{.....//.integers.....c |
| 4b60 | 6f 6e 73 74 20 6f 6e 65 5f 70 6c 75 73 5f 6f 6e 65 3a 20 69 33 32 20 3d 20 31 20 2b 20 31 3b 0a | onst.one_plus_one:.i32.=.1.+.1;. |
| 4b80 | 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 31 20 2b 20 31 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 | ....warn("1.+.1.=.{}\n" |
| 4ba0 | 3b 2c 20 6f 6e 65 5f 70 6c 75 73 5f 6f 6e 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 66 6c 6f 61 74 73 | ;,.one_plus_one);......//.floats |
| 4bc0 | 0a 20 20 20 20 63 6f 6e 73 74 20 73 65 76 65 6e 5f 64 69 76 5f 74 68 72 65 65 3a 20 66 33 32 20 | .....const.seven_div_three:.f32. |
| 4be0 | 3d 20 37 2e 30 20 2f 20 33 2e 30 3b 0a 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 37 2e 30 20 | =.7.0./.3.0;.....warn("7.0. |
| 4c00 | 2f 20 33 2e 30 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 20 73 65 76 65 6e 5f 64 69 76 5f 74 68 | /.3.0.=.{}\n",.seven_div_th |
| 4c20 | 72 65 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 62 6f 6f 6c 65 61 6e 0a 20 20 20 20 77 61 72 6e 28 26 | ree);......//.boolean.....warn(& |
| 4c40 | 71 75 6f 74 3b 7b 7d 5c 6e 7b 7d 5c 6e 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 0a 20 20 20 20 20 20 20 | quot;{}\n{}\n{}\n",........ |
| 4c60 | 20 74 72 75 65 20 61 6e 64 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 74 72 75 65 20 6f 72 | .true.and.false,.........true.or |
| 4c80 | 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 21 74 72 75 65 29 3b 0a 20 20 20 20 0a 20 20 20 | .false,.........!true);......... |
| 4ca0 | 20 2f 2f 20 6e 75 6c 6c 61 62 6c 65 0a 20 20 20 20 76 61 72 20 6e 75 6c 6c 61 62 6c 65 5f 76 61 | .//.nullable.....var.nullable_va |
| 4cc0 | 6c 75 65 3a 20 3f 5b 5d 63 6f 6e 73 74 20 75 38 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 61 73 73 | lue:.?[]const.u8.=.null;.....ass |
| 4ce0 | 65 72 74 28 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c 75 65 20 3d 3d 20 6e 75 6c 6c 29 3b 0a 0a 20 20 | ert(nullable_value.==.null);.... |
| 4d00 | 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 5c 6e 6e 75 6c 6c 61 62 6c 65 20 31 5c 6e 74 79 70 65 3a | ..warn("\nnullable.1\ntype: |
| 4d20 | 20 7b 7d 5c 6e 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 0a 20 20 20 20 20 20 20 20 | .{}\nvalue:.{}\n",......... |
| 4d40 | 40 74 79 70 65 4e 61 6d 65 28 40 74 79 70 65 4f 66 28 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c 75 65 | @typeName(@typeOf(nullable_value |
| 4d60 | 29 29 2c 20 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c 75 65 29 3b 0a 0a 20 20 20 20 6e 75 6c 6c 61 62 | )),.nullable_value);......nullab |
| 4d80 | 6c 65 5f 76 61 6c 75 65 20 3d 20 26 71 75 6f 74 3b 68 69 26 71 75 6f 74 3b 3b 0a 20 20 20 20 61 | le_value.=."hi";.....a |
| 4da0 | 73 73 65 72 74 28 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c 75 65 20 21 3d 20 6e 75 6c 6c 29 3b 0a 0a | ssert(nullable_value.!=.null);.. |
| 4dc0 | 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 5c 6e 6e 75 6c 6c 61 62 6c 65 20 32 5c 6e 74 79 70 | ....warn("\nnullable.2\ntyp |
| 4de0 | 65 3a 20 7b 7d 5c 6e 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 0a 20 20 20 20 20 20 | e:.{}\nvalue:.{}\n",....... |
| 4e00 | 20 20 40 74 79 70 65 4e 61 6d 65 28 40 74 79 70 65 4f 66 28 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c | ..@typeName(@typeOf(nullable_val |
| 4e20 | 75 65 29 29 2c 20 6e 75 6c 6c 61 62 6c 65 5f 76 61 6c 75 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 65 | ue)),.nullable_value);......//.e |
| 4e40 | 72 72 6f 72 20 75 6e 69 6f 6e 0a 20 20 20 20 76 61 72 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 | rror.union.....var.number_or_err |
| 4e60 | 6f 72 3a 20 65 72 72 6f 72 21 69 33 32 20 3d 20 65 72 72 6f 72 2e 41 72 67 4e 6f 74 46 6f 75 6e | or:.error!i32.=.error.ArgNotFoun |
| 4e80 | 64 3b 0a 0a 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 5c 6e 65 72 72 6f 72 20 75 6e 69 6f 6e | d;......warn("\nerror.union |
| 4ea0 | 20 31 5c 6e 74 79 70 65 3a 20 7b 7d 5c 6e 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c | .1\ntype:.{}\nvalue:.{}\n", |
| 4ec0 | 0a 20 20 20 20 20 20 20 20 40 74 79 70 65 4e 61 6d 65 28 40 74 79 70 65 4f 66 28 6e 75 6d 62 65 | .........@typeName(@typeOf(numbe |
| 4ee0 | 72 5f 6f 72 5f 65 72 72 6f 72 29 29 2c 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 29 3b 0a | r_or_error)),.number_or_error);. |
| 4f00 | 20 0a 20 20 20 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 20 3d 20 31 32 33 34 3b 0a 0a 20 | ......number_or_error.=.1234;... |
| 4f20 | 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 5c 6e 65 72 72 6f 72 20 75 6e 69 6f 6e 20 32 5c 6e 74 | ...warn("\nerror.union.2\nt |
| 4f40 | 79 70 65 3a 20 7b 7d 5c 6e 76 61 6c 75 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 0a 20 20 20 20 | ype:.{}\nvalue:.{}\n",..... |
| 4f60 | 20 20 20 20 40 74 79 70 65 4e 61 6d 65 28 40 74 79 70 65 4f 66 28 6e 75 6d 62 65 72 5f 6f 72 5f | ....@typeName(@typeOf(number_or_ |
| 4f80 | 65 72 72 6f 72 29 29 2c 20 6e 75 6d 62 65 72 5f 6f 72 5f 65 72 72 6f 72 29 3b 0a 7d 3c 2f 63 6f | error)),.number_or_error);.}</co |
| 4fa0 | 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c | de></pre><pre><code.class="shell |
| 4fc0 | 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 76 61 6c 75 65 73 2e 7a 69 67 0a 24 20 2e | ">$.zig.build-exe.values.zig.$.. |
| 4fe0 | 2f 76 61 6c 75 65 73 0a 31 20 2b 20 31 20 3d 20 32 0a 37 2e 30 20 2f 20 33 2e 30 20 3d 20 32 2e | /values.1.+.1.=.2.7.0./.3.0.=.2. |
| 5000 | 33 33 33 33 33 33 32 35 0a 66 61 6c 73 65 0a 74 72 75 65 0a 66 61 6c 73 65 0a 0a 6e 75 6c 6c 61 | 33333325.false.true.false..nulla |
| 5020 | 62 6c 65 20 31 0a 74 79 70 65 3a 20 3f 5b 5d 63 6f 6e 73 74 20 75 38 0a 76 61 6c 75 65 3a 20 6e | ble.1.type:.?[]const.u8.value:.n |
| 5040 | 75 6c 6c 0a 0a 6e 75 6c 6c 61 62 6c 65 20 32 0a 74 79 70 65 3a 20 3f 5b 5d 63 6f 6e 73 74 20 75 | ull..nullable.2.type:.?[]const.u |
| 5060 | 38 0a 76 61 6c 75 65 3a 20 68 69 0a 0a 65 72 72 6f 72 20 75 6e 69 6f 6e 20 31 0a 74 79 70 65 3a | 8.value:.hi..error.union.1.type: |
| 5080 | 20 65 72 72 6f 72 21 69 33 32 0a 76 61 6c 75 65 3a 20 65 72 72 6f 72 2e 41 72 67 4e 6f 74 46 6f | .error!i32.value:.error.ArgNotFo |
| 50a0 | 75 6e 64 0a 0a 65 72 72 6f 72 20 75 6e 69 6f 6e 20 32 0a 74 79 70 65 3a 20 65 72 72 6f 72 21 69 | und..error.union.2.type:.error!i |
| 50c0 | 33 32 0a 76 61 6c 75 65 3a 20 31 32 33 34 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 | 32.value:.1234.</code></pre>.... |
| 50e0 | 20 20 20 20 3c 68 32 20 69 64 3d 22 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 50 72 69 | ....<h2.id="Primitive-Types">Pri |
| 5100 | 6d 69 74 69 76 65 20 54 79 70 65 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c | mitive.Types</h2>........<div.cl |
| 5120 | 61 73 73 3d 22 74 61 62 6c 65 2d 77 72 61 70 70 65 72 22 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c | ass="table-wrapper">.......<tabl |
| 5140 | 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 | e>.........<tr>...........<th>.. |
| 5160 | 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a | ...........Name...........</th>. |
| 5180 | 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 43 20 45 71 75 | ..........<th>.............C.Equ |
| 51a0 | 69 76 61 6c 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 | ivalent...........</th>......... |
| 51c0 | 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 20 | ..<th>.............Description.. |
| 51e0 | 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 | .........</th>.........</tr>.... |
| 5200 | 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 32 | .....<tr>...........<td><code>i2 |
| 5220 | 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | </code></td>...........<td><code |
| 5240 | 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | >(none)</code></td>...........<t |
| 5260 | 64 3e 73 69 67 6e 65 64 20 32 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 | d>signed.2-bit.integer</td>..... |
| 5280 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| 52a0 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 32 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | .<td><code>u2</code></td>....... |
| 52c0 | 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ....<td><code>(none)</code></td> |
| 52e0 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 32 2d 62 69 74 20 69 6e | ...........<td>unsigned.2-bit.in |
| 5300 | 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 | teger</td>.........</tr>........ |
| 5320 | 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 33 3c 2f 63 6f | .<tr>...........<td><code>i3</co |
| 5340 | 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f | de></td>...........<td><code>(no |
| 5360 | 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 | ne)</code></td>...........<td>si |
| 5380 | 67 6e 65 64 20 33 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | gned.3-bit.integer</td>......... |
| 53a0 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 53c0 | 3e 3c 63 6f 64 65 3e 75 33 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | ><code>u3</code></td>........... |
| 53e0 | 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | <td><code>(none)</code></td>.... |
| 5400 | 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 33 2d 62 69 74 20 69 6e 74 65 67 65 | .......<td>unsigned.3-bit.intege |
| 5420 | 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 | r</td>.........</tr>.........<tr |
| 5440 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 34 3c 2f 63 6f 64 65 3e 3c | >...........<td><code>i4</code>< |
| 5460 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c | /td>...........<td><code>(none)< |
| 5480 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 | /code></td>...........<td>signed |
| 54a0 | 20 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 | .4-bit.integer</td>.........</tr |
| 54c0 | 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | >.........<tr>...........<td><co |
| 54e0 | 64 65 3e 75 34 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | de>u4</code></td>...........<td> |
| 5500 | 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | <code>(none)</code></td>........ |
| 5520 | 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 | ...<td>unsigned.4-bit.integer</t |
| 5540 | 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 | d>.........</tr>.........<tr>... |
| 5560 | 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 35 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ........<td><code>i5</code></td> |
| 5580 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 | ...........<td><code>(none)</cod |
| 55a0 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 35 2d 62 | e></td>...........<td>signed.5-b |
| 55c0 | 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | it.integer</td>.........</tr>... |
| 55e0 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 | ......<tr>...........<td><code>u |
| 5600 | 35 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 | 5</code></td>...........<td><cod |
| 5620 | 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | e>(none)</code></td>...........< |
| 5640 | 74 64 3e 75 6e 73 69 67 6e 65 64 20 35 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 | td>unsigned.5-bit.integer</td>.. |
| 5660 | 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 | .......</tr>.........<tr>....... |
| 5680 | 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 36 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | ....<td><code>i6</code></td>.... |
| 56a0 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f | .......<td><code>(none)</code></ |
| 56c0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 36 2d 62 69 74 20 69 | td>...........<td>signed.6-bit.i |
| 56e0 | 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | nteger</td>.........</tr>....... |
| 5700 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 36 3c 2f 63 | ..<tr>...........<td><code>u6</c |
| 5720 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e | ode></td>...........<td><code>(n |
| 5740 | 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 | one)</code></td>...........<td>u |
| 5760 | 6e 73 69 67 6e 65 64 20 36 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 | nsigned.6-bit.integer</td>...... |
| 5780 | 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</tr>.........<tr>........... |
| 57a0 | 3c 74 64 3e 3c 63 6f 64 65 3e 69 37 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | <td><code>i7</code></td>........ |
| 57c0 | 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a | ...<td><code>(none)</code></td>. |
| 57e0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 37 2d 62 69 74 20 69 6e 74 65 67 | ..........<td>signed.7-bit.integ |
| 5800 | 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | er</td>.........</tr>.........<t |
| 5820 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 37 3c 2f 63 6f 64 65 3e | r>...........<td><code>u7</code> |
| 5840 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 28 6e 6f 6e 65 29 | </td>...........<td><code>(none) |
| 5860 | 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 | </code></td>...........<td>unsig |
| 5880 | 6e 65 64 20 37 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | ned.7-bit.integer</td>.........< |
| 58a0 | 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /tr>.........<tr>...........<td> |
| 58c0 | 3c 63 6f 64 65 3e 69 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | <code>i8</code></td>...........< |
| 58e0 | 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 38 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | td><code>int8_t</code></td>..... |
| 5900 | 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 38 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f | ......<td>signed.8-bit.integer</ |
| 5920 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 | td>.........</tr>.........<tr>.. |
| 5940 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 | .........<td><code>u8</code></td |
| 5960 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 6e 74 38 5f 74 3c 2f 63 | >...........<td><code>uint8_t</c |
| 5980 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 | ode></td>...........<td>unsigned |
| 59a0 | 20 38 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 | .8-bit.integer</td>.........</tr |
| 59c0 | 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | >.........<tr>...........<td><co |
| 59e0 | 64 65 3e 69 31 36 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | de>i16</code></td>...........<td |
| 5a00 | 3e 3c 63 6f 64 65 3e 69 6e 74 31 36 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 | ><code>int16_t</code></td>...... |
| 5a20 | 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 31 36 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f | .....<td>signed.16-bit.integer</ |
| 5a40 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 | td>.........</tr>.........<tr>.. |
| 5a60 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 31 36 3c 2f 63 6f 64 65 3e 3c 2f 74 | .........<td><code>u16</code></t |
| 5a80 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 6e 74 31 36 5f 74 3c | d>...........<td><code>uint16_t< |
| 5aa0 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e | /code></td>...........<td>unsign |
| 5ac0 | 65 64 20 31 36 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | ed.16-bit.integer</td>.........< |
| 5ae0 | 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /tr>.........<tr>...........<td> |
| 5b00 | 3c 63 6f 64 65 3e 69 33 32 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | <code>i32</code></td>........... |
| 5b20 | 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 33 32 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 | <td><code>int32_t</code></td>... |
| 5b40 | 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 33 32 2d 62 69 74 20 69 6e 74 65 67 65 | ........<td>signed.32-bit.intege |
| 5b60 | 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 | r</td>.........</tr>.........<tr |
| 5b80 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 65 3e | >...........<td><code>u32</code> |
| 5ba0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 6e 74 33 32 | </td>...........<td><code>uint32 |
| 5bc0 | 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 | _t</code></td>...........<td>uns |
| 5be0 | 69 67 6e 65 64 20 33 32 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | igned.32-bit.integer</td>....... |
| 5c00 | 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ..</tr>.........<tr>...........< |
| 5c20 | 74 64 3e 3c 63 6f 64 65 3e 69 36 34 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | td><code>i64</code></td>........ |
| 5c40 | 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 36 34 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e | ...<td><code>int64_t</code></td> |
| 5c60 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 36 34 2d 62 69 74 20 69 6e 74 | ...........<td>signed.64-bit.int |
| 5c80 | 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 | eger</td>.........</tr>......... |
| 5ca0 | 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 36 34 3c 2f 63 6f | <tr>...........<td><code>u64</co |
| 5cc0 | 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 6e | de></td>...........<td><code>uin |
| 5ce0 | 74 36 34 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | t64_t</code></td>...........<td> |
| 5d00 | 75 6e 73 69 67 6e 65 64 20 36 34 2d 62 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 | unsigned.64-bit.integer</td>.... |
| 5d20 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| 5d40 | 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | ..<td><code>i128</code></td>.... |
| 5d60 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5f 5f 69 6e 74 31 32 38 3c 2f 63 6f 64 65 3e | .......<td><code>__int128</code> |
| 5d80 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 31 32 38 2d 62 | </td>...........<td>signed.128-b |
| 5da0 | 69 74 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 | it.integer</td>.........</tr>... |
| 5dc0 | 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 | ......<tr>...........<td><code>u |
| 5de0 | 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 | 128</code></td>...........<td><c |
| 5e00 | 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 5f 5f 69 6e 74 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 | ode>unsigned.__int128</code></td |
| 5e20 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 6e 73 69 67 6e 65 64 20 31 32 38 2d 62 69 74 | >...........<td>unsigned.128-bit |
| 5e40 | 20 69 6e 74 65 67 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | .integer</td>.........</tr>..... |
| 5e60 | 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 73 69 | ....<tr>...........<td><code>isi |
| 5e80 | 7a 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | ze</code></td>...........<td><co |
| 5ea0 | 64 65 3e 69 6e 74 70 74 72 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | de>intptr_t</code></td>......... |
| 5ec0 | 20 20 3c 74 64 3e 73 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 73 69 7a 65 64 20 69 6e 74 65 67 | ..<td>signed.pointer.sized.integ |
| 5ee0 | 65 72 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | er</td>.........</tr>.........<t |
| 5f00 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 73 69 7a 65 3c 2f 63 6f | r>...........<td><code>usize</co |
| 5f20 | 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 69 6e | de></td>...........<td><code>uin |
| 5f40 | 74 70 74 72 5f 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | tptr_t</code></td>...........<td |
| 5f60 | 3e 75 6e 73 69 67 6e 65 64 20 70 6f 69 6e 74 65 72 20 73 69 7a 65 64 20 69 6e 74 65 67 65 72 3c | >unsigned.pointer.sized.integer< |
| 5f80 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 0a 20 20 20 20 20 20 20 20 3c 74 72 3e | /td>.........</tr>..........<tr> |
| 5fa0 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 73 68 6f 72 74 3c 2f 63 6f | ...........<td><code>c_short</co |
| 5fc0 | 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 73 68 6f | de></td>...........<td><code>sho |
| 5fe0 | 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 | rt</code></td>...........<td>for |
| 6000 | 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 | .ABI.compatibility.with.C</td>.. |
| 6020 | 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 | .......</tr>.........<tr>....... |
| 6040 | 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 75 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 | ....<td><code>c_ushort</code></t |
| 6060 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 | d>...........<td><code>unsigned. |
| 6080 | 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | short</code></td>...........<td> |
| 60a0 | 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 | for.ABI.compatibility.with.C</td |
| 60c0 | 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 | >.........</tr>.........<tr>.... |
| 60e0 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 74 | .......<td><code>c_int</code></t |
| 6100 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 69 6e 74 3c 2f 63 6f 64 65 | d>...........<td><code>int</code |
| 6120 | 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d | ></td>...........<td>for.ABI.com |
| 6140 | 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | patibility.with.C</td>.........< |
| 6160 | 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /tr>.........<tr>...........<td> |
| 6180 | 3c 63 6f 64 65 3e 63 5f 75 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | <code>c_uint</code></td>........ |
| 61a0 | 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 69 6e 74 3c 2f 63 6f 64 65 3e | ...<td><code>unsigned.int</code> |
| 61c0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 | </td>...........<td>for.ABI.comp |
| 61e0 | 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f | atibility.with.C</td>.........</ |
| 6200 | 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c | tr>.........<tr>...........<td>< |
| 6220 | 63 6f 64 65 3e 63 5f 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | code>c_long</code></td>......... |
| 6240 | 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 | ..<td><code>long</code></td>.... |
| 6260 | 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 | .......<td>for.ABI.compatibility |
| 6280 | 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 | .with.C</td>.........</tr>...... |
| 62a0 | 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 75 6c | ...<tr>...........<td><code>c_ul |
| 62c0 | 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 | ong</code></td>...........<td><c |
| 62e0 | 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 | ode>unsigned.long</code></td>... |
| 6300 | 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 | ........<td>for.ABI.compatibilit |
| 6320 | 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | y.with.C</td>.........</tr>..... |
| 6340 | 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 6c | ....<tr>...........<td><code>c_l |
| 6360 | 6f 6e 67 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | onglong</code></td>...........<t |
| 6380 | 64 3e 3c 63 6f 64 65 3e 6c 6f 6e 67 20 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 | d><code>long.long</code></td>... |
| 63a0 | 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 | ........<td>for.ABI.compatibilit |
| 63c0 | 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | y.with.C</td>.........</tr>..... |
| 63e0 | 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 75 | ....<tr>...........<td><code>c_u |
| 6400 | 6c 6f 6e 67 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | longlong</code></td>...........< |
| 6420 | 74 64 3e 3c 63 6f 64 65 3e 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 6c 6f 6e 67 3c 2f 63 6f 64 | td><code>unsigned.long.long</cod |
| 6440 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f | e></td>...........<td>for.ABI.co |
| 6460 | 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | mpatibility.with.C</td>......... |
| 6480 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | </tr>.........<tr>...........<td |
| 64a0 | 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a | ><code>c_longdouble</code></td>. |
| 64c0 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6c 6f 6e 67 20 64 6f 75 62 6c 65 3c | ..........<td><code>long.double< |
| 64e0 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 | /code></td>...........<td>for.AB |
| 6500 | 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 | I.compatibility.with.C</td>..... |
| 6520 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| 6540 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 63 5f 76 6f 69 64 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 | .<td><code>c_void</code></td>... |
| 6560 | 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 76 6f 69 64 3c 2f 63 6f 64 65 3e 3c 2f 74 | ........<td><code>void</code></t |
| 6580 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 66 6f 72 20 41 42 49 20 63 6f 6d 70 61 74 69 | d>...........<td>for.ABI.compati |
| 65a0 | 62 69 6c 69 74 79 20 77 69 74 68 20 43 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e | bility.with.C</td>.........</tr> |
| 65c0 | 0a 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | ..........<tr>...........<td><co |
| 65e0 | 64 65 3e 66 33 32 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | de>f32</code></td>...........<td |
| 6600 | 3e 3c 63 6f 64 65 3e 66 6c 6f 61 74 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | ><code>float</code></td>........ |
| 6620 | 20 20 20 3c 74 64 3e 33 32 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 32 33 | ...<td>32-bit.floating.point.(23 |
| 6640 | 2d 62 69 74 20 6d 61 6e 74 69 73 73 61 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 | -bit.mantissa)</td>.........</tr |
| 6660 | 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | >.........<tr>...........<td><co |
| 6680 | 64 65 3e 66 36 34 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | de>f64</code></td>...........<td |
| 66a0 | 3e 3c 63 6f 64 65 3e 64 6f 75 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | ><code>double</code></td>....... |
| 66c0 | 20 20 20 20 3c 74 64 3e 36 34 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 35 | ....<td>64-bit.floating.point.(5 |
| 66e0 | 32 2d 62 69 74 20 6d 61 6e 74 69 73 73 61 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 | 2-bit.mantissa)</td>.........</t |
| 6700 | 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 | r>.........<tr>...........<td><c |
| 6720 | 6f 64 65 3e 66 31 32 38 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ode>f128</code></td>...........< |
| 6740 | 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 31 32 38 | td>(none)</td>...........<td>128 |
| 6760 | 2d 62 69 74 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 28 31 31 32 2d 62 69 74 20 6d 61 6e | -bit.floating.point.(112-bit.man |
| 6780 | 74 69 73 73 61 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | tissa)</td>.........</tr>....... |
| 67a0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 62 6f 6f 6c 3c | ..<tr>...........<td><code>bool< |
| 67c0 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e | /code></td>...........<td><code> |
| 67e0 | 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c | bool</code></td>...........<td>< |
| 6800 | 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c | code>true</code>.or.<code>false< |
| 6820 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | /code></td>.........</tr>....... |
| 6840 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 76 6f 69 64 3c | ..<tr>...........<td><code>void< |
| 6860 | 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 | /code></td>...........<td>(none) |
| 6880 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 30 20 62 69 74 20 74 79 70 65 3c 2f | </td>...........<td>0.bit.type</ |
| 68a0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 | td>.........</tr>.........<tr>.. |
| 68c0 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 | .........<td><code>noreturn</cod |
| 68e0 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 | e></td>...........<td>(none)</td |
| 6900 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 74 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 | >...........<td>the.type.of.<cod |
| 6920 | 65 3e 62 72 65 61 6b 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 63 6f 6e 74 69 6e 75 65 3c 2f | e>break</code>,.<code>continue</ |
| 6940 | 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 | code>,.<code>return</code>,.<cod |
| 6960 | 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e | e>unreachable</code>,.and.<code> |
| 6980 | 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | while.(true).{}</code></td>..... |
| 69a0 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| 69c0 | 20 3c 74 64 3e 3c 63 6f 64 65 3e 74 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | .<td><code>type</code></td>..... |
| 69e0 | 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | ......<td>(none)</td>........... |
| 6a00 | 3c 74 64 3e 74 68 65 20 74 79 70 65 20 6f 66 20 74 79 70 65 73 3c 2f 74 64 3e 0a 20 20 20 20 20 | <td>the.type.of.types</td>...... |
| 6a20 | 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</tr>.........<tr>........... |
| 6a40 | 3c 74 64 3e 3c 63 6f 64 65 3e 65 72 72 6f 72 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | <td><code>error</code></td>..... |
| 6a60 | 20 20 20 20 20 20 3c 74 64 3e 28 6e 6f 6e 65 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | ......<td>(none)</td>........... |
| 6a80 | 3c 74 64 3e 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c | <td>an.error.code</td>.........< |
| 6aa0 | 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76 3e | /tr>.......</table>.......</div> |
| 6ac0 | 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e | .......<p>See.also:</p><ul>.<li> |
| 6ae0 | 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e | <a.href="#Integers">Integers</a> |
| 6b00 | 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 | </li>.<li><a.href="#Floats">Floa |
| 6b20 | 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 76 6f 69 64 22 3e | ts</a></li>.<li><a.href="#void"> |
| 6b40 | 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f | void</a></li>.<li><a.href="#Erro |
| 6b60 | 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 | rs">Errors</a></li>.</ul>....... |
| 6b80 | 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 50 72 69 6d 69 74 69 76 65 2d 56 61 6c 75 65 73 | ........<h2.id="Primitive-Values |
| 6ba0 | 22 3e 50 72 69 6d 69 74 69 76 65 20 56 61 6c 75 65 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | ">Primitive.Values</h2>........< |
| 6bc0 | 64 69 76 20 63 6c 61 73 73 3d 22 74 61 62 6c 65 2d 77 72 61 70 70 65 72 22 3e 0a 20 20 20 20 20 | div.class="table-wrapper">...... |
| 6be0 | 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | .<table>.........<tr>........... |
| 6c00 | 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 | <th>.............Name........... |
| 6c20 | 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </th>...........<th>............ |
| 6c40 | 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 | .Description...........</th>.... |
| 6c60 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| 6c80 | 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 | ..<td><code>true</code>.and.<cod |
| 6ca0 | 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | e>false</code></td>...........<t |
| 6cc0 | 64 3e 3c 63 6f 64 65 3e 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 20 76 61 6c 75 65 73 3c 2f 74 64 3e 0a | d><code>bool</code>.values</td>. |
| 6ce0 | 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 | ........</tr>.........<tr>...... |
| 6d00 | 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a | .....<td><code>null</code></td>. |
| 6d20 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 73 65 64 20 74 6f 20 73 65 74 20 61 20 6e 75 6c 6c | ..........<td>used.to.set.a.null |
| 6d40 | 61 62 6c 65 20 74 79 70 65 20 74 6f 20 3c 63 6f 64 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 65 3e 3c 2f | able.type.to.<code>null</code></ |
| 6d60 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 | td>.........</tr>.........<tr>.. |
| 6d80 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 63 6f | .........<td><code>undefined</co |
| 6da0 | 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 75 73 65 64 20 74 6f 20 6c | de></td>...........<td>used.to.l |
| 6dc0 | 65 61 76 65 20 61 20 76 61 6c 75 65 20 75 6e 73 70 65 63 69 66 69 65 64 3c 2f 74 64 3e 0a 20 20 | eave.a.value.unspecified</td>... |
| 6de0 | 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 | ......</tr>.........<tr>........ |
| 6e00 | 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 74 68 69 73 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 | ...<td><code>this</code></td>... |
| 6e20 | 20 20 20 20 20 20 20 20 3c 74 64 3e 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 74 68 69 6e 67 20 | ........<td>refers.to.the.thing. |
| 6e40 | 69 6e 20 69 6d 6d 65 64 69 61 74 65 20 73 63 6f 70 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | in.immediate.scope</td>......... |
| 6e60 | 3c 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76 | </tr>.......</table>.......</div |
| 6e80 | 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 | >.......<p>See.also:</p><ul>.<li |
| 6ea0 | 3e 3c 61 20 68 72 65 66 3d 22 23 4e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c | ><a.href="#Nullables">Nullables< |
| 6ec0 | 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 74 68 69 73 22 3e 74 68 69 | /a></li>.<li><a.href="#this">thi |
| 6ee0 | 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | s</a></li>.</ul>...............< |
| 6f00 | 68 32 20 69 64 3d 22 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 53 74 72 69 6e 67 20 4c | h2.id="String-Literals">String.L |
| 6f20 | 69 74 65 72 61 6c 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 | iterals</h2>........<p.class="fi |
| 6f40 | 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | le">test.zig</p><pre><code.class |
| 6f60 | 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 | ="zig">const.assert.=.@import(&q |
| 6f80 | 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e | uot;std").debug.assert;.con |
| 6fa0 | 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b | st.mem.=.@import("std" |
| 6fc0 | 29 2e 6d 65 6d 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 73 74 72 69 6e 67 20 6c 69 74 65 72 61 | ).mem;..test."string.litera |
| 6fe0 | 6c 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 49 6e 20 5a 69 67 20 61 20 73 74 72 69 6e | ls".{.....//.In.Zig.a.strin |
| 7000 | 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 62 79 74 65 73 2e 0a | g.literal.is.an.array.of.bytes.. |
| 7020 | 20 20 20 20 63 6f 6e 73 74 20 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 20 3d 20 26 71 75 6f 74 3b 68 | ....const.normal_bytes.=."h |
| 7040 | 65 6c 6c 6f 26 71 75 6f 74 3b 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6e | ello";.....assert(@typeOf(n |
| 7060 | 6f 72 6d 61 6c 5f 62 79 74 65 73 29 20 3d 3d 20 5b 35 5d 75 38 29 3b 0a 20 20 20 20 61 73 73 65 | ormal_bytes).==.[5]u8);.....asse |
| 7080 | 72 74 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 2e 6c 65 6e 20 3d 3d 20 35 29 3b 0a 20 20 20 20 61 | rt(normal_bytes.len.==.5);.....a |
| 70a0 | 73 73 65 72 74 28 6e 6f 72 6d 61 6c 5f 62 79 74 65 73 5b 31 5d 20 3d 3d 20 27 65 27 29 3b 0a 20 | ssert(normal_bytes[1].==.'e');.. |
| 70c0 | 20 20 20 61 73 73 65 72 74 28 27 65 27 20 3d 3d 20 27 5c 78 36 35 27 29 3b 0a 20 20 20 20 61 73 | ...assert('e'.==.'\x65');.....as |
| 70e0 | 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f | sert(mem.eql(u8,."hello&quo |
| 7100 | 74 3b 2c 20 26 71 75 6f 74 3b 68 5c 78 36 35 6c 6c 6f 26 71 75 6f 74 3b 29 29 3b 0a 0a 20 20 20 | t;,."h\x65llo"));..... |
| 7120 | 20 2f 2f 20 41 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 20 6e 75 6c 6c | .//.A.C.string.literal.is.a.null |
| 7140 | 20 74 65 72 6d 69 6e 61 74 65 64 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 63 6f 6e 73 74 20 6e | .terminated.pointer......const.n |
| 7160 | 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 62 79 74 65 73 20 3d 20 63 26 71 75 6f 74 3b 68 65 | ull_terminated_bytes.=.c"he |
| 7180 | 6c 6c 6f 26 71 75 6f 74 3b 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6e 75 | llo";.....assert(@typeOf(nu |
| 71a0 | 6c 6c 5f 74 65 72 6d 69 6e 61 74 65 64 5f 62 79 74 65 73 29 20 3d 3d 20 26 61 6d 70 3b 63 6f 6e | ll_terminated_bytes).==.&con |
| 71c0 | 73 74 20 75 38 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6e 75 6c 6c 5f 74 65 72 6d 69 6e 61 74 | st.u8);.....assert(null_terminat |
| 71e0 | 65 64 5f 62 79 74 65 73 5b 35 5d 20 3d 3d 20 30 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ed_bytes[5].==.0);.}</code></pre |
| 7200 | 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 | ><pre><code.class="shell">$.zig. |
| 7220 | 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 73 74 72 69 6e 67 20 6c 69 | test.test.zig.Test.1/1.string.li |
| 7240 | 74 65 72 61 6c 73 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 | terals...OK.</code></pre>....... |
| 7260 | 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 | .<p>See.also:</p><ul>.<li><a.hre |
| 7280 | 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e | f="#Arrays">Arrays</a></li>.<li> |
| 72a0 | 3c 61 20 68 72 65 66 3d 22 23 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e | <a.href="#Zig-Test">Zig.Test</a> |
| 72c0 | 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 45 73 63 61 70 | </li>.</ul>........<h3.id="Escap |
| 72e0 | 65 2d 53 65 71 75 65 6e 63 65 73 22 3e 45 73 63 61 70 65 20 53 65 71 75 65 6e 63 65 73 3c 2f 68 | e-Sequences">Escape.Sequences</h |
| 7300 | 33 3e 0a 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c 61 73 73 3d 22 74 61 62 6c 65 2d 77 72 61 70 | 3>........<div.class="table-wrap |
| 7320 | 70 65 72 22 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e | per">.......<table>.........<tr> |
| 7340 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 73 63 61 | ...........<th>.............Esca |
| 7360 | 70 65 20 53 65 71 75 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 | pe.Sequence...........</th>..... |
| 7380 | 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 6d 65 0a 20 20 20 20 | ......<th>.............Name..... |
| 73a0 | 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | ......</th>.........</tr>....... |
| 73c0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 6e 3c 2f 63 | ..<tr>...........<td><code>\n</c |
| 73e0 | 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 4e 65 77 6c 69 6e 65 3c | ode></td>...........<td>Newline< |
| 7400 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a | /td>.........</tr>.........<tr>. |
| 7420 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 72 3c 2f 63 6f 64 65 3e 3c 2f 74 | ..........<td><code>\r</code></t |
| 7440 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 43 61 72 72 69 61 67 65 20 52 65 74 75 72 6e | d>...........<td>Carriage.Return |
| 7460 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e | </td>.........</tr>.........<tr> |
| 7480 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 74 3c 2f 63 6f 64 65 3e 3c 2f | ...........<td><code>\t</code></ |
| 74a0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 54 61 62 3c 2f 74 64 3e 0a 20 20 20 20 20 | td>...........<td>Tab</td>...... |
| 74c0 | 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 | ...</tr>.........<tr>........... |
| 74e0 | 3c 74 64 3e 3c 63 6f 64 65 3e 5c 5c 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | <td><code>\\</code></td>........ |
| 7500 | 20 20 20 3c 74 64 3e 42 61 63 6b 73 6c 61 73 68 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f | ...<td>Backslash</td>.........</ |
| 7520 | 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c | tr>.........<tr>...........<td>< |
| 7540 | 63 6f 64 65 3e 5c 27 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | code>\'</code></td>...........<t |
| 7560 | 64 3e 53 69 6e 67 6c 65 20 51 75 6f 74 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 | d>Single.Quote</td>.........</tr |
| 7580 | 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f | >.........<tr>...........<td><co |
| 75a0 | 64 65 3e 5c 22 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | de>\"</code></td>...........<td> |
| 75c0 | 44 6f 75 62 6c 65 20 51 75 6f 74 65 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a | Double.Quote</td>.........</tr>. |
| 75e0 | 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 | ........<tr>...........<td><code |
| 7600 | 3e 5c 78 4e 4e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | >\xNN</code></td>...........<td> |
| 7620 | 68 65 78 61 64 65 63 69 6d 61 6c 20 38 2d 62 69 74 20 63 68 61 72 61 63 74 65 72 20 63 6f 64 65 | hexadecimal.8-bit.character.code |
| 7640 | 20 28 32 20 64 69 67 69 74 73 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 | .(2.digits)</td>.........</tr>.. |
| 7660 | 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e | .......<tr>...........<td><code> |
| 7680 | 5c 75 4e 4e 4e 4e 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 | \uNNNN</code></td>...........<td |
| 76a0 | 3e 68 65 78 61 64 65 63 69 6d 61 6c 20 31 36 2d 62 69 74 20 55 6e 69 63 6f 64 65 20 63 68 61 72 | >hexadecimal.16-bit.Unicode.char |
| 76c0 | 61 63 74 65 72 20 63 6f 64 65 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 28 34 20 64 69 67 69 | acter.code.UTF-8.encoded.(4.digi |
| 76e0 | 74 73 29 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ts)</td>.........</tr>.........< |
| 7700 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 63 6f 64 65 3e 5c 55 4e 4e 4e 4e 4e 4e | tr>...........<td><code>\UNNNNNN |
| 7720 | 3c 2f 63 6f 64 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 68 65 78 61 64 | </code></td>...........<td>hexad |
| 7740 | 65 63 69 6d 61 6c 20 32 34 2d 62 69 74 20 55 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 20 | ecimal.24-bit.Unicode.character. |
| 7760 | 63 6f 64 65 20 55 54 46 2d 38 20 65 6e 63 6f 64 65 64 20 28 36 20 64 69 67 69 74 73 29 3c 2f 74 | code.UTF-8.encoded.(6.digits)</t |
| 7780 | 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 6c 65 3e 0a | d>.........</tr>.......</table>. |
| 77a0 | 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20 | ......</div>.......<p>Note.that. |
| 77c0 | 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 69 64 20 55 6e 69 63 6f 64 65 20 70 6f 69 6e 74 20 | the.maximum.valid.Unicode.point. |
| 77e0 | 69 73 20 3c 63 6f 64 65 3e 30 78 31 30 66 66 66 66 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 | is.<code>0x10ffff</code>.</p>... |
| 7800 | 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 4d 75 6c 74 69 6c 69 6e 65 2d 53 74 72 | ...........<h3.id="Multiline-Str |
| 7820 | 69 6e 67 2d 4c 69 74 65 72 61 6c 73 22 3e 4d 75 6c 74 69 6c 69 6e 65 20 53 74 72 69 6e 67 20 4c | ing-Literals">Multiline.String.L |
| 7840 | 69 74 65 72 61 6c 73 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4d 75 | iterals</h3>........<p>.......Mu |
| 7860 | 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 68 61 76 65 20 6e 6f 20 | ltiline.string.literals.have.no. |
| 7880 | 65 73 63 61 70 65 73 20 61 6e 64 20 63 61 6e 20 73 70 61 6e 20 61 63 72 6f 73 73 20 6d 75 6c 74 | escapes.and.can.span.across.mult |
| 78a0 | 69 70 6c 65 20 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 54 6f 20 73 74 61 72 74 20 61 20 6d 75 6c | iple.lines........To.start.a.mul |
| 78c0 | 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20 75 73 65 20 74 68 65 20 3c | tiline.string.literal,.use.the.< |
| 78e0 | 63 6f 64 65 3e 5c 5c 3c 2f 63 6f 64 65 3e 20 74 6f 6b 65 6e 2e 20 4a 75 73 74 20 6c 69 6b 65 20 | code>\\</code>.token..Just.like. |
| 7900 | 61 20 63 6f 6d 6d 65 6e 74 2c 0a 20 20 20 20 20 20 74 68 65 20 73 74 72 69 6e 67 20 6c 69 74 65 | a.comment,.......the.string.lite |
| 7920 | 72 61 6c 20 67 6f 65 73 20 75 6e 74 69 6c 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 | ral.goes.until.the.end.of.the.li |
| 7940 | 6e 65 2e 20 54 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 73 0a 20 20 20 20 20 | ne..The.end.of.the.line.is...... |
| 7960 | 20 6e 6f 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 73 74 72 69 6e 67 20 6c 69 74 65 | .not.included.in.the.string.lite |
| 7980 | 72 61 6c 2e 0a 20 20 20 20 20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 74 68 65 20 6e 65 78 74 20 | ral........However,.if.the.next. |
| 79a0 | 6c 69 6e 65 20 62 65 67 69 6e 73 20 77 69 74 68 20 3c 63 6f 64 65 3e 5c 5c 3c 2f 63 6f 64 65 3e | line.begins.with.<code>\\</code> |
| 79c0 | 20 74 68 65 6e 20 61 20 6e 65 77 6c 69 6e 65 20 69 73 20 61 70 70 65 6e 64 65 64 20 61 6e 64 0a | .then.a.newline.is.appended.and. |
| 79e0 | 20 20 20 20 20 20 74 68 65 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 63 6f 6e 74 69 6e 75 | ......the.string.literal.continu |
| 7a00 | 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | es........</p>.......<pre><code. |
| 7a20 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 5f 69 6e | class="zig">const.hello_world_in |
| 7a40 | 5f 63 20 3d 0a 20 20 20 20 5c 5c 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 64 69 6f 2e 68 26 | _c.=.....\\#include.<stdio.h& |
| 7a60 | 67 74 3b 0a 20 20 20 20 5c 5c 0a 20 20 20 20 5c 5c 69 6e 74 20 6d 61 69 6e 28 69 6e 74 20 61 72 | gt;.....\\.....\\int.main(int.ar |
| 7a80 | 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 20 5c 5c 20 20 20 20 70 72 69 | gc,.char.**argv).{.....\\....pri |
| 7aa0 | 6e 74 66 28 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f 72 6c 64 5c 6e 26 71 75 6f 74 3b 29 3b 0a | ntf("hello.world\n");. |
| 7ac0 | 20 20 20 20 5c 5c 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 5c 5c 7d 0a 3b 3c 2f 63 | ....\\....return.0;.....\\}.;</c |
| 7ae0 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 61 | ode></pre>.......<p>.......For.a |
| 7b00 | 20 6d 75 6c 74 69 6c 69 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20 70 72 65 | .multiline.C.string.literal,.pre |
| 7b20 | 70 65 6e 64 20 3c 63 6f 64 65 3e 63 3c 2f 63 6f 64 65 3e 20 74 6f 20 65 61 63 68 20 3c 63 6f 64 | pend.<code>c</code>.to.each.<cod |
| 7b40 | 65 3e 5c 5c 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | e>\\</code>:.......</p>.......<p |
| 7b60 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 63 5f 73 74 72 | re><code.class="zig">const.c_str |
| 7b80 | 69 6e 67 5f 6c 69 74 65 72 61 6c 20 3d 0a 20 20 20 20 63 5c 5c 23 69 6e 63 6c 75 64 65 20 26 6c | ing_literal.=.....c\\#include.&l |
| 7ba0 | 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 20 20 20 20 63 5c 5c 0a 20 20 20 20 63 5c 5c 69 6e 74 | t;stdio.h>.....c\\.....c\\int |
| 7bc0 | 20 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 | .main(int.argc,.char.**argv).{.. |
| 7be0 | 20 20 20 63 5c 5c 20 20 20 20 70 72 69 6e 74 66 28 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f 72 | ...c\\....printf("hello.wor |
| 7c00 | 6c 64 5c 6e 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 63 5c 5c 20 20 20 20 72 65 74 75 72 6e 20 30 | ld\n");.....c\\....return.0 |
| 7c20 | 3b 0a 20 20 20 20 63 5c 5c 7d 0a 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | ;.....c\\}.;</code></pre>....... |
| 7c40 | 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 74 68 65 20 76 61 | <p>.......In.this.example.the.va |
| 7c60 | 72 69 61 62 6c 65 20 3c 63 6f 64 65 3e 63 5f 73 74 72 69 6e 67 5f 6c 69 74 65 72 61 6c 3c 2f 63 | riable.<code>c_string_literal</c |
| 7c80 | 6f 64 65 3e 20 68 61 73 20 74 79 70 65 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 63 6f 6e 73 74 20 63 | ode>.has.type.<code>&const.c |
| 7ca0 | 68 61 72 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 68 61 73 20 61 20 74 65 72 6d 69 | har</code>.and.......has.a.termi |
| 7cc0 | 6e 61 74 69 6e 67 20 6e 75 6c 6c 20 62 79 74 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | nating.null.byte........</p>.... |
| 7ce0 | 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 | ...<p>See.also:</p><ul>.<li><a.h |
| 7d00 | 72 65 66 3d 22 23 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 61 3e 3c | ref="#embedFile">@embedFile</a>< |
| 7d20 | 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | /li>.</ul>...................... |
| 7d40 | 3c 68 32 20 69 64 3d 22 41 73 73 69 67 6e 6d 65 6e 74 22 3e 41 73 73 69 67 6e 6d 65 6e 74 3c 2f | <h2.id="Assignment">Assignment</ |
| 7d60 | 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 55 73 65 20 3c 63 6f 64 65 3e 63 6f 6e 73 74 3c 2f 63 | h2>........<p>Use.<code>const</c |
| 7d80 | 6f 64 65 3e 20 74 6f 20 61 73 73 69 67 6e 20 61 20 76 61 6c 75 65 20 74 6f 20 61 6e 20 69 64 65 | ode>.to.assign.a.value.to.an.ide |
| 7da0 | 6e 74 69 66 69 65 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c | ntifier:</p>.......<p.class="fil |
| 7dc0 | 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | e">test.zig</p><pre><code.class= |
| 7de0 | 22 7a 69 67 22 3e 63 6f 6e 73 74 20 78 20 3d 20 31 32 33 34 3b 0a 0a 66 6e 20 66 6f 6f 28 29 20 | "zig">const.x.=.1234;..fn.foo(). |
| 7e00 | 76 6f 69 64 20 7b 0a 20 20 20 20 2f 2f 20 49 74 20 77 6f 72 6b 73 20 61 74 20 67 6c 6f 62 61 6c | void.{.....//.It.works.at.global |
| 7e20 | 20 73 63 6f 70 65 20 61 73 20 77 65 6c 6c 20 61 73 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f | .scope.as.well.as.inside.functio |
| 7e40 | 6e 73 2e 0a 20 20 20 20 63 6f 6e 73 74 20 79 20 3d 20 35 36 37 38 3b 0a 0a 20 20 20 20 2f 2f 20 | ns......const.y.=.5678;......//. |
| 7e60 | 4f 6e 63 65 20 61 73 73 69 67 6e 65 64 2c 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 20 63 61 6e | Once.assigned,.an.identifier.can |
| 7e80 | 6e 6f 74 20 62 65 20 63 68 61 6e 67 65 64 2e 0a 20 20 20 20 79 20 2b 3d 20 31 3b 0a 7d 0a 0a 74 | not.be.changed......y.+=.1;.}..t |
| 7ea0 | 65 73 74 20 26 71 75 6f 74 3b 61 73 73 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | est."assignment".{.... |
| 7ec0 | 20 66 6f 6f 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 | .foo();.}</code></pre><pre><code |
| 7ee0 | 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a | .class="shell">$.zig.test.test.z |
| 7f00 | 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 | ig.<span.class="t0_1">/home/andy |
| 7f20 | 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 38 3a 37 | /dev/zig/docgen_tmp/test.zig:8:7 |
| 7f40 | 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 | :.</span><span.class="t31_1">err |
| 7f60 | 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 | or:</span><span.class="t0_1">.ca |
| 7f80 | 6e 6e 6f 74 20 61 73 73 69 67 6e 20 74 6f 20 63 6f 6e 73 74 61 6e 74 3c 2f 73 70 61 6e 3e 0a 20 | nnot.assign.to.constant</span>.. |
| 7fa0 | 20 20 20 79 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 | ...y.+=.1;.......<span.class="t3 |
| 7fc0 | 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 | 2_1">^</span>.</code></pre>..... |
| 7fe0 | 20 20 20 3c 70 3e 49 66 20 79 6f 75 20 6e 65 65 64 20 61 20 76 61 72 69 61 62 6c 65 20 74 68 61 | ...<p>If.you.need.a.variable.tha |
| 8000 | 74 20 79 6f 75 20 63 61 6e 20 6d 6f 64 69 66 79 2c 20 75 73 65 20 3c 63 6f 64 65 3e 76 61 72 3c | t.you.can.modify,.use.<code>var< |
| 8020 | 2f 63 6f 64 65 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 | /code>:</p>.......<p.class="file |
| 8040 | 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ">test.zig</p><pre><code.class=" |
| 8060 | 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f | zig">const.assert.=.@import(&quo |
| 8080 | 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 | t;std").debug.assert;..test |
| 80a0 | 20 26 71 75 6f 74 3b 76 61 72 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 20 79 3a 20 69 33 | ."var".{.....var.y:.i3 |
| 80c0 | 32 20 3d 20 35 36 37 38 3b 0a 0a 20 20 20 20 79 20 2b 3d 20 31 3b 0a 0a 20 20 20 20 61 73 73 65 | 2.=.5678;......y.+=.1;......asse |
| 80e0 | 72 74 28 79 20 3d 3d 20 35 36 37 39 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 | rt(y.==.5679);.}</code></pre><pr |
| 8100 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 | e><code.class="shell">$.zig.test |
| 8120 | 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 76 61 72 2e 2e 2e 4f 4b 0a 3c 2f 63 6f | .test.zig.Test.1/1.var...OK.</co |
| 8140 | 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 56 61 72 69 61 62 6c 65 73 20 6d 75 | de></pre>........<p>Variables.mu |
| 8160 | 73 74 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 | st.be.initialized:</p>.......<p. |
| 8180 | 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 | class="file">test.zig</p><pre><c |
| 81a0 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 69 74 69 | ode.class="zig">test."initi |
| 81c0 | 61 6c 69 7a 61 74 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 20 78 3a 20 69 33 32 | alization".{.....var.x:.i32 |
| 81e0 | 3b 0a 0a 20 20 20 20 78 20 3d 20 31 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 | ;......x.=.1;.}</code></pre><pre |
| 8200 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 | ><code.class="shell">$.zig.test. |
| 8220 | 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d | test.zig.<span.class="t0_1">/hom |
| 8240 | 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a | e/andy/dev/zig/docgen_tmp/test.z |
| 8260 | 69 67 3a 32 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f | ig:2:5:.</span><span.class="t31_ |
| 8280 | 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f | 1">error:</span><span.class="t0_ |
| 82a0 | 31 22 3e 20 76 61 72 69 61 62 6c 65 73 20 6d 75 73 74 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 | 1">.variables.must.be.initialize |
| 82c0 | 64 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 76 61 72 20 78 3a 20 69 33 32 3b 0a 20 20 20 20 3c 73 70 | d</span>.....var.x:.i32;.....<sp |
| 82e0 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 | an.class="t32_1">^</span>.<span. |
| 8300 | 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f | class="t0_1">/home/andy/dev/zig/ |
| 8320 | 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 35 3a 20 3c 2f 73 70 61 6e 3e | docgen_tmp/test.zig:4:5:.</span> |
| 8340 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e | <span.class="t31_1">error:</span |
| 8360 | 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 73 65 20 6f 66 20 75 6e 64 65 | ><span.class="t0_1">.use.of.unde |
| 8380 | 63 6c 61 72 65 64 20 69 64 65 6e 74 69 66 69 65 72 20 27 78 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 | clared.identifier.'x'</span>.... |
| 83a0 | 20 78 20 3d 20 31 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e | .x.=.1;.....<span.class="t32_1"> |
| 83c0 | 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 | ^</span>.</code></pre>........<p |
| 83e0 | 3e 55 73 65 20 3c 63 6f 64 65 3e 75 6e 64 65 66 69 6e 65 64 3c 2f 63 6f 64 65 3e 20 74 6f 20 6c | >Use.<code>undefined</code>.to.l |
| 8400 | 65 61 76 65 20 76 61 72 69 61 62 6c 65 73 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 3a 3c 2f 70 | eave.variables.uninitialized:</p |
| 8420 | 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 | >.......<p.class="file">test.zig |
| 8440 | 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 | </p><pre><code.class="zig">const |
| 8460 | 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 | .assert.=.@import("std" |
| 8480 | 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 69 | ;).debug.assert;..test."ini |
| 84a0 | 74 20 77 69 74 68 20 75 6e 64 65 66 69 6e 65 64 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 | t.with.undefined".{.....var |
| 84c0 | 20 78 3a 20 69 33 32 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 78 20 3d 20 31 3b 0a | .x:.i32.=.undefined;.....x.=.1;. |
| 84e0 | 20 20 20 20 61 73 73 65 72 74 28 78 20 3d 3d 20 31 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ....assert(x.==.1);.}</code></pr |
| 8500 | 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 | e><pre><code.class="shell">$.zig |
| 8520 | 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 69 6e 69 74 20 77 69 74 | .test.test.zig.Test.1/1.init.wit |
| 8540 | 68 20 75 6e 64 65 66 69 6e 65 64 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a | h.undefined...OK.</code></pre>.. |
| 8560 | 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 49 6e 74 65 | ....................<h1.id="Inte |
| 8580 | 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 | gers">Integers</h1>........<h2.i |
| 85a0 | 64 3d 22 49 6e 74 65 67 65 72 2d 4c 69 74 65 72 61 6c 73 22 3e 49 6e 74 65 67 65 72 20 4c 69 74 | d="Integer-Literals">Integer.Lit |
| 85c0 | 65 72 61 6c 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | erals</h2>........<pre><code.cla |
| 85e0 | 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 64 65 63 69 6d 61 6c 5f 69 6e 74 20 3d 20 39 38 32 | ss="zig">const.decimal_int.=.982 |
| 8600 | 32 32 3b 0a 63 6f 6e 73 74 20 68 65 78 5f 69 6e 74 20 3d 20 30 78 66 66 3b 0a 63 6f 6e 73 74 20 | 22;.const.hex_int.=.0xff;.const. |
| 8620 | 61 6e 6f 74 68 65 72 5f 68 65 78 5f 69 6e 74 20 3d 20 30 78 46 46 3b 0a 63 6f 6e 73 74 20 6f 63 | another_hex_int.=.0xFF;.const.oc |
| 8640 | 74 61 6c 5f 69 6e 74 20 3d 20 30 6f 37 35 35 3b 0a 63 6f 6e 73 74 20 62 69 6e 61 72 79 5f 69 6e | tal_int.=.0o755;.const.binary_in |
| 8660 | 74 20 3d 20 30 62 31 31 31 31 30 30 30 30 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | t.=.0b11110000;</code></pre>.... |
| 8680 | 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 75 6e 74 69 6d 65 2d 49 6e 74 65 67 65 | ..........<h2.id="Runtime-Intege |
| 86a0 | 72 2d 56 61 6c 75 65 73 22 3e 52 75 6e 74 69 6d 65 20 49 6e 74 65 67 65 72 20 56 61 6c 75 65 73 | r-Values">Runtime.Integer.Values |
| 86c0 | 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 74 65 67 65 72 20 6c | </h2>........<p>.......Integer.l |
| 86e0 | 69 74 65 72 61 6c 73 20 68 61 76 65 20 6e 6f 20 73 69 7a 65 20 6c 69 6d 69 74 61 74 69 6f 6e 2c | iterals.have.no.size.limitation, |
| 8700 | 20 61 6e 64 20 69 66 20 61 6e 79 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f | .and.if.any.undefined.behavior.o |
| 8720 | 63 63 75 72 73 2c 0a 20 20 20 20 20 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 63 61 74 63 68 65 | ccurs,.......the.compiler.catche |
| 8740 | 73 20 69 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | s.it........</p>.......<p>...... |
| 8760 | 20 48 6f 77 65 76 65 72 2c 20 6f 6e 63 65 20 61 6e 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 20 | .However,.once.an.integer.value. |
| 8780 | 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 | is.no.longer.known.at.compile-ti |
| 87a0 | 6d 65 2c 20 69 74 20 6d 75 73 74 20 68 61 76 65 20 61 0a 20 20 20 20 20 20 6b 6e 6f 77 6e 20 73 | me,.it.must.have.a.......known.s |
| 87c0 | 69 7a 65 2c 20 61 6e 64 20 69 73 20 76 75 6c 6e 65 72 61 62 6c 65 20 74 6f 20 75 6e 64 65 66 69 | ize,.and.is.vulnerable.to.undefi |
| 87e0 | 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | ned.behavior........</p>.......< |
| 8800 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 64 69 76 69 64 65 28 | pre><code.class="zig">fn.divide( |
| 8820 | 61 3a 20 69 33 32 2c 20 62 3a 20 69 33 32 29 20 69 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e | a:.i32,.b:.i32).i32.{.....return |
| 8840 | 20 61 20 2f 20 62 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | .a./.b;.}</code></pre>.......<p> |
| 8860 | 0a 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 76 61 6c 75 65 73 20 | .......In.this.function,.values. |
| 8880 | 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 | <code>a</code>.and.<code>b</code |
| 88a0 | 3e 20 61 72 65 20 6b 6e 6f 77 6e 20 6f 6e 6c 79 20 61 74 20 72 75 6e 74 69 6d 65 2c 0a 20 20 20 | >.are.known.only.at.runtime,.... |
| 88c0 | 20 20 20 61 6e 64 20 74 68 75 73 20 74 68 69 73 20 64 69 76 69 73 69 6f 6e 20 6f 70 65 72 61 74 | ...and.thus.this.division.operat |
| 88e0 | 69 6f 6e 20 69 73 20 76 75 6c 6e 65 72 61 62 6c 65 20 74 6f 20 62 6f 74 68 20 69 6e 74 65 67 65 | ion.is.vulnerable.to.both.intege |
| 8900 | 72 20 6f 76 65 72 66 6c 6f 77 20 61 6e 64 0a 20 20 20 20 20 20 64 69 76 69 73 69 6f 6e 20 62 79 | r.overflow.and.......division.by |
| 8920 | 20 7a 65 72 6f 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | .zero........</p>.......<p>..... |
| 8940 | 20 20 4f 70 65 72 61 74 6f 72 73 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 2b 3c 2f 63 6f 64 | ..Operators.such.as.<code>+</cod |
| 8960 | 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 20 63 61 75 73 65 20 75 6e 64 65 | e>.and.<code>-</code>.cause.unde |
| 8980 | 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f 6e 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 | fined.behavior.on.......integer. |
| 89a0 | 6f 76 65 72 66 6c 6f 77 2e 20 41 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 61 72 65 20 6f 70 65 | overflow..Also.available.are.ope |
| 89c0 | 72 61 74 69 6f 6e 73 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 2b 25 3c 2f 63 6f 64 65 3e 20 | rations.such.as.<code>+%</code>. |
| 89e0 | 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 | and.......<code>-%</code>.which. |
| 8a00 | 61 72 65 20 64 65 66 69 6e 65 64 20 74 6f 20 68 61 76 65 20 77 72 61 70 70 69 6e 67 20 61 72 69 | are.defined.to.have.wrapping.ari |
| 8a20 | 74 68 6d 65 74 69 63 20 6f 6e 20 61 6c 6c 20 74 61 72 67 65 74 73 2e 0a 20 20 20 20 20 20 3c 2f | thmetic.on.all.targets........</ |
| 8a40 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c | p>.......<p>See.also:</p><ul>.<l |
| 8a60 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 2d 4f 76 65 72 66 6c 6f 77 22 3e 49 6e | i><a.href="#Integer-Overflow">In |
| 8a80 | 74 65 67 65 72 20 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 | teger.Overflow</a></li>.<li><a.h |
| 8aa0 | 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e | ref="#Division-by-Zero">Division |
| 8ac0 | 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | .by.Zero</a></li>.<li><a.href="# |
| 8ae0 | 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 57 72 61 70 70 69 6e 67 20 4f 70 | Wrapping-Operations">Wrapping.Op |
| 8b00 | 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a | erations</a></li>.</ul>......... |
| 8b20 | 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 46 6c 6f 61 74 73 22 3e 46 6c 6f | .............<h1.id="Floats">Flo |
| 8b40 | 61 74 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 46 6c 6f 61 74 2d 4c 69 | ats</h1>........<h2.id="Float-Li |
| 8b60 | 74 65 72 61 6c 73 22 3e 46 6c 6f 61 74 20 4c 69 74 65 72 61 6c 73 3c 2f 68 32 3e 0a 0a 20 20 20 | terals">Float.Literals</h2>..... |
| 8b80 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 | ...<pre><code.class="zig">const. |
| 8ba0 | 66 6c 6f 61 74 69 6e 67 5f 70 6f 69 6e 74 20 3d 20 31 32 33 2e 30 45 2b 37 37 3b 0a 63 6f 6e 73 | floating_point.=.123.0E+77;.cons |
| 8bc0 | 74 20 61 6e 6f 74 68 65 72 5f 66 6c 6f 61 74 20 3d 20 31 32 33 2e 30 3b 0a 63 6f 6e 73 74 20 79 | t.another_float.=.123.0;.const.y |
| 8be0 | 65 74 5f 61 6e 6f 74 68 65 72 20 3d 20 31 32 33 2e 30 65 2b 37 37 3b 0a 0a 63 6f 6e 73 74 20 68 | et_another.=.123.0e+77;..const.h |
| 8c00 | 65 78 5f 66 6c 6f 61 74 69 6e 67 5f 70 6f 69 6e 74 20 3d 20 30 78 31 30 33 2e 37 30 70 2d 35 3b | ex_floating_point.=.0x103.70p-5; |
| 8c20 | 0a 63 6f 6e 73 74 20 61 6e 6f 74 68 65 72 5f 68 65 78 5f 66 6c 6f 61 74 20 3d 20 30 78 31 30 33 | .const.another_hex_float.=.0x103 |
| 8c40 | 2e 37 30 3b 0a 63 6f 6e 73 74 20 79 65 74 5f 61 6e 6f 74 68 65 72 5f 68 65 78 5f 66 6c 6f 61 74 | .70;.const.yet_another_hex_float |
| 8c60 | 20 3d 20 30 78 31 30 33 2e 37 30 50 2d 35 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | .=.0x103.70P-5;</code></pre>.... |
| 8c80 | 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 | ..........<h2.id="Floating-Point |
| 8ca0 | 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 69 6e 67 20 50 6f 69 6e 74 20 4f 70 65 72 | -Operations">Floating.Point.Oper |
| 8cc0 | 61 74 69 6f 6e 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 42 79 20 64 65 66 61 75 6c 74 | ations</h2>........<p>By.default |
| 8ce0 | 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 75 73 65 20 3c | .floating.point.operations.use.< |
| 8d00 | 63 6f 64 65 3e 4f 70 74 69 6d 69 7a 65 64 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 0a 20 20 20 20 | code>Optimized</code>.mode,..... |
| 8d20 | 20 20 62 75 74 20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 74 6f 20 3c 63 6f 64 65 3e 53 74 | ..but.you.can.switch.to.<code>St |
| 8d40 | 72 69 63 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 20 6f 6e 20 61 20 70 65 72 2d 62 6c 6f 63 6b 20 | rict</code>.mode.on.a.per-block. |
| 8d60 | 62 61 73 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 | basis:</p>.......<p.class="file" |
| 8d80 | 3e 66 6f 6f 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | >foo.zig</p><pre><code.class="zi |
| 8da0 | 67 22 3e 63 6f 6e 73 74 20 62 75 69 6c 74 69 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 | g">const.builtin.=.@import(" |
| 8dc0 | 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 29 3b 0a 63 6f 6e 73 74 20 62 69 67 20 3d 20 66 36 34 | ;builtin");.const.big.=.f64 |
| 8de0 | 28 31 20 26 6c 74 3b 26 6c 74 3b 20 34 30 29 3b 0a 0a 65 78 70 6f 72 74 20 66 6e 20 66 6f 6f 5f | (1.<<.40);..export.fn.foo_ |
| 8e00 | 73 74 72 69 63 74 28 78 3a 20 66 36 34 29 20 66 36 34 20 7b 0a 20 20 20 20 40 73 65 74 46 6c 6f | strict(x:.f64).f64.{.....@setFlo |
| 8e20 | 61 74 4d 6f 64 65 28 74 68 69 73 2c 20 62 75 69 6c 74 69 6e 2e 46 6c 6f 61 74 4d 6f 64 65 2e 53 | atMode(this,.builtin.FloatMode.S |
| 8e40 | 74 72 69 63 74 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 78 20 2b 20 62 69 67 20 2d 20 62 69 67 | trict);.....return.x.+.big.-.big |
| 8e60 | 3b 0a 7d 0a 0a 65 78 70 6f 72 74 20 66 6e 20 66 6f 6f 5f 6f 70 74 69 6d 69 7a 65 64 28 78 3a 20 | ;.}..export.fn.foo_optimized(x:. |
| 8e80 | 66 36 34 29 20 66 36 34 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 78 20 2b 20 62 69 67 20 2d 20 | f64).f64.{.....return.x.+.big.-. |
| 8ea0 | 62 69 67 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | big;.}</code></pre><pre><code.cl |
| 8ec0 | 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 66 6f 6f 2e | ass="shell">$.zig.build-obj.foo. |
| 8ee0 | 7a 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 66 61 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | zig.--release-fast</code></pre>. |
| 8f00 | 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 74 68 69 73 20 74 65 73 74 20 77 65 20 68 61 76 65 20 | .......<p>For.this.test.we.have. |
| 8f20 | 74 6f 20 73 65 70 61 72 61 74 65 20 63 6f 64 65 20 69 6e 74 6f 20 74 77 6f 20 6f 62 6a 65 63 74 | to.separate.code.into.two.object |
| 8f40 | 20 66 69 6c 65 73 20 2d 0a 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 6f 70 74 | .files.-.......otherwise.the.opt |
| 8f60 | 69 6d 69 7a 65 72 20 66 69 67 75 72 65 73 20 6f 75 74 20 61 6c 6c 20 74 68 65 20 76 61 6c 75 65 | imizer.figures.out.all.the.value |
| 8f80 | 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 6f | s.at.compile-time,.......which.o |
| 8fa0 | 70 65 72 61 74 65 73 20 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 2e 3c 2f 70 3e 0a 20 20 20 20 | perates.in.strict.mode.</p>..... |
| 8fc0 | 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 6c 6f 61 74 5f 6d 6f 64 65 2e 7a 69 67 | ..<p.class="file">float_mode.zig |
| 8fe0 | 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 | </p><pre><code.class="zig">const |
| 9000 | 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 | .warn.=.@import("std") |
| 9020 | 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 65 78 74 65 72 6e 20 66 6e 20 66 6f 6f 5f 73 74 72 69 | .debug.warn;..extern.fn.foo_stri |
| 9040 | 63 74 28 78 3a 20 66 36 34 29 20 66 36 34 3b 0a 65 78 74 65 72 6e 20 66 6e 20 66 6f 6f 5f 6f 70 | ct(x:.f64).f64;.extern.fn.foo_op |
| 9060 | 74 69 6d 69 7a 65 64 28 78 3a 20 66 36 34 29 20 66 36 34 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 | timized(x:.f64).f64;..pub.fn.mai |
| 9080 | 6e 28 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 30 2e 30 30 31 3b 0a | n().void.{.....const.x.=.0.001;. |
| 90a0 | 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 6f 70 74 69 6d 69 7a 65 64 20 3d 20 7b 7d 5c 6e 26 | ....warn("optimized.=.{}\n& |
| 90c0 | 71 75 6f 74 3b 2c 20 66 6f 6f 5f 6f 70 74 69 6d 69 7a 65 64 28 78 29 29 3b 0a 20 20 20 20 77 61 | quot;,.foo_optimized(x));.....wa |
| 90e0 | 72 6e 28 26 71 75 6f 74 3b 73 74 72 69 63 74 20 3d 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 20 66 6f | rn("strict.=.{}\n",.fo |
| 9100 | 6f 5f 73 74 72 69 63 74 28 78 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 | o_strict(x));.}</code></pre><pre |
| 9120 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 | ><code.class="shell">$.zig.build |
| 9140 | 2d 65 78 65 20 66 6c 6f 61 74 5f 6d 6f 64 65 2e 7a 69 67 20 2d 2d 6f 62 6a 65 63 74 20 66 6f 6f | -exe.float_mode.zig.--object.foo |
| 9160 | 2e 6f 0a 24 20 2e 2f 66 6c 6f 61 74 5f 6d 6f 64 65 0a 6f 70 74 69 6d 69 7a 65 64 20 3d 20 31 2e | .o.$../float_mode.optimized.=.1. |
| 9180 | 30 65 2d 33 0a 73 74 72 69 63 74 20 3d 20 39 2e 37 36 35 36 32 35 65 2d 34 0a 3c 2f 63 6f 64 65 | 0e-3.strict.=.9.765625e-4.</code |
| 91a0 | 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c | ></pre>........<p>See.also:</p>< |
| 91c0 | 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e | ul>.<li><a.href="#setFloatMode"> |
| 91e0 | 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 | @setFloatMode</a></li>.<li><a.hr |
| 9200 | 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 | ef="#Division-by-Zero">Division. |
| 9220 | 62 79 20 5a 65 72 6f 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 | by.Zero</a></li>.</ul>.......... |
| 9240 | 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 4f 70 65 72 61 74 6f 72 73 22 3e 4f | ............<h1.id="Operators">O |
| 9260 | 70 65 72 61 74 6f 72 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 54 61 62 | perators</h1>........<h2.id="Tab |
| 9280 | 6c 65 2d 6f 66 2d 4f 70 65 72 61 74 6f 72 73 22 3e 54 61 62 6c 65 20 6f 66 20 4f 70 65 72 61 74 | le-of-Operators">Table.of.Operat |
| 92a0 | 6f 72 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c 61 73 73 3d 22 74 61 62 6c | ors</h2>........<div.class="tabl |
| 92c0 | 65 2d 77 72 61 70 70 65 72 22 3e 0a 20 20 20 20 20 20 3c 74 61 62 6c 65 3e 0a 20 20 20 20 20 20 | e-wrapper">.......<table>....... |
| 92e0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 | ..<tr>...........<th>........... |
| 9300 | 20 20 53 79 6e 74 61 78 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 | ..Syntax...........</th>........ |
| 9320 | 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 6c 65 76 61 6e 74 20 54 79 70 | ...<th>.............Relevant.Typ |
| 9340 | 65 73 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 | es...........</th>...........<th |
| 9360 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 44 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 | >.............Description....... |
| 9380 | 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 68 3e 0a 20 20 20 20 20 20 20 | ....</th>...........<th>........ |
| 93a0 | 20 20 20 20 20 45 78 61 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 68 3e 0a 20 20 20 | .....Example...........</th>.... |
| 93c0 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| 93e0 | 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2b | ..<td><pre><code.class="zig">a.+ |
| 9400 | 20 62 0a 61 20 2b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | .b.a.+=.b</code></pre></td>..... |
| 9420 | 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | ......<td>.............<ul>..... |
| 9440 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 | ..........<li><a.href="#Integers |
| 9460 | 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ">Integers</a></li>............. |
| 9480 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f | ..<li><a.href="#Floats">Floats</ |
| 94a0 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | a></li>.............</ul>....... |
| 94c0 | 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 41 64 64 69 74 69 6f 6e | ....</td>...........<td>Addition |
| 94e0 | 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............<ul>.............. |
| 9500 | 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 | .<li>Can.cause.<a.href="#Default |
| 9520 | 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e | -Operations">overflow</a>.for.in |
| 9540 | 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 | tegers.</li>.............</ul>.. |
| 9560 | 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 | .........</td>...........<td>... |
| 9580 | 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | ..........<pre><code.class="zig" |
| 95a0 | 3e 32 20 2b 20 35 20 3d 3d 20 37 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 | >2.+.5.==.7</code></pre>........ |
| 95c0 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ...</td>.........</tr>.........< |
| 95e0 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | tr>...........<td><pre><code.cla |
| 9600 | 73 73 3d 22 7a 69 67 22 3e 61 20 2b 25 20 62 0a 61 20 2b 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f | ss="zig">a.+%.b.a.+%=.b</code></ |
| 9620 | 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 | pre></td>...........<td>........ |
| 9640 | 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | .....<ul>...............<li><a.h |
| 9660 | 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 | ref="#Integers">Integers</a></li |
| 9680 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f | >.............</ul>...........</ |
| 96a0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 41 64 64 69 74 | td>...........<td>Wrapping.Addit |
| 96c0 | 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 | ion..............<ul>........... |
| 96e0 | 20 20 20 20 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 2d | ....<li>Guaranteed.to.have.twos- |
| 9700 | 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f 6c | complement.wrapping.behavior.</l |
| 9720 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | i>.............</ul>...........< |
| 9740 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| 9760 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 75 33 32 28 40 6d 61 78 56 | <pre><code.class="zig">u32(@maxV |
| 9780 | 61 6c 75 65 28 75 33 32 29 29 20 2b 25 20 31 20 3d 3d 20 30 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | alue(u32)).+%.1.==.0</code></pre |
| 97a0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a | >...........</td>.........</tr>. |
| 97c0 | 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e | ........<tr>...........<td><pre> |
| 97e0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2d 20 62 0a 61 20 2d 3d 20 62 3c 2f | <code.class="zig">a.-.b.a.-=.b</ |
| 9800 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a | code></pre></td>...........<td>. |
| 9820 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c | ............<ul>...............< |
| 9840 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c | li><a.href="#Integers">Integers< |
| 9860 | 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 | /a></li>...............<li><a.hr |
| 9880 | 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | ef="#Floats">Floats</a></li>.... |
| 98a0 | 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 | .........</ul>...........</td>.. |
| 98c0 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 53 75 62 74 72 61 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 | .........<td>Subtraction........ |
| 98e0 | 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e | ......<ul>...............<li>Can |
| 9900 | 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 | .cause.<a.href="#Default-Operati |
| 9920 | 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c | ons">overflow</a>.for.integers.< |
| 9940 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 | /li>.............</ul>.......... |
| 9960 | 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | .</td>...........<td>........... |
| 9980 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 32 20 2d 20 35 20 3d | ..<pre><code.class="zig">2.-.5.= |
| 99a0 | 3d 20 2d 33 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 | =.-3</code></pre>...........</td |
| 99c0 | 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 | >.........</tr>.........<tr>.... |
| 99e0 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | .......<td><pre><code.class="zig |
| 9a00 | 22 3e 61 20 2d 25 20 62 0a 61 20 2d 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 | ">a.-%.b.a.-%=.b</code></pre></t |
| 9a20 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 | d>...........<td>.............<u |
| 9a40 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 | l>...............<li><a.href="#I |
| 9a60 | 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ntegers">Integers</a></li>...... |
| 9a80 | 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | .......</ul>...........</td>.... |
| 9aa0 | 20 20 20 20 20 20 20 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 53 75 62 74 72 61 63 74 69 6f 6e 2e | .......<td>Wrapping.Subtraction. |
| 9ac0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............<ul>............... |
| 9ae0 | 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 2d 63 6f 6d 70 | <li>Guaranteed.to.have.twos-comp |
| 9b00 | 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 | lement.wrapping.behavior.</li>.. |
| 9b20 | 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e | ...........</ul>...........</td> |
| 9b40 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 | ...........<td>.............<pre |
| 9b60 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 75 33 32 28 30 29 20 2d 25 20 31 20 3d | ><code.class="zig">u32(0).-%.1.= |
| 9b80 | 3d 20 40 6d 61 78 56 61 6c 75 65 28 75 33 32 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | =.@maxValue(u32)</code></pre>... |
| 9ba0 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 | ........</td>.........</tr>..... |
| 9bc0 | 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 | ....<tr>...........<td><pre><cod |
| 9be0 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 | e.class="zig">-a<code></pre></td |
| 9c00 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c | >...........<td>.............<ul |
| 9c20 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e | >...............<li><a.href="#In |
| 9c40 | 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | tegers">Integers</a></li>....... |
| 9c60 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c | ........<li><a.href="#Floats">Fl |
| 9c80 | 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | oats</a></li>.............</ul>. |
| 9ca0 | 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 | ..........</td>...........<td>.. |
| 9cc0 | 20 20 20 20 20 20 20 20 20 20 20 4e 65 67 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 | ...........Negation............. |
| 9ce0 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 | .<ul>...............<li>Can.caus |
| 9d00 | 65 20 3c 61 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e | e.<a.href="#Default-Operations"> |
| 9d20 | 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a | overflow</a>.for.integers.</li>. |
| 9d40 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 | ............</ul>...........</td |
| 9d60 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 | >...........<td>.............<pr |
| 9d80 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 31 20 3d 3d 20 30 20 2d 20 31 3c | e><code.class="zig">-1.==.0.-.1< |
| 9da0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | /code></pre>...........</td>.... |
| 9dc0 | 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 | .....</tr>.........<tr>......... |
| 9de0 | 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 25 61 | ..<td><pre><code.class="zig">-%a |
| 9e00 | 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | <code></pre></td>...........<td> |
| 9e20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............<ul>............... |
| 9e40 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 | <li><a.href="#Integers">Integers |
| 9e60 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | </a></li>.............</ul>..... |
| 9e80 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 | ......</td>...........<td>...... |
| 9ea0 | 20 20 20 20 20 20 20 57 72 61 70 70 69 6e 67 20 4e 65 67 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 | .......Wrapping.Negation........ |
| 9ec0 | 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 47 75 61 | ......<ul>...............<li>Gua |
| 9ee0 | 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 | ranteed.to.have.twos-complement. |
| 9f00 | 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | wrapping.behavior.</li>......... |
| 9f20 | 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | ....</ul>...........</td>....... |
| 9f40 | 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | ....<td>.............<pre><code. |
| 9f60 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2d 25 69 33 32 28 40 6d 69 6e 56 61 6c 75 65 28 69 33 32 29 | class="zig">-%i32(@minValue(i32) |
| 9f80 | 29 20 3d 3d 20 40 6d 69 6e 56 61 6c 75 65 28 69 33 32 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | ).==.@minValue(i32)</code></pre> |
| 9fa0 | 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 | ...........</td>.........</tr>.. |
| 9fc0 | 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c | .......<tr>...........<td><pre>< |
| 9fe0 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2a 20 62 0a 61 20 2a 3d 20 62 3c 2f 63 | code.class="zig">a.*.b.a.*=.b</c |
| a000 | 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 | ode></pre></td>...........<td>.. |
| a020 | 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c | ...........<ul>...............<l |
| a040 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f | i><a.href="#Integers">Integers</ |
| a060 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | a></li>...............<li><a.hre |
| a080 | 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 | f="#Floats">Floats</a></li>..... |
| a0a0 | 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 | ........</ul>...........</td>... |
| a0c0 | 20 20 20 20 20 20 20 20 3c 74 64 3e 4d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 | ........<td>Multiplication...... |
| a0e0 | 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 | ........<ul>...............<li>C |
| a100 | 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 | an.cause.<a.href="#Default-Opera |
| a120 | 74 69 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 | tions">overflow</a>.for.integers |
| a140 | 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 | .</li>.............</ul>........ |
| a160 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 | ...</td>...........<td>......... |
| a180 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 32 20 2a 20 35 | ....<pre><code.class="zig">2.*.5 |
| a1a0 | 20 3d 3d 20 31 30 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f | .==.10</code></pre>...........</ |
| a1c0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 | td>.........</tr>.........<tr>.. |
| a1e0 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | .........<td><pre><code.class="z |
| a200 | 69 67 22 3e 61 20 2a 25 20 62 0a 61 20 2a 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c | ig">a.*%.b.a.*%=.b</code></pre>< |
| a220 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| a240 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | <ul>...............<li><a.href=" |
| a260 | 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | #Integers">Integers</a></li>.... |
| a280 | 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 | .........</ul>...........</td>.. |
| a2a0 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 57 72 61 70 70 69 6e 67 20 4d 75 6c 74 69 70 6c 69 63 61 | .........<td>Wrapping.Multiplica |
| a2c0 | 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 | tion..............<ul>.......... |
| a2e0 | 20 20 20 20 20 3c 6c 69 3e 47 75 61 72 61 6e 74 65 65 64 20 74 6f 20 68 61 76 65 20 74 77 6f 73 | .....<li>Guaranteed.to.have.twos |
| a300 | 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 77 72 61 70 70 69 6e 67 20 62 65 68 61 76 69 6f 72 2e 3c 2f | -complement.wrapping.behavior.</ |
| a320 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 | li>.............</ul>........... |
| a340 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </td>...........<td>............ |
| a360 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 75 38 28 32 30 30 29 20 | .<pre><code.class="zig">u8(200). |
| a380 | 2a 25 20 32 20 3d 3d 20 31 34 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 | *%.2.==.144</code></pre>........ |
| a3a0 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ...</td>.........</tr>.........< |
| a3c0 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | tr>...........<td><pre><code.cla |
| a3e0 | 73 73 3d 22 7a 69 67 22 3e 61 20 2f 20 62 0a 61 20 2f 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ss="zig">a./.b.a./=.b</code></pr |
| a400 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | e></td>...........<td>.......... |
| a420 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | ...<ul>...............<li><a.hre |
| a440 | 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | f="#Integers">Integers</a></li>. |
| a460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 | ..............<li><a.href="#Floa |
| a480 | 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ts">Floats</a></li>............. |
| a4a0 | 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | </ul>...........</td>........... |
| a4c0 | 3c 74 64 3e 44 69 76 69 73 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 | <td>Divison..............<ul>... |
| a4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 | ............<li>Can.cause.<a.hre |
| a500 | 66 3d 22 23 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 6f 76 65 72 66 6c 6f 77 | f="#Default-Operations">overflow |
| a520 | 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | </a>.for.integers.</li>......... |
| a540 | 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 | ......<li>Can.cause.<a.href="#Di |
| a560 | 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f | vision-by-Zero">Division.by.Zero |
| a580 | 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | </a>.for.integers.</li>......... |
| a5a0 | 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 | ......<li>Can.cause.<a.href="#Di |
| a5c0 | 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f | vision-by-Zero">Division.by.Zero |
| a5e0 | 3c 2f 61 3e 20 66 6f 72 20 66 6c 6f 61 74 73 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f | </a>.for.floats.in.<a.href="#Flo |
| a600 | 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 4d 6f 64 | ating-Point-Operations">FloatMod |
| a620 | 65 2e 4f 70 74 69 6d 69 7a 65 64 20 4d 6f 64 65 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | e.Optimized.Mode</a>.</li>...... |
| a640 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 6f 72 20 6e 6f 6e 2d 63 6f 6d 70 69 6c 65 2d 74 69 6d | .........<li>For.non-compile-tim |
| a660 | 65 2d 6b 6e 6f 77 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 2c 20 6d 75 73 74 20 75 73 | e-known.signed.integers,.must.us |
| a680 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 64 69 76 54 | e.................<a.href="#divT |
| a6a0 | 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | runc">@divTrunc</a>,............ |
| a6c0 | 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 64 69 76 46 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f | .....<a.href="#divFloor">@divFlo |
| a6e0 | 6f 72 3c 2f 61 3e 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 | or</a>,.or.................<a.hr |
| a700 | 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 3e 20 69 6e 73 | ef="#divExact">@divExact</a>.ins |
| a720 | 74 65 61 64 20 6f 66 20 3c 63 6f 64 65 3e 2f 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 | tead.of.<code>/</code>.......... |
| a740 | 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | ......</li>.............</ul>... |
| a760 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 | ........</td>...........<td>.... |
| a780 | 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | .........<pre><code.class="zig"> |
| a7a0 | 31 30 20 2f 20 35 20 3d 3d 20 32 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 | 10./.5.==.2</code></pre>........ |
| a7c0 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ...</td>.........</tr>.........< |
| a7e0 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | tr>...........<td><pre><code.cla |
| a800 | 73 73 3d 22 7a 69 67 22 3e 61 20 25 20 62 0a 61 20 25 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ss="zig">a.%.b.a.%=.b</code></pr |
| a820 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | e></td>...........<td>.......... |
| a840 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | ...<ul>...............<li><a.hre |
| a860 | 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | f="#Integers">Integers</a></li>. |
| a880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 | ..............<li><a.href="#Floa |
| a8a0 | 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ts">Floats</a></li>............. |
| a8c0 | 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | </ul>...........</td>........... |
| a8e0 | 3c 74 64 3e 52 65 6d 61 69 6e 64 65 72 20 44 69 76 69 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 | <td>Remainder.Division.......... |
| a900 | 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 | ....<ul>...............<li>Can.c |
| a920 | 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 | ause.<a.href="#Division-by-Zero" |
| a940 | 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 66 6f 72 20 69 6e 74 65 67 65 | >Division.by.Zero</a>.for.intege |
| a960 | 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 61 6e 20 63 | rs.</li>...............<li>Can.c |
| a980 | 61 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 | ause.<a.href="#Division-by-Zero" |
| a9a0 | 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 61 3e 20 66 6f 72 20 66 6c 6f 61 74 73 | >Division.by.Zero</a>.for.floats |
| a9c0 | 20 69 6e 20 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 | .in.<a.href="#Floating-Point-Ope |
| a9e0 | 72 61 74 69 6f 6e 73 22 3e 46 6c 6f 61 74 4d 6f 64 65 2e 4f 70 74 69 6d 69 7a 65 64 20 4d 6f 64 | rations">FloatMode.Optimized.Mod |
| aa00 | 65 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 6f | e</a>.</li>...............<li>Fo |
| aa20 | 72 20 6e 6f 6e 2d 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2d 6b 6e 6f 77 6e 20 73 69 67 6e 65 64 20 | r.non-compile-time-known.signed. |
| aa40 | 69 6e 74 65 67 65 72 73 2c 20 6d 75 73 74 20 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | integers,.must.use.............. |
| aa60 | 20 20 20 3c 61 20 68 72 65 66 3d 22 23 72 65 6d 22 3e 40 72 65 6d 3c 2f 61 3e 20 6f 72 0a 20 20 | ...<a.href="#rem">@rem</a>.or... |
| aa80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 6d 6f 64 22 3e 40 6d 6f | ..............<a.href="#mod">@mo |
| aaa0 | 64 3c 2f 61 3e 20 69 6e 73 74 65 61 64 20 6f 66 20 3c 63 6f 64 65 3e 25 3c 2f 63 6f 64 65 3e 2e | d</a>.instead.of.<code>%</code>. |
| aac0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | ...............</li>............ |
| aae0 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | .</ul>...........</td>.......... |
| ab00 | 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | .<td>.............<pre><code.cla |
| ab20 | 73 73 3d 22 7a 69 67 22 3e 31 30 20 25 20 33 20 3d 3d 20 31 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ss="zig">10.%.3.==.1</code></pre |
| ab40 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a | >...........</td>.........</tr>. |
| ab60 | 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e | ........<tr>...........<td><pre> |
| ab80 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 6c 74 3b 26 6c 74 3b 20 62 0a 61 | <code.class="zig">a.<<.b.a |
| aba0 | 20 26 6c 74 3b 26 6c 74 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 | .<<=.b</code></pre></td>.. |
| abc0 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 | .........<td>.............<ul>.. |
| abe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 | .............<li><a.href="#Integ |
| ac00 | 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ers">Integers</a></li>.......... |
| ac20 | 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | ...</ul>...........</td>........ |
| ac40 | 20 20 20 3c 74 64 3e 42 69 74 20 53 68 69 66 74 20 4c 65 66 74 2e 0a 20 20 20 20 20 20 20 20 20 | ...<td>Bit.Shift.Left........... |
| ac60 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 20 61 6c | ...<ul>...............<li>See.al |
| ac80 | 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 | so.<a.href="#shlExact">@shlExact |
| aca0 | 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 | </a>.</li>...............<li>See |
| acc0 | 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 | .also.<a.href="#shlWithOverflow" |
| ace0 | 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 | >@shlWithOverflow</a>.</li>..... |
| ad00 | 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 | ........</ul>...........</td>... |
| ad20 | 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | ........<td>.............<pre><c |
| ad40 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 31 20 26 6c 74 3b 26 6c 74 3b 20 38 20 3d 3d 20 | ode.class="zig">1.<<.8.==. |
| ad60 | 32 35 36 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e | 256</code></pre>...........</td> |
| ad80 | 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 | .........</tr>.........<tr>..... |
| ada0 | 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | ......<td><pre><code.class="zig" |
| adc0 | 3e 61 20 26 67 74 3b 26 67 74 3b 20 62 0a 61 20 26 67 74 3b 26 67 74 3b 3d 20 62 3c 2f 63 6f 64 | >a.>>.b.a.>>=.b</cod |
| ade0 | 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 | e></pre></td>...........<td>.... |
| ae00 | 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e | .........<ul>...............<li> |
| ae20 | 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e | <a.href="#Integers">Integers</a> |
| ae40 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 | </li>.............</ul>......... |
| ae60 | 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 20 53 68 69 66 74 20 | ..</td>...........<td>Bit.Shift. |
| ae80 | 52 69 67 68 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | Right..............<ul>......... |
| aea0 | 20 20 20 20 20 20 3c 6c 69 3e 53 65 65 20 61 6c 73 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 68 72 | ......<li>See.also.<a.href="#shr |
| aec0 | 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | Exact">@shrExact</a>.</li>...... |
| aee0 | 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | .......</ul>...........</td>.... |
| af00 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | .......<td>.............<pre><co |
| af20 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 31 30 20 26 67 74 3b 26 67 74 3b 20 31 20 3d 3d 20 | de.class="zig">10.>>.1.==. |
| af40 | 35 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 | 5</code></pre>...........</td>.. |
| af60 | 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 | .......</tr>.........<tr>....... |
| af80 | 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 | ....<td><pre><code.class="zig">a |
| afa0 | 20 26 61 6d 70 3b 20 62 0a 61 20 26 61 6d 70 3b 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | .&.b.a.&=.b</code></pre> |
| afc0 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </td>...........<td>............ |
| afe0 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | .<ul>...............<li><a.href= |
| b000 | 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 | "#Integers">Integers</a></li>... |
| b020 | 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a | ..........</ul>...........</td>. |
| b040 | 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 69 73 65 20 41 4e 44 2e 0a 20 20 20 20 20 | ..........<td>Bitwise.AND....... |
| b060 | 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 | .....</td>...........<td>....... |
| b080 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 30 62 30 | ......<pre><code.class="zig">0b0 |
| b0a0 | 31 31 20 26 61 6d 70 3b 20 30 62 31 30 31 20 3d 3d 20 30 62 30 30 31 3c 2f 63 6f 64 65 3e 3c 2f | 11.&.0b101.==.0b001</code></ |
| b0c0 | 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 | pre>...........</td>.........</t |
| b0e0 | 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 | r>.........<tr>...........<td><p |
| b100 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 7c 20 62 0a 61 20 7c 3d 20 | re><code.class="zig">a.|.b.a.|=. |
| b120 | 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | b</code></pre></td>...........<t |
| b140 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | d>.............<ul>............. |
| b160 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 | ..<li><a.href="#Integers">Intege |
| b180 | 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | rs</a></li>.............</ul>... |
| b1a0 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 42 69 74 77 | ........</td>...........<td>Bitw |
| b1c0 | 69 73 65 20 4f 52 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | ise.OR............</td>......... |
| b1e0 | 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | ..<td>.............<pre><code.cl |
| b200 | 61 73 73 3d 22 7a 69 67 22 3e 30 62 30 31 30 20 7c 20 30 62 31 30 30 20 3d 3d 20 30 62 31 31 30 | ass="zig">0b010.|.0b100.==.0b110 |
| b220 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 | </code></pre>...........</td>... |
| b240 | 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 | ......</tr>.........<tr>........ |
| b260 | 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 | ...<td><pre><code.class="zig">a. |
| b280 | 5e 20 62 0a 61 20 5e 3d 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 | ^.b.a.^=.b</code></pre></td>.... |
| b2a0 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 | .......<td>.............<ul>.... |
| b2c0 | 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 | ...........<li><a.href="#Integer |
| b2e0 | 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | s">Integers</a></li>............ |
| b300 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | .</ul>...........</td>.......... |
| b320 | 20 3c 74 64 3e 42 69 74 77 69 73 65 20 58 4f 52 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 | .<td>Bitwise.XOR............</td |
| b340 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 | >...........<td>.............<pr |
| b360 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 30 62 30 31 31 20 5e 20 30 62 31 30 | e><code.class="zig">0b011.^.0b10 |
| b380 | 31 20 3d 3d 20 30 62 31 31 30 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 | 1.==.0b110</code></pre>......... |
| b3a0 | 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | ..</td>.........</tr>.........<t |
| b3c0 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | r>...........<td><pre><code.clas |
| b3e0 | 73 3d 22 7a 69 67 22 3e 7e 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | s="zig">~a<code></pre></td>..... |
| b400 | 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | ......<td>.............<ul>..... |
| b420 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 | ..........<li><a.href="#Integers |
| b440 | 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ">Integers</a></li>............. |
| b460 | 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | </ul>...........</td>........... |
| b480 | 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 69 74 77 69 73 65 20 4e 4f 54 2e 0a 20 20 | <td>.............Bitwise.NOT.... |
| b4a0 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 | ........</td>...........<td>.... |
| b4c0 | 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | .........<pre><code.class="zig"> |
| b4e0 | 7e 75 38 28 30 62 30 31 30 31 31 31 31 29 20 3d 3d 20 30 62 31 30 31 30 30 30 30 3c 2f 63 6f 64 | ~u8(0b0101111).==.0b1010000</cod |
| b500 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | e></pre>...........</td>........ |
| b520 | 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | .</tr>.........<tr>...........<t |
| b540 | 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3f 3f 20 62 3c | d><pre><code.class="zig">a.??.b< |
| b560 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | /code></pre></td>...........<td> |
| b580 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............<ul>............... |
| b5a0 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c | <li><a.href="#Nullables">Nullabl |
| b5c0 | 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | es</a></li>.............</ul>... |
| b5e0 | 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 49 66 20 3c | ........</td>...........<td>If.< |
| b600 | 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 | code>a</code>.is.<code>null</cod |
| b620 | 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 62 3c | e>,.............returns.<code>b< |
| b640 | 2f 63 6f 64 65 3e 20 28 22 64 65 66 61 75 6c 74 20 76 61 6c 75 65 22 29 2c 0a 20 20 20 20 20 20 | /code>.("default.value"),....... |
| b660 | 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 74 68 65 20 75 6e 77 72 | ......otherwise.returns.the.unwr |
| b680 | 61 70 70 65 64 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 2e 0a 20 | apped.value.of.<code>a</code>... |
| b6a0 | 20 20 20 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f | ...........Note.that.<code>b</co |
| b6c0 | 64 65 3e 20 6d 61 79 20 62 65 20 61 20 76 61 6c 75 65 20 6f 66 20 74 79 70 65 20 3c 61 20 68 72 | de>.may.be.a.value.of.type.<a.hr |
| b6e0 | 65 66 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 61 3e 2e 0a 20 20 20 | ef="#noreturn">noreturn</a>..... |
| b700 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 | .......</td>...........<td>..... |
| b720 | 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 | ........<pre><code.class="zig">c |
| b740 | 6f 6e 73 74 20 76 61 6c 75 65 3a 20 3f 75 33 32 20 3d 20 6e 75 6c 6c 3b 0a 63 6f 6e 73 74 20 75 | onst.value:.?u32.=.null;.const.u |
| b760 | 6e 77 72 61 70 70 65 64 20 3d 20 76 61 6c 75 65 20 3f 3f 20 31 32 33 34 3b 0a 75 6e 77 72 61 70 | nwrapped.=.value.??.1234;.unwrap |
| b780 | 70 65 64 20 3d 3d 20 31 32 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 | ped.==.1234</code></pre>........ |
| b7a0 | 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c | ...</td>.........</tr>.........< |
| b7c0 | 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | tr>...........<td><pre><code.cla |
| b7e0 | 73 73 3d 22 7a 69 67 22 3e 3f 3f 61 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 | ss="zig">??a</code></pre></td>.. |
| b800 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 | .........<td>.............<ul>.. |
| b820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4e 75 6c 6c 61 | .............<li><a.href="#Nulla |
| b840 | 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | bles">Nullables</a></li>........ |
| b860 | 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 | .....</ul>...........</td>...... |
| b880 | 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 71 75 69 76 61 6c 65 6e 74 | .....<td>.............Equivalent |
| b8a0 | 20 74 6f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | .to:.............<pre><code.clas |
| b8c0 | 73 3d 22 7a 69 67 22 3e 61 20 3f 3f 20 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 3c | s="zig">a.??.unreachable</code>< |
| b8e0 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | /pre>...........</td>........... |
| b900 | 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | <td>.............<pre><code.clas |
| b920 | 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 76 61 6c 75 65 3a 20 3f 75 33 32 20 3d 20 35 36 37 38 | s="zig">const.value:.?u32.=.5678 |
| b940 | 3b 0a 3f 3f 76 61 6c 75 65 20 3d 3d 20 35 36 37 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | ;.??value.==.5678</code></pre>.. |
| b960 | 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 | .........</td>.........</tr>.... |
| b980 | 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f | .....<tr>...........<td><pre><co |
| b9a0 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 63 61 74 63 68 20 62 0a 61 20 63 61 74 63 68 | de.class="zig">a.catch.b.a.catch |
| b9c0 | 20 7c 65 72 72 7c 20 62 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 | .|err|.b</code></pre></td>...... |
| b9e0 | 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 | .....<td>.............<ul>...... |
| ba00 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e 45 | .........<li><a.href="#Errors">E |
| ba20 | 72 72 6f 72 20 55 6e 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | rror.Unions</a></li>............ |
| ba40 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | .</ul>...........</td>.......... |
| ba60 | 20 3c 74 64 3e 49 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 3c 63 6f | .<td>If.<code>a</code>.is.an.<co |
| ba80 | 64 65 3e 65 72 72 6f 72 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 | de>error</code>,.............ret |
| baa0 | 75 72 6e 73 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 28 22 64 65 66 61 75 6c 74 20 76 61 | urns.<code>b</code>.("default.va |
| bac0 | 6c 75 65 22 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 | lue"),.............otherwise.ret |
| bae0 | 75 72 6e 73 20 74 68 65 20 75 6e 77 72 61 70 70 65 64 20 76 61 6c 75 65 20 6f 66 20 3c 63 6f 64 | urns.the.unwrapped.value.of.<cod |
| bb00 | 65 3e 61 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 | e>a</code>..............Note.tha |
| bb20 | 74 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 6d 61 79 20 62 65 20 61 20 76 61 6c 75 65 20 | t.<code>b</code>.may.be.a.value. |
| bb40 | 6f 66 20 74 79 70 65 20 3c 61 20 68 72 65 66 3d 22 23 6e 6f 72 65 74 75 72 6e 22 3e 6e 6f 72 65 | of.type.<a.href="#noreturn">nore |
| bb60 | 74 75 72 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 65 72 72 3c | turn</a>..............<code>err< |
| bb80 | 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 3c 63 6f 64 65 3e 65 72 72 6f 72 3c 2f 63 6f 64 65 3e | /code>.is.the.<code>error</code> |
| bba0 | 20 61 6e 64 20 69 73 20 69 6e 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 | .and.is.in.scope.of.the.expressi |
| bbc0 | 6f 6e 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 | on.<code>b</code>............</t |
| bbe0 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 | d>...........<td>.............<p |
| bc00 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 76 61 6c 75 65 | re><code.class="zig">const.value |
| bc20 | 3a 20 65 72 72 6f 72 21 75 33 32 20 3d 20 65 72 72 6f 72 2e 42 72 6f 6b 65 6e 3b 0a 63 6f 6e 73 | :.error!u32.=.error.Broken;.cons |
| bc40 | 74 20 75 6e 77 72 61 70 70 65 64 20 3d 20 76 61 6c 75 65 20 63 61 74 63 68 20 31 32 33 34 3b 0a | t.unwrapped.=.value.catch.1234;. |
| bc60 | 75 6e 77 72 61 70 70 65 64 20 3d 3d 20 31 32 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | unwrapped.==.1234</code></pre>.. |
| bc80 | 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 | .........</td>.........</tr>.... |
| bca0 | 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f | .....<tr>...........<td><pre><co |
| bcc0 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 61 6e 64 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 | de.class="zig">a.and.b<code></pr |
| bce0 | 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | e></td>...........<td>.......... |
| bd00 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 | ...<ul>...............<li><a.hre |
| bd20 | 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c | f="#Primitive-Types">bool</a></l |
| bd40 | 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | i>.............</ul>...........< |
| bd60 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| bd80 | 49 66 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 | If.<code>a</code>.is.<code>false |
| bda0 | 3c 2f 63 6f 64 65 3e 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f | </code>,.returns.<code>false</co |
| bdc0 | 64 65 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 6f 75 74 20 65 76 61 6c 75 61 74 69 | de>.............without.evaluati |
| bde0 | 6e 67 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 | ng.<code>b</code>..Otherwise,.re |
| be00 | 74 75 6e 73 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c | tuns.<code>b</code>............< |
| be20 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| be40 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 61 6c 73 65 20 61 6e 64 | <pre><code.class="zig">false.and |
| be60 | 20 74 72 75 65 20 3d 3d 20 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | .true.==.false</code></pre>..... |
| be80 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | ......</td>.........</tr>....... |
| bea0 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 | ..<tr>...........<td><pre><code. |
| bec0 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 6f 72 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f | class="zig">a.or.b<code></pre></ |
| bee0 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | td>...........<td>.............< |
| bf00 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | ul>...............<li><a.href="# |
| bf20 | 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | Primitive-Types">bool</a></li>.. |
| bf40 | 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e | ...........</ul>...........</td> |
| bf60 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 66 20 3c | ...........<td>.............If.< |
| bf80 | 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e 20 69 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 | code>a</code>.is.<code>true</cod |
| bfa0 | 65 3e 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 0a 20 20 | e>,.returns.<code>true</code>... |
| bfc0 | 20 20 20 20 20 20 20 20 20 20 77 69 74 68 6f 75 74 20 65 76 61 6c 75 61 74 69 6e 67 20 3c 63 6f | ..........without.evaluating.<co |
| bfe0 | 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 6e 73 20 3c | de>b</code>..Otherwise,.retuns.< |
| c000 | 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 | code>b</code>............</td>.. |
| c020 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c | .........<td>.............<pre>< |
| c040 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 61 6c 73 65 20 6f 72 20 74 72 75 65 20 3d | code.class="zig">false.or.true.= |
| c060 | 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f | =.true</code></pre>...........</ |
| c080 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 | td>.........</tr>.........<tr>.. |
| c0a0 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | .........<td><pre><code.class="z |
| c0c0 | 69 67 22 3e 21 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | ig">!a<code></pre></td>......... |
| c0e0 | 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 | ..<td>.............<ul>......... |
| c100 | 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 | ......<li><a.href="#Primitive-Ty |
| c120 | 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | pes">bool</a></li>.............< |
| c140 | 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | /ul>...........</td>...........< |
| c160 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 42 6f 6f 6c 65 61 6e 20 4e 4f 54 2e 0a 20 20 20 | td>.............Boolean.NOT..... |
| c180 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 | .......</td>...........<td>..... |
| c1a0 | 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 21 | ........<pre><code.class="zig">! |
| c1c0 | 66 61 6c 73 65 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | false.==.true</code></pre>...... |
| c1e0 | 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 | .....</td>.........</tr>........ |
| c200 | 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | .<tr>...........<td><pre><code.c |
| c220 | 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 3d 3d 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 | lass="zig">a.==.b<code></pre></t |
| c240 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 | d>...........<td>.............<u |
| c260 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 | l>...............<li><a.href="#I |
| c280 | 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ntegers">Integers</a></li>...... |
| c2a0 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 | .........<li><a.href="#Floats">F |
| c2c0 | 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 | loats</a></li>...............<li |
| c2e0 | 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c | ><a.href="#Primitive-Types">bool |
| c300 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 | </a></li>...............<li><a.h |
| c320 | 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 74 79 70 65 3c 2f 61 3e 3c | ref="#Primitive-Types">type</a>< |
| c340 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 | /li>.............</ul>.......... |
| c360 | 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | .</td>...........<td>........... |
| c380 | 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 | ..Returns.<code>true</code>.if.a |
| c3a0 | 20 61 6e 64 20 62 20 61 72 65 20 65 71 75 61 6c 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 | .and.b.are.equal,.otherwise.retu |
| c3c0 | 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 | rns.<code>false</code>.......... |
| c3e0 | 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 | ..</td>...........<td>.......... |
| c400 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 3d 3d 20 | ...<pre><code.class="zig">(1.==. |
| c420 | 31 29 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 | 1).==.true</code></pre>......... |
| c440 | 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 | ..</td>.........</tr>.........<t |
| c460 | 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | r>...........<td><pre><code.clas |
| c480 | 73 3d 22 7a 69 67 22 3e 61 20 3d 3d 20 6e 75 6c 6c 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 | s="zig">a.==.null<code></pre></t |
| c4a0 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 | d>...........<td>.............<u |
| c4c0 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4e | l>...............<li><a.href="#N |
| c4e0 | 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 | ullables">Nullables</a></li>.... |
| c500 | 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 | .........</ul>...........</td>.. |
| c520 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e | .........<td>.............Return |
| c540 | 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 3c 63 6f 64 | s.<code>true</code>.if.a.is.<cod |
| c560 | 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 65 3e 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 | e>null</code>,.otherwise.returns |
| c580 | 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c | .<code>false</code>............< |
| c5a0 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| c5c0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 76 61 6c | <pre><code.class="zig">const.val |
| c5e0 | 75 65 3a 20 3f 75 33 32 20 3d 20 6e 75 6c 6c 3b 0a 76 61 6c 75 65 20 3d 3d 20 6e 75 6c 6c 3c 2f | ue:.?u32.=.null;.value.==.null</ |
| c600 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 | code></pre>...........</td>..... |
| c620 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| c640 | 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 21 3d | .<td><pre><code.class="zig">a.!= |
| c660 | 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | .b<code></pre></td>...........<t |
| c680 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | d>.............<ul>............. |
| c6a0 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 | ..<li><a.href="#Integers">Intege |
| c6c0 | 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | rs</a></li>...............<li><a |
| c6e0 | 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | .href="#Floats">Floats</a></li>. |
| c700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d | ..............<li><a.href="#Prim |
| c720 | 69 74 69 76 65 2d 54 79 70 65 73 22 3e 62 6f 6f 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | itive-Types">bool</a></li>...... |
| c740 | 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 | .........<li><a.href="#Primitive |
| c760 | 2d 54 79 70 65 73 22 3e 74 79 70 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | -Types">type</a></li>........... |
| c780 | 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | ..</ul>...........</td>......... |
| c7a0 | 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 | ..<td>.............Returns.<code |
| c7c0 | 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 61 6e 64 20 62 20 61 72 65 20 65 71 75 | >false</code>.if.a.and.b.are.equ |
| c7e0 | 61 6c 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 | al,.otherwise.returns.<code>true |
| c800 | 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 | </code>............</td>........ |
| c820 | 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | ...<td>.............<pre><code.c |
| c840 | 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 21 3d 20 31 29 20 3d 3d 20 66 61 6c 73 65 3c 2f 63 6f | lass="zig">(1.!=.1).==.false</co |
| c860 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 | de></pre>...........</td>....... |
| c880 | 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | ..</tr>.........<tr>...........< |
| c8a0 | 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 67 74 3b | td><pre><code.class="zig">a.> |
| c8c0 | 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | .b<code></pre></td>...........<t |
| c8e0 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | d>.............<ul>............. |
| c900 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 | ..<li><a.href="#Integers">Intege |
| c920 | 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 | rs</a></li>...............<li><a |
| c940 | 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | .href="#Floats">Floats</a></li>. |
| c960 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 | ............</ul>...........</td |
| c980 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 | >...........<td>.............Ret |
| c9a0 | 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 67 | urns.<code>true</code>.if.a.is.g |
| c9c0 | 72 65 61 74 65 72 20 74 68 61 6e 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 | reater.than.b,.otherwise.returns |
| c9e0 | 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c | .<code>false</code>............< |
| ca00 | 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /td>...........<td>............. |
| ca20 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 32 20 26 67 74 3b 20 31 | <pre><code.class="zig">(2.>.1 |
| ca40 | 29 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 | ).==.true</code></pre>.......... |
| ca60 | 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 | .</td>.........</tr>.........<tr |
| ca80 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | >...........<td><pre><code.class |
| caa0 | 3d 22 7a 69 67 22 3e 61 20 26 67 74 3b 3d 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 | ="zig">a.>=.b<code></pre></td |
| cac0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c | >...........<td>.............<ul |
| cae0 | 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e | >...............<li><a.href="#In |
| cb00 | 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | tegers">Integers</a></li>....... |
| cb20 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c | ........<li><a.href="#Floats">Fl |
| cb40 | 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | oats</a></li>.............</ul>. |
| cb60 | 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 | ..........</td>...........<td>.. |
| cb80 | 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 | ...........Returns.<code>true</c |
| cba0 | 6f 64 65 3e 20 69 66 20 61 20 69 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 6f 72 20 65 71 75 | ode>.if.a.is.greater.than.or.equ |
| cbc0 | 61 6c 20 74 6f 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 | al.to.b,.otherwise.returns.<code |
| cbe0 | 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 | >false</code>............</td>.. |
| cc00 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c | .........<td>.............<pre>< |
| cc20 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 32 20 26 67 74 3b 3d 20 31 29 20 3d 3d 20 | code.class="zig">(2.>=.1).==. |
| cc40 | 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 | true</code></pre>...........</td |
| cc60 | 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 | >.........</tr>.........<tr>.... |
| cc80 | 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | .......<td><pre><code.class="zig |
| cca0 | 22 3e 61 20 26 6c 74 3b 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | ">a.<.b<code></pre></td>..... |
| ccc0 | 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | ......<td>.............<ul>..... |
| cce0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6e 74 65 67 65 72 73 | ..........<li><a.href="#Integers |
| cd00 | 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ">Integers</a></li>............. |
| cd20 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 73 22 3e 46 6c 6f 61 74 73 3c 2f | ..<li><a.href="#Floats">Floats</ |
| cd40 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | a></li>.............</ul>....... |
| cd60 | 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 | ....</td>...........<td>........ |
| cd80 | 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 20 69 | .....Returns.<code>true</code>.i |
| cda0 | 66 20 61 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 | f.a.is.less.than.b,.otherwise.re |
| cdc0 | 74 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 | turns.<code>false</code>........ |
| cde0 | 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 | ....</td>...........<td>........ |
| ce00 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 26 | .....<pre><code.class="zig">(1.& |
| ce20 | 6c 74 3b 20 32 29 20 3d 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | lt;.2).==.true</code></pre>..... |
| ce40 | 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 | ......</td>.........</tr>....... |
| ce60 | 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 | ..<tr>...........<td><pre><code. |
| ce80 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 26 6c 74 3b 3d 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 | class="zig">a.<=.b<code></pre |
| cea0 | 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 | ></td>...........<td>........... |
| cec0 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 | ..<ul>...............<li><a.href |
| cee0 | 3d 22 23 49 6e 74 65 67 65 72 73 22 3e 49 6e 74 65 67 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 | ="#Integers">Integers</a></li>.. |
| cf00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 46 6c 6f 61 74 | .............<li><a.href="#Float |
| cf20 | 73 22 3e 46 6c 6f 61 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | s">Floats</a></li>.............< |
| cf40 | 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c | /ul>...........</td>...........< |
| cf60 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 | td>.............Returns.<code>tr |
| cf80 | 75 65 3c 2f 63 6f 64 65 3e 20 69 66 20 61 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 6f 72 20 65 | ue</code>.if.a.is.less.than.or.e |
| cfa0 | 71 75 61 6c 20 74 6f 20 62 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 3c 63 6f | qual.to.b,.otherwise.returns.<co |
| cfc0 | 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e | de>false</code>............</td> |
| cfe0 | 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 | ...........<td>.............<pre |
| d000 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 28 31 20 26 6c 74 3b 3d 20 32 29 20 3d | ><code.class="zig">(1.<=.2).= |
| d020 | 3d 20 74 72 75 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f | =.true</code></pre>...........</ |
| d040 | 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 | td>.........</tr>.........<tr>.. |
| d060 | 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | .........<td><pre><code.class="z |
| d080 | 69 67 22 3e 61 20 2b 2b 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 | ig">a.++.b<code></pre></td>..... |
| d0a0 | 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | ......<td>.............<ul>..... |
| d0c0 | 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e | ..........<li><a.href="#Arrays"> |
| d0e0 | 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c | Arrays</a></li>.............</ul |
| d100 | 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e | >...........</td>...........<td> |
| d120 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 72 72 61 79 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e | .............Array.concatenation |
| d140 | 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............<ul>.............. |
| d160 | 20 3c 6c 69 3e 4f 6e 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 3c 63 6f 64 65 3e 61 | .<li>Only.available.when.<code>a |
| d180 | 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 61 72 65 20 3c | </code>.and.<code>b</code>.are.< |
| d1a0 | 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 | a.href="#comptime">compile-time. |
| d1c0 | 6b 6e 6f 77 6e 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 | known</a>..............</ul>.... |
| d1e0 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 | .......</td>...........<td>..... |
| d200 | 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 | ........<pre><code.class="zig">c |
| d220 | 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a 63 | onst.mem.=.@import("std").mem;.c |
| d240 | 6f 6e 73 74 20 61 72 72 61 79 31 20 3d 20 5b 5d 75 33 32 7b 31 2c 32 7d 3b 0a 63 6f 6e 73 74 20 | onst.array1.=.[]u32{1,2};.const. |
| d260 | 61 72 72 61 79 32 20 3d 20 5b 5d 75 33 32 7b 33 2c 34 7d 3b 0a 63 6f 6e 73 74 20 74 6f 67 65 74 | array2.=.[]u32{3,4};.const.toget |
| d280 | 68 65 72 20 3d 20 61 72 72 61 79 31 20 2b 2b 20 61 72 72 61 79 32 3b 0a 6d 65 6d 2e 65 71 6c 28 | her.=.array1.++.array2;.mem.eql( |
| d2a0 | 75 33 32 2c 20 74 6f 67 65 74 68 65 72 2c 20 5b 5d 75 33 32 7b 31 2c 32 2c 33 2c 34 7d 29 3c 2f | u32,.together,.[]u32{1,2,3,4})</ |
| d2c0 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 | code></pre>...........</td>..... |
| d2e0 | 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 | ....</tr>.........<tr>.......... |
| d300 | 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 61 20 2a 2a | .<td><pre><code.class="zig">a.** |
| d320 | 20 62 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 | .b<code></pre></td>...........<t |
| d340 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | d>.............<ul>............. |
| d360 | 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f | ..<li><a.href="#Arrays">Arrays</ |
| d380 | 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | a></li>.............</ul>....... |
| d3a0 | 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 | ....</td>...........<td>........ |
| d3c0 | 20 20 20 20 20 41 72 72 61 79 20 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 | .....Array.multiplication....... |
| d3e0 | 20 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e | .......<ul>...............<li>On |
| d400 | 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 77 68 65 6e 20 3c 63 6f 64 65 3e 61 3c 2f 63 6f 64 65 3e | ly.available.when.<code>a</code> |
| d420 | 20 61 6e 64 20 3c 63 6f 64 65 3e 62 3c 2f 63 6f 64 65 3e 20 61 72 65 20 3c 61 20 68 72 65 66 3d | .and.<code>b</code>.are.<a.href= |
| d440 | 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 3c 2f | "#comptime">compile-time.known</ |
| d460 | 61 3e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 | a>..............</ul>........... |
| d480 | 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 | </td>...........<td>............ |
| d4a0 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6d 65 | .<pre><code.class="zig">const.me |
| d4c0 | 6d 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a 63 6f 6e 73 74 20 70 61 | m.=.@import("std").mem;.const.pa |
| d4e0 | 74 74 65 72 6e 20 3d 20 22 61 62 22 20 2a 2a 20 33 3b 0a 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 70 | ttern.=."ab".**.3;.mem.eql(u8,.p |
| d500 | 61 74 74 65 72 6e 2c 20 22 61 62 61 62 61 62 22 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | attern,."ababab")</code></pre>.. |
| d520 | 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 | .........</td>.........</tr>.... |
| d540 | 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f | .....<tr>...........<td><pre><co |
| d560 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2a 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 | de.class="zig">*a<code></pre></t |
| d580 | 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 75 | d>...........<td>.............<u |
| d5a0 | 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 | l>...............<li><a.href="#P |
| d5c0 | 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ointers">Pointers</a></li>...... |
| d5e0 | 20 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | .......</ul>...........</td>.... |
| d600 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 6f 69 6e 74 65 72 20 | .......<td>.............Pointer. |
| d620 | 64 65 72 65 66 65 72 65 6e 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 | dereference............</td>.... |
| d640 | 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | .......<td>.............<pre><co |
| d660 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 78 3a 20 75 33 32 20 3d 20 31 32 | de.class="zig">const.x:.u32.=.12 |
| d680 | 33 34 3b 0a 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 2a 78 20 3d 3d 20 31 32 | 34;.const.ptr.=.&x;.*x.==.12 |
| d6a0 | 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a | 34</code></pre>...........</td>. |
| d6c0 | 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 20 20 3c 74 72 3e 0a 20 20 20 20 20 | ........</tr>.........<tr>...... |
| d6e0 | 20 20 20 20 20 3c 74 64 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | .....<td><pre><code.class="zig"> |
| d700 | 26 61 6d 70 3b 61 3c 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 | &a<code></pre></td>......... |
| d720 | 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 6c 6c 20 74 79 70 65 73 0a 20 20 20 | ..<td>.............All.types.... |
| d740 | 20 20 20 20 20 20 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 | .......</td>...........<td>..... |
| d760 | 20 20 20 20 20 20 20 20 41 64 64 72 65 73 73 20 6f 66 2e 0a 20 20 20 20 20 20 20 20 20 20 3c 2f | ........Address.of............</ |
| d780 | 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 74 64 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c | td>...........<td>.............< |
| d7a0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 78 3a 20 75 | pre><code.class="zig">const.x:.u |
| d7c0 | 33 32 20 3d 20 31 32 33 34 3b 0a 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 2a | 32.=.1234;.const.ptr.=.&x;.* |
| d7e0 | 78 20 3d 3d 20 31 32 33 34 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 20 20 20 | x.==.1234</code></pre>.......... |
| d800 | 20 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 2f 74 72 3e 0a 20 20 20 20 20 20 3c 2f 74 61 62 | .</td>.........</tr>.......</tab |
| d820 | 6c 65 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 | le>.......</div>..............<h |
| d840 | 32 20 69 64 3d 22 50 72 65 63 65 64 65 6e 63 65 22 3e 50 72 65 63 65 64 65 6e 63 65 3c 2f 68 32 | 2.id="Precedence">Precedence</h2 |
| d860 | 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 78 28 29 20 78 5b 5d 20 78 2e 79 0a | >........<pre><code>x().x[].x.y. |
| d880 | 61 21 62 0a 21 78 20 2d 78 20 2d 25 78 20 7e 78 20 2a 78 20 26 61 6d 70 3b 78 20 3f 78 20 3f 3f | a!b.!x.-x.-%x.~x.*x.&x.?x.?? |
| d8a0 | 78 0a 78 7b 7d 0a 21 20 2a 20 2f 20 25 20 2a 2a 20 2a 25 0a 2b 20 2d 20 2b 2b 20 2b 25 20 2d 25 | x.x{}.!.*./.%.**.*%.+.-.++.+%.-% |
| d8c0 | 0a 26 6c 74 3b 26 6c 74 3b 20 26 67 74 3b 26 67 74 3b 0a 26 61 6d 70 3b 0a 5e 0a 7c 0a 3d 3d 20 | .<<.>>.&.^.|.==. |
| d8e0 | 21 3d 20 26 6c 74 3b 20 26 67 74 3b 20 26 6c 74 3b 3d 20 26 67 74 3b 3d 0a 61 6e 64 0a 6f 72 0a | !=.<.>.<=.>=.and.or. |
| d900 | 3f 3f 20 63 61 74 63 68 0a 3d 20 2a 3d 20 2f 3d 20 25 3d 20 2b 3d 20 2d 3d 20 26 6c 74 3b 26 6c | ??.catch.=.*=./=.%=.+=.-=.<&l |
| d920 | 74 3b 3d 20 26 67 74 3b 26 67 74 3b 3d 20 26 61 6d 70 3b 3d 20 5e 3d 20 7c 3d 3c 2f 63 6f 64 65 | t;=.>>=.&=.^=.|=</code |
| d940 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 | ></pre>.....................<h1. |
| d960 | 69 64 3d 22 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c | id="Arrays">Arrays</h1>........< |
| d980 | 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 61 72 72 61 79 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 | p.class="file">arrays.zig</p><pr |
| d9a0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 | e><code.class="zig">const.assert |
| d9c0 | 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 | .=.@import("std").debu |
| d9e0 | 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 | g.assert;.const.mem.=.@import(&q |
| da00 | 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 6d 65 6d 3b 0a 0a 2f 2f 20 61 72 72 61 79 20 6c 69 | uot;std").mem;..//.array.li |
| da20 | 74 65 72 61 6c 0a 63 6f 6e 73 74 20 6d 65 73 73 61 67 65 20 3d 20 5b 5d 75 38 7b 27 68 27 2c 20 | teral.const.message.=.[]u8{'h',. |
| da40 | 27 65 27 2c 20 27 6c 27 2c 20 27 6c 27 2c 20 27 6f 27 7d 3b 0a 0a 2f 2f 20 67 65 74 20 74 68 65 | 'e',.'l',.'l',.'o'};..//.get.the |
| da60 | 20 73 69 7a 65 20 6f 66 20 61 6e 20 61 72 72 61 79 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 | .size.of.an.array.comptime.{.... |
| da80 | 20 61 73 73 65 72 74 28 6d 65 73 73 61 67 65 2e 6c 65 6e 20 3d 3d 20 35 29 3b 0a 7d 0a 0a 2f 2f | .assert(message.len.==.5);.}..// |
| daa0 | 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 20 69 73 20 61 6e 20 61 72 72 61 79 20 6c 69 | .a.string.literal.is.an.array.li |
| dac0 | 74 65 72 61 6c 0a 63 6f 6e 73 74 20 73 61 6d 65 5f 6d 65 73 73 61 67 65 20 3d 20 26 71 75 6f 74 | teral.const.same_message.=." |
| dae0 | 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3b 0a 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 | ;hello";..comptime.{.....as |
| db00 | 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 6d 65 73 73 61 67 65 2c 20 73 61 6d 65 5f 6d | sert(mem.eql(u8,.message,.same_m |
| db20 | 65 73 73 61 67 65 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6d 65 73 | essage));.....assert(@typeOf(mes |
| db40 | 73 61 67 65 29 20 3d 3d 20 40 74 79 70 65 4f 66 28 73 61 6d 65 5f 6d 65 73 73 61 67 65 29 29 3b | sage).==.@typeOf(same_message)); |
| db60 | 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 74 65 72 61 74 65 20 6f 76 65 72 20 61 6e 20 61 | .}..test."iterate.over.an.a |
| db80 | 72 72 61 79 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 20 73 75 6d 3a 20 75 73 69 7a 65 20 | rray".{.....var.sum:.usize. |
| dba0 | 3d 20 30 3b 0a 20 20 20 20 66 6f 72 20 28 6d 65 73 73 61 67 65 29 20 7c 62 79 74 65 7c 20 7b 0a | =.0;.....for.(message).|byte|.{. |
| dbc0 | 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 62 79 74 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 | ........sum.+=.byte;.....}.....a |
| dbe0 | 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 75 73 69 7a 65 28 27 68 27 29 20 2b 20 75 73 69 7a 65 28 | ssert(sum.==.usize('h').+.usize( |
| dc00 | 27 65 27 29 20 2b 20 75 73 69 7a 65 28 27 6c 27 29 20 2a 20 32 20 2b 20 75 73 69 7a 65 28 27 6f | 'e').+.usize('l').*.2.+.usize('o |
| dc20 | 27 29 29 3b 0a 7d 0a 0a 2f 2f 20 6d 6f 64 69 66 69 61 62 6c 65 20 61 72 72 61 79 0a 76 61 72 20 | '));.}..//.modifiable.array.var. |
| dc40 | 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 3a 20 5b 31 30 30 5d 69 33 32 20 3d 20 75 6e 64 65 66 69 | some_integers:.[100]i32.=.undefi |
| dc60 | 6e 65 64 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 6d 6f 64 69 66 79 20 61 6e 20 61 72 72 61 79 | ned;..test."modify.an.array |
| dc80 | 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 66 6f 72 20 28 73 6f 6d 65 5f 69 6e 74 65 67 65 72 73 29 | ".{.....for.(some_integers) |
| dca0 | 20 7c 2a 69 74 65 6d 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 2a 69 74 65 6d 20 3d 20 69 33 | .|*item,.i|.{.........*item.=.i3 |
| dcc0 | 32 28 69 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 6f 6d 65 5f 69 6e 74 65 | 2(i);.....}.....assert(some_inte |
| dce0 | 67 65 72 73 5b 31 30 5d 20 3d 3d 20 31 30 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6f 6d 65 | gers[10].==.10);.....assert(some |
| dd00 | 5f 69 6e 74 65 67 65 72 73 5b 39 39 5d 20 3d 3d 20 39 39 29 3b 0a 7d 0a 0a 2f 2f 20 61 72 72 61 | _integers[99].==.99);.}..//.arra |
| dd20 | 79 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 77 6f 72 6b 73 20 69 66 20 74 68 65 20 76 61 6c | y.concatenation.works.if.the.val |
| dd40 | 75 65 73 20 61 72 65 20 6b 6e 6f 77 6e 0a 2f 2f 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 | ues.are.known.//.at.compile.time |
| dd60 | 0a 63 6f 6e 73 74 20 70 61 72 74 5f 6f 6e 65 20 3d 20 5b 5d 69 33 32 7b 31 2c 20 32 2c 20 33 2c | .const.part_one.=.[]i32{1,.2,.3, |
| dd80 | 20 34 7d 3b 0a 63 6f 6e 73 74 20 70 61 72 74 5f 74 77 6f 20 3d 20 5b 5d 69 33 32 7b 35 2c 20 36 | .4};.const.part_two.=.[]i32{5,.6 |
| dda0 | 2c 20 37 2c 20 38 7d 3b 0a 63 6f 6e 73 74 20 61 6c 6c 5f 6f 66 5f 69 74 20 3d 20 70 61 72 74 5f | ,.7,.8};.const.all_of_it.=.part_ |
| ddc0 | 6f 6e 65 20 2b 2b 20 70 61 72 74 5f 74 77 6f 3b 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 | one.++.part_two;.comptime.{..... |
| dde0 | 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 69 33 32 2c 20 61 6c 6c 5f 6f 66 5f 69 74 2c 20 5b | assert(mem.eql(i32,.all_of_it,.[ |
| de00 | 5d 69 33 32 7b 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 7d 29 29 3b 0a 7d 0a 0a 2f 2f 20 72 | ]i32{1,2,3,4,5,6,7,8}));.}..//.r |
| de20 | 65 6d 65 6d 62 65 72 20 74 68 61 74 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 61 72 65 | emember.that.string.literals.are |
| de40 | 20 61 72 72 61 79 73 0a 63 6f 6e 73 74 20 68 65 6c 6c 6f 20 3d 20 26 71 75 6f 74 3b 68 65 6c 6c | .arrays.const.hello.=."hell |
| de60 | 6f 26 71 75 6f 74 3b 3b 0a 63 6f 6e 73 74 20 77 6f 72 6c 64 20 3d 20 26 71 75 6f 74 3b 77 6f 72 | o";.const.world.=."wor |
| de80 | 6c 64 26 71 75 6f 74 3b 3b 0a 63 6f 6e 73 74 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 20 3d 20 68 65 | ld";.const.hello_world.=.he |
| dea0 | 6c 6c 6f 20 2b 2b 20 26 71 75 6f 74 3b 20 26 71 75 6f 74 3b 20 2b 2b 20 77 6f 72 6c 64 3b 0a 63 | llo.++.".".++.world;.c |
| dec0 | 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c | omptime.{.....assert(mem.eql(u8, |
| dee0 | 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 2c 20 26 71 75 6f 74 3b 68 65 6c 6c 6f 20 77 6f 72 6c 64 26 | .hello_world,."hello.world& |
| df00 | 71 75 6f 74 3b 29 29 3b 0a 7d 0a 0a 2f 2f 20 2a 2a 20 64 6f 65 73 20 72 65 70 65 61 74 69 6e 67 | quot;));.}..//.**.does.repeating |
| df20 | 20 70 61 74 74 65 72 6e 73 0a 63 6f 6e 73 74 20 70 61 74 74 65 72 6e 20 3d 20 26 71 75 6f 74 3b | .patterns.const.pattern.=." |
| df40 | 61 62 26 71 75 6f 74 3b 20 2a 2a 20 33 3b 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 | ab".**.3;.comptime.{.....as |
| df60 | 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 70 61 74 74 65 72 6e 2c 20 26 71 75 6f 74 3b | sert(mem.eql(u8,.pattern,." |
| df80 | 61 62 61 62 61 62 26 71 75 6f 74 3b 29 29 3b 0a 7d 0a 0a 2f 2f 20 69 6e 69 74 69 61 6c 69 7a 65 | ababab"));.}..//.initialize |
| dfa0 | 20 61 6e 20 61 72 72 61 79 20 74 6f 20 7a 65 72 6f 0a 63 6f 6e 73 74 20 61 6c 6c 5f 7a 65 72 6f | .an.array.to.zero.const.all_zero |
| dfc0 | 20 3d 20 5b 5d 75 31 36 7b 30 7d 20 2a 2a 20 31 30 3b 0a 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 | .=.[]u16{0}.**.10;..comptime.{.. |
| dfe0 | 20 20 20 61 73 73 65 72 74 28 61 6c 6c 5f 7a 65 72 6f 2e 6c 65 6e 20 3d 3d 20 31 30 29 3b 0a 20 | ...assert(all_zero.len.==.10);.. |
| e000 | 20 20 20 61 73 73 65 72 74 28 61 6c 6c 5f 7a 65 72 6f 5b 35 5d 20 3d 3d 20 30 29 3b 0a 7d 0a 0a | ...assert(all_zero[5].==.0);.}.. |
| e020 | 2f 2f 20 75 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 64 65 20 74 6f 20 69 6e 69 74 | //.use.compile-time.code.to.init |
| e040 | 69 61 6c 69 7a 65 20 61 6e 20 61 72 72 61 79 0a 76 61 72 20 66 61 6e 63 79 5f 61 72 72 61 79 20 | ialize.an.array.var.fancy_array. |
| e060 | 3d 20 69 6e 69 74 3a 20 7b 0a 20 20 20 20 76 61 72 20 69 6e 69 74 69 61 6c 5f 76 61 6c 75 65 3a | =.init:.{.....var.initial_value: |
| e080 | 20 5b 31 30 5d 50 6f 69 6e 74 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 66 6f 72 20 | .[10]Point.=.undefined;.....for. |
| e0a0 | 28 69 6e 69 74 69 61 6c 5f 76 61 6c 75 65 29 20 7c 2a 70 74 2c 20 69 7c 20 7b 0a 20 20 20 20 20 | (initial_value).|*pt,.i|.{...... |
| e0c0 | 20 20 20 2a 70 74 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 78 20 | ...*pt.=.Point.{..............x. |
| e0e0 | 3d 20 69 33 32 28 69 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 79 20 3d 20 69 33 32 28 69 | =.i32(i),..............y.=.i32(i |
| e100 | 29 20 2a 20 32 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 7d 0a 20 20 20 20 62 72 65 61 | ).*.2,.........};.....}.....brea |
| e120 | 6b 20 3a 69 6e 69 74 20 69 6e 69 74 69 61 6c 5f 76 61 6c 75 65 3b 0a 7d 3b 0a 63 6f 6e 73 74 20 | k.:init.initial_value;.};.const. |
| e140 | 50 6f 69 6e 74 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 3a 20 69 33 32 2c 0a 20 20 20 | Point.=.struct.{.....x:.i32,.... |
| e160 | 20 79 3a 20 69 33 32 2c 0a 7d 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 63 6f 6d 70 69 6c 65 2d | .y:.i32,.};..test."compile- |
| e180 | 74 69 6d 65 20 61 72 72 61 79 20 69 6e 69 74 61 6c 69 7a 61 74 69 6f 6e 26 71 75 6f 74 3b 20 7b | time.array.initalization".{ |
| e1a0 | 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b 34 5d 2e 78 20 3d 3d 20 | .....assert(fancy_array[4].x.==. |
| e1c0 | 34 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6e 63 79 5f 61 72 72 61 79 5b 34 5d 2e 79 20 | 4);.....assert(fancy_array[4].y. |
| e1e0 | 3d 3d 20 38 29 3b 0a 7d 0a 0a 2f 2f 20 63 61 6c 6c 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 | ==.8);.}..//.call.a.function.to. |
| e200 | 69 6e 69 74 69 61 6c 69 7a 65 20 61 6e 20 61 72 72 61 79 0a 76 61 72 20 6d 6f 72 65 5f 70 6f 69 | initialize.an.array.var.more_poi |
| e220 | 6e 74 73 20 3d 20 5b 5d 50 6f 69 6e 74 7b 6d 61 6b 65 50 6f 69 6e 74 28 33 29 7d 20 2a 2a 20 31 | nts.=.[]Point{makePoint(3)}.**.1 |
| e240 | 30 3b 0a 66 6e 20 6d 61 6b 65 50 6f 69 6e 74 28 78 3a 20 69 33 32 29 20 50 6f 69 6e 74 20 7b 0a | 0;.fn.makePoint(x:.i32).Point.{. |
| e260 | 20 20 20 20 72 65 74 75 72 6e 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 2e 78 20 3d 20 | ....return.Point.{..........x.=. |
| e280 | 78 2c 0a 20 20 20 20 20 20 20 20 2e 79 20 3d 20 78 20 2a 20 32 2c 0a 20 20 20 20 7d 3b 0a 7d 0a | x,..........y.=.x.*.2,.....};.}. |
| e2a0 | 74 65 73 74 20 26 71 75 6f 74 3b 61 72 72 61 79 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 | test."array.initialization. |
| e2c0 | 77 69 74 68 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 | with.function.calls".{..... |
| e2e0 | 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 6f 69 6e 74 73 5b 34 5d 2e 78 20 3d 3d 20 33 29 3b 0a 20 | assert(more_points[4].x.==.3);.. |
| e300 | 20 20 20 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 6f 69 6e 74 73 5b 34 5d 2e 79 20 3d 3d 20 36 29 | ...assert(more_points[4].y.==.6) |
| e320 | 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 6f 72 65 5f 70 6f 69 6e 74 73 2e 6c 65 6e 20 3d 3d 20 | ;.....assert(more_points.len.==. |
| e340 | 31 30 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | 10);.}</code></pre><pre><code.cl |
| e360 | 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 61 72 72 61 79 73 2e 7a 69 | ass="shell">$.zig.test.arrays.zi |
| e380 | 67 0a 54 65 73 74 20 31 2f 34 20 69 74 65 72 61 74 65 20 6f 76 65 72 20 61 6e 20 61 72 72 61 79 | g.Test.1/4.iterate.over.an.array |
| e3a0 | 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 34 20 6d 6f 64 69 66 79 20 61 6e 20 61 72 72 61 79 2e 2e | ...OK.Test.2/4.modify.an.array.. |
| e3c0 | 2e 4f 4b 0a 54 65 73 74 20 33 2f 34 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 72 72 61 79 20 | .OK.Test.3/4.compile-time.array. |
| e3e0 | 69 6e 69 74 61 6c 69 7a 61 74 69 6f 6e 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 34 20 61 72 72 61 | initalization...OK.Test.4/4.arra |
| e400 | 79 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 77 69 74 68 20 66 75 6e 63 74 69 6f 6e 20 63 | y.initialization.with.function.c |
| e420 | 61 6c 6c 73 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c | alls...OK.</code></pre>........< |
| e440 | 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | p>See.also:</p><ul>.<li><a.href= |
| e460 | 22 23 66 6f 72 22 3e 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | "#for">for</a></li>.<li><a.href= |
| e480 | 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a | "#Slices">Slices</a></li>.</ul>. |
| e4a0 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 50 6f 69 6e 74 65 72 73 22 3e | ..............<h1.id="Pointers"> |
| e4c0 | 50 6f 69 6e 74 65 72 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 | Pointers</h1>........<p.class="f |
| e4e0 | 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ile">test.zig</p><pre><code.clas |
| e500 | 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 | s="zig">const.assert.=.@import(& |
| e520 | 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 | quot;std").debug.assert;..t |
| e540 | 65 73 74 20 26 71 75 6f 74 3b 61 64 64 72 65 73 73 20 6f 66 20 73 79 6e 74 61 78 26 71 75 6f 74 | est."address.of.syntax" |
| e560 | 3b 20 7b 0a 20 20 20 20 2f 2f 20 47 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 | ;.{.....//.Get.the.address.of.a. |
| e580 | 76 61 72 69 61 62 6c 65 3a 0a 20 20 20 20 63 6f 6e 73 74 20 78 3a 20 69 33 32 20 3d 20 31 32 33 | variable:.....const.x:.i32.=.123 |
| e5a0 | 34 3b 0a 20 20 20 20 63 6f 6e 73 74 20 78 5f 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 0a 20 20 | 4;.....const.x_ptr.=.&x;.... |
| e5c0 | 20 20 2f 2f 20 44 65 66 65 72 65 6e 63 65 20 61 20 70 6f 69 6e 74 65 72 3a 0a 20 20 20 20 61 73 | ..//.Deference.a.pointer:.....as |
| e5e0 | 73 65 72 74 28 2a 78 5f 70 74 72 20 3d 3d 20 31 32 33 34 29 3b 0a 0a 20 20 20 20 2f 2f 20 57 68 | sert(*x_ptr.==.1234);......//.Wh |
| e600 | 65 6e 20 79 6f 75 20 67 65 74 20 74 68 65 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 63 6f 6e 73 | en.you.get.the.address.of.a.cons |
| e620 | 74 20 76 61 72 69 61 62 6c 65 2c 20 79 6f 75 20 67 65 74 20 61 20 63 6f 6e 73 74 20 70 6f 69 6e | t.variable,.you.get.a.const.poin |
| e640 | 74 65 72 2e 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 78 5f 70 74 72 29 20 3d | ter......assert(@typeOf(x_ptr).= |
| e660 | 3d 20 26 61 6d 70 3b 63 6f 6e 73 74 20 69 33 32 29 3b 0a 0a 20 20 20 20 2f 2f 20 49 66 20 79 6f | =.&const.i32);......//.If.yo |
| e680 | 75 20 77 61 6e 74 20 74 6f 20 6d 75 74 61 74 65 20 74 68 65 20 76 61 6c 75 65 2c 20 79 6f 75 27 | u.want.to.mutate.the.value,.you' |
| e6a0 | 64 20 6e 65 65 64 20 61 6e 20 61 64 64 72 65 73 73 20 6f 66 20 61 20 6d 75 74 61 62 6c 65 20 76 | d.need.an.address.of.a.mutable.v |
| e6c0 | 61 72 69 61 62 6c 65 3a 0a 20 20 20 20 76 61 72 20 79 3a 20 69 33 32 20 3d 20 35 36 37 38 3b 0a | ariable:.....var.y:.i32.=.5678;. |
| e6e0 | 20 20 20 20 63 6f 6e 73 74 20 79 5f 70 74 72 20 3d 20 26 61 6d 70 3b 79 3b 0a 20 20 20 20 61 73 | ....const.y_ptr.=.&y;.....as |
| e700 | 73 65 72 74 28 40 74 79 70 65 4f 66 28 79 5f 70 74 72 29 20 3d 3d 20 26 61 6d 70 3b 69 33 32 29 | sert(@typeOf(y_ptr).==.&i32) |
| e720 | 3b 0a 20 20 20 20 2a 79 5f 70 74 72 20 2b 3d 20 31 3b 0a 20 20 20 20 61 73 73 65 72 74 28 2a 79 | ;.....*y_ptr.+=.1;.....assert(*y |
| e740 | 5f 70 74 72 20 3d 3d 20 35 36 37 39 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 | _ptr.==.5679);.}..test."poi |
| e760 | 6e 74 65 72 20 61 72 72 61 79 20 61 63 63 65 73 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f | nter.array.access".{.....// |
| e780 | 20 50 6f 69 6e 74 65 72 73 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 70 6f 69 6e 74 65 72 | .Pointers.do.not.support.pointer |
| e7a0 | 20 61 72 69 74 68 6d 65 74 69 63 2e 20 49 66 20 79 6f 75 0a 20 20 20 20 2f 2f 20 6e 65 65 64 20 | .arithmetic..If.you.....//.need. |
| e7c0 | 73 75 63 68 20 61 20 74 68 69 6e 67 2c 20 75 73 65 20 61 72 72 61 79 20 69 6e 64 65 78 20 73 79 | such.a.thing,.use.array.index.sy |
| e7e0 | 6e 74 61 78 3a 0a 0a 20 20 20 20 76 61 72 20 61 72 72 61 79 20 3d 20 5b 5d 75 38 7b 31 2c 20 32 | ntax:......var.array.=.[]u8{1,.2 |
| e800 | 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 37 2c 20 38 2c 20 39 2c 20 31 30 7d 3b 0a 20 20 20 20 | ,.3,.4,.5,.6,.7,.8,.9,.10};..... |
| e820 | 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 31 5d 3b 0a 0a 20 20 20 20 | const.ptr.=.&array[1];...... |
| e840 | 61 73 73 65 72 74 28 61 72 72 61 79 5b 32 5d 20 3d 3d 20 33 29 3b 0a 20 20 20 20 70 74 72 5b 31 | assert(array[2].==.3);.....ptr[1 |
| e860 | 5d 20 2b 3d 20 31 3b 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 72 61 79 5b 32 5d 20 3d 3d 20 34 | ].+=.1;.....assert(array[2].==.4 |
| e880 | 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 73 6c 69 63 69 6e 67 | );.}..test."pointer.slicing |
| e8a0 | 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 49 6e 20 5a 69 67 2c 20 77 65 20 70 72 65 66 65 | ".{.....//.In.Zig,.we.prefe |
| e8c0 | 72 20 75 73 69 6e 67 20 73 6c 69 63 65 73 20 6f 76 65 72 20 6e 75 6c 6c 2d 74 65 72 6d 69 6e 61 | r.using.slices.over.null-termina |
| e8e0 | 74 65 64 20 70 6f 69 6e 74 65 72 73 2e 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 74 75 72 | ted.pointers......//.You.can.tur |
| e900 | 6e 20 61 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 73 6c 69 63 65 20 75 73 69 6e 67 20 73 | n.a.pointer.into.a.slice.using.s |
| e920 | 6c 69 63 65 20 73 79 6e 74 61 78 3a 0a 20 20 20 20 76 61 72 20 61 72 72 61 79 20 3d 20 5b 5d 75 | lice.syntax:.....var.array.=.[]u |
| e940 | 38 7b 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 37 2c 20 38 2c 20 39 2c 20 31 30 7d | 8{1,.2,.3,.4,.5,.6,.7,.8,.9,.10} |
| e960 | 3b 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 31 5d 3b | ;.....const.ptr.=.&array[1]; |
| e980 | 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 70 74 72 5b 31 2e 2e 33 5d 3b 0a 0a 20 | .....const.slice.=.ptr[1..3];... |
| e9a0 | 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 70 74 72 20 3d 3d 20 26 61 6d 70 3b 70 74 72 5b | ...assert(slice.ptr.==.&ptr[ |
| e9c0 | 31 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 32 29 3b | 1]);.....assert(slice.len.==.2); |
| e9e0 | 0a 0a 20 20 20 20 2f 2f 20 53 6c 69 63 65 73 20 68 61 76 65 20 62 6f 75 6e 64 73 20 63 68 65 63 | ......//.Slices.have.bounds.chec |
| ea00 | 6b 69 6e 67 20 61 6e 64 20 61 72 65 20 74 68 65 72 65 66 6f 72 65 20 70 72 6f 74 65 63 74 65 64 | king.and.are.therefore.protected |
| ea20 | 0a 20 20 20 20 2f 2f 20 61 67 61 69 6e 73 74 20 74 68 69 73 20 6b 69 6e 64 20 6f 66 20 75 6e 64 | .....//.against.this.kind.of.und |
| ea40 | 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 20 54 68 69 73 20 69 73 20 6f 6e 65 20 72 65 61 | efined.behavior..This.is.one.rea |
| ea60 | 73 6f 6e 0a 20 20 20 20 2f 2f 20 77 65 20 70 72 65 66 65 72 20 73 6c 69 63 65 73 20 74 6f 20 70 | son.....//.we.prefer.slices.to.p |
| ea80 | 6f 69 6e 74 65 72 73 2e 0a 20 20 20 20 61 73 73 65 72 74 28 61 72 72 61 79 5b 33 5d 20 3d 3d 20 | ointers......assert(array[3].==. |
| eaa0 | 34 29 3b 0a 20 20 20 20 73 6c 69 63 65 5b 31 5d 20 2b 3d 20 31 3b 0a 20 20 20 20 61 73 73 65 72 | 4);.....slice[1].+=.1;.....asser |
| eac0 | 74 28 61 72 72 61 79 5b 33 5d 20 3d 3d 20 35 29 3b 0a 7d 0a 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a | t(array[3].==.5);.}..comptime.{. |
| eae0 | 20 20 20 20 2f 2f 20 50 6f 69 6e 74 65 72 73 20 77 6f 72 6b 20 61 74 20 63 6f 6d 70 69 6c 65 2d | ....//.Pointers.work.at.compile- |
| eb00 | 74 69 6d 65 20 74 6f 6f 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 79 6f 75 20 64 6f 6e 27 74 20 75 | time.too,.as.long.as.you.don't.u |
| eb20 | 73 65 0a 20 20 20 20 2f 2f 20 40 70 74 72 43 61 73 74 2e 0a 20 20 20 20 76 61 72 20 78 3a 20 69 | se.....//.@ptrCast......var.x:.i |
| eb40 | 33 32 20 3d 20 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a | 32.=.1;.....const.ptr.=.&x;. |
| eb60 | 20 20 20 20 2a 70 74 72 20 2b 3d 20 31 3b 0a 20 20 20 20 78 20 2b 3d 20 31 3b 0a 20 20 20 20 61 | ....*ptr.+=.1;.....x.+=.1;.....a |
| eb80 | 73 73 65 72 74 28 2a 70 74 72 20 3d 3d 20 33 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b | ssert(*ptr.==.3);.}..test." |
| eba0 | 40 70 74 72 54 6f 49 6e 74 20 61 6e 64 20 40 69 6e 74 54 6f 50 74 72 26 71 75 6f 74 3b 20 7b 0a | @ptrToInt.and.@intToPtr".{. |
| ebc0 | 20 20 20 20 2f 2f 20 54 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 69 6e 74 65 67 65 72 20 61 64 64 | ....//.To.convert.an.integer.add |
| ebe0 | 72 65 73 73 20 69 6e 74 6f 20 61 20 70 6f 69 6e 74 65 72 2c 20 75 73 65 20 40 69 6e 74 54 6f 50 | ress.into.a.pointer,.use.@intToP |
| ec00 | 74 72 3a 0a 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 40 69 6e 74 54 6f 50 74 72 28 26 61 | tr:.....const.ptr.=.@intToPtr(&a |
| ec20 | 6d 70 3b 69 33 32 2c 20 30 78 64 65 61 64 62 65 65 66 29 3b 0a 0a 20 20 20 20 2f 2f 20 54 6f 20 | mp;i32,.0xdeadbeef);......//.To. |
| ec40 | 63 6f 6e 76 65 72 74 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 6e 20 69 6e 74 65 67 65 72 2c | convert.a.pointer.to.an.integer, |
| ec60 | 20 75 73 65 20 40 70 74 72 54 6f 49 6e 74 3a 0a 20 20 20 20 63 6f 6e 73 74 20 61 64 64 72 20 3d | .use.@ptrToInt:.....const.addr.= |
| ec80 | 20 40 70 74 72 54 6f 49 6e 74 28 70 74 72 29 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 | .@ptrToInt(ptr);......assert(@ty |
| eca0 | 70 65 4f 66 28 61 64 64 72 29 20 3d 3d 20 75 73 69 7a 65 29 3b 0a 20 20 20 20 61 73 73 65 72 74 | peOf(addr).==.usize);.....assert |
| ecc0 | 28 61 64 64 72 20 3d 3d 20 30 78 64 65 61 64 62 65 65 66 29 3b 0a 7d 0a 0a 63 6f 6d 70 74 69 6d | (addr.==.0xdeadbeef);.}..comptim |
| ece0 | 65 20 7b 0a 20 20 20 20 2f 2f 20 5a 69 67 20 69 73 20 61 62 6c 65 20 74 6f 20 64 6f 20 74 68 69 | e.{.....//.Zig.is.able.to.do.thi |
| ed00 | 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 61 73 20 6c 6f 6e 67 20 61 73 0a 20 20 | s.at.compile-time,.as.long.as... |
| ed20 | 20 20 2f 2f 20 70 74 72 20 69 73 20 6e 65 76 65 72 20 64 65 72 65 66 65 72 65 6e 63 65 64 2e 0a | ..//.ptr.is.never.dereferenced.. |
| ed40 | 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 40 69 6e 74 54 6f 50 74 72 28 26 61 6d 70 3b 69 | ....const.ptr.=.@intToPtr(&i |
| ed60 | 33 32 2c 20 30 78 64 65 61 64 62 65 65 66 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 61 64 64 72 20 | 32,.0xdeadbeef);.....const.addr. |
| ed80 | 3d 20 40 70 74 72 54 6f 49 6e 74 28 70 74 72 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 | =.@ptrToInt(ptr);.....assert(@ty |
| eda0 | 70 65 4f 66 28 61 64 64 72 29 20 3d 3d 20 75 73 69 7a 65 29 3b 0a 20 20 20 20 61 73 73 65 72 74 | peOf(addr).==.usize);.....assert |
| edc0 | 28 61 64 64 72 20 3d 3d 20 30 78 64 65 61 64 62 65 65 66 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 | (addr.==.0xdeadbeef);.}..test.&q |
| ede0 | 75 6f 74 3b 76 6f 6c 61 74 69 6c 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 49 6e 20 5a | uot;volatile".{.....//.In.Z |
| ee00 | 69 67 2c 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 61 72 65 20 61 73 73 75 6d 65 64 | ig,.loads.and.stores.are.assumed |
| ee20 | 20 74 6f 20 6e 6f 74 20 68 61 76 65 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 20 20 20 20 2f | .to.not.have.side.effects....../ |
| ee40 | 2f 20 49 66 20 61 20 67 69 76 65 6e 20 6c 6f 61 64 20 6f 72 20 73 74 6f 72 65 20 73 68 6f 75 6c | /.If.a.given.load.or.store.shoul |
| ee60 | 64 20 68 61 76 65 20 73 69 64 65 20 65 66 66 65 63 74 73 2c 20 73 75 63 68 20 61 73 0a 20 20 20 | d.have.side.effects,.such.as.... |
| ee80 | 20 2f 2f 20 4d 65 6d 6f 72 79 20 4d 61 70 70 65 64 20 49 6e 70 75 74 2f 4f 75 74 70 75 74 20 28 | .//.Memory.Mapped.Input/Output.( |
| eea0 | 4d 4d 49 4f 29 2c 20 75 73 65 20 60 76 6f 6c 61 74 69 6c 65 60 3a 0a 20 20 20 20 63 6f 6e 73 74 | MMIO),.use.`volatile`:.....const |
| eec0 | 20 6d 6d 69 6f 5f 70 74 72 20 3d 20 40 69 6e 74 54 6f 50 74 72 28 26 61 6d 70 3b 76 6f 6c 61 74 | .mmio_ptr.=.@intToPtr(&volat |
| eee0 | 69 6c 65 20 75 38 2c 20 30 78 31 32 33 34 35 36 37 38 29 3b 0a 0a 20 20 20 20 2f 2f 20 4e 6f 77 | ile.u8,.0x12345678);......//.Now |
| ef00 | 20 6c 6f 61 64 73 20 61 6e 64 20 73 74 6f 72 65 73 20 77 69 74 68 20 6d 6d 69 6f 5f 70 74 72 20 | .loads.and.stores.with.mmio_ptr. |
| ef20 | 61 72 65 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 61 6c 6c 20 68 61 70 70 65 6e 0a 20 20 20 | are.guaranteed.to.all.happen.... |
| ef40 | 20 2f 2f 20 61 6e 64 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6f 72 64 65 72 20 61 73 20 69 6e 20 | .//.and.in.the.same.order.as.in. |
| ef60 | 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 | source.code......assert(@typeOf( |
| ef80 | 6d 6d 69 6f 5f 70 74 72 29 20 3d 3d 20 26 61 6d 70 3b 76 6f 6c 61 74 69 6c 65 20 75 38 29 3b 0a | mmio_ptr).==.&volatile.u8);. |
| efa0 | 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 6e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e 74 65 72 73 26 | }..test."nullable.pointers& |
| efc0 | 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 50 6f 69 6e 74 65 72 73 20 63 61 6e 6e 6f 74 20 62 | quot;.{.....//.Pointers.cannot.b |
| efe0 | 65 20 6e 75 6c 6c 2e 20 49 66 20 79 6f 75 20 77 61 6e 74 20 61 20 6e 75 6c 6c 20 70 6f 69 6e 74 | e.null..If.you.want.a.null.point |
| f000 | 65 72 2c 20 75 73 65 20 74 68 65 20 6e 75 6c 6c 61 62 6c 65 0a 20 20 20 20 2f 2f 20 70 72 65 66 | er,.use.the.nullable.....//.pref |
| f020 | 69 78 20 60 3f 60 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 | ix.`?`.to.make.the.pointer.type. |
| f040 | 6e 75 6c 6c 61 62 6c 65 2e 0a 20 20 20 20 76 61 72 20 70 74 72 3a 20 3f 26 61 6d 70 3b 69 33 32 | nullable......var.ptr:.?&i32 |
| f060 | 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 76 61 72 20 78 3a 20 69 33 32 20 3d 20 31 3b 0a 20 20 | .=.null;......var.x:.i32.=.1;... |
| f080 | 20 20 70 74 72 20 3d 20 26 61 6d 70 3b 78 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 2a 3f 3f 70 | ..ptr.=.&x;......assert(*??p |
| f0a0 | 74 72 20 3d 3d 20 31 29 3b 0a 0a 20 20 20 20 2f 2f 20 4e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e 74 | tr.==.1);......//.Nullable.point |
| f0c0 | 65 72 73 20 61 72 65 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 61 73 20 6e 6f 72 6d 61 6c 20 | ers.are.the.same.size.as.normal. |
| f0e0 | 70 6f 69 6e 74 65 72 73 2c 20 62 65 63 61 75 73 65 20 70 6f 69 6e 74 65 72 0a 20 20 20 20 2f 2f | pointers,.because.pointer.....// |
| f100 | 20 76 61 6c 75 65 20 30 20 69 73 20 75 73 65 64 20 61 73 20 74 68 65 20 6e 75 6c 6c 20 76 61 6c | .value.0.is.used.as.the.null.val |
| f120 | 75 65 2e 0a 20 20 20 20 61 73 73 65 72 74 28 40 73 69 7a 65 4f 66 28 3f 26 61 6d 70 3b 69 33 32 | ue......assert(@sizeOf(?&i32 |
| f140 | 29 20 3d 3d 20 40 73 69 7a 65 4f 66 28 26 61 6d 70 3b 69 33 32 29 29 3b 0a 7d 0a 0a 74 65 73 74 | ).==.@sizeOf(&i32));.}..test |
| f160 | 20 26 71 75 6f 74 3b 70 6f 69 6e 74 65 72 20 63 61 73 74 69 6e 67 26 71 75 6f 74 3b 20 7b 0a 20 | ."pointer.casting".{.. |
| f180 | 20 20 20 2f 2f 20 54 6f 20 63 6f 6e 76 65 72 74 20 6f 6e 65 20 70 6f 69 6e 74 65 72 20 74 79 70 | ...//.To.convert.one.pointer.typ |
| f1a0 | 65 20 74 6f 20 61 6e 6f 74 68 65 72 2c 20 75 73 65 20 40 70 74 72 43 61 73 74 2e 20 54 68 69 73 | e.to.another,.use.@ptrCast..This |
| f1c0 | 20 69 73 20 61 6e 20 75 6e 73 61 66 65 0a 20 20 20 20 2f 2f 20 6f 70 65 72 61 74 69 6f 6e 20 74 | .is.an.unsafe.....//.operation.t |
| f1e0 | 68 61 74 20 5a 69 67 20 63 61 6e 6e 6f 74 20 70 72 6f 74 65 63 74 20 79 6f 75 20 61 67 61 69 6e | hat.Zig.cannot.protect.you.again |
| f200 | 73 74 2e 20 55 73 65 20 40 70 74 72 43 61 73 74 20 6f 6e 6c 79 20 77 68 65 6e 20 6f 74 68 65 72 | st..Use.@ptrCast.only.when.other |
| f220 | 0a 20 20 20 20 2f 2f 20 63 6f 6e 76 65 72 73 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 70 6f 73 73 | .....//.conversions.are.not.poss |
| f240 | 69 62 6c 65 2e 0a 20 20 20 20 63 6f 6e 73 74 20 62 79 74 65 73 20 61 6c 69 67 6e 28 40 61 6c 69 | ible......const.bytes.align(@ali |
| f260 | 67 6e 4f 66 28 75 33 32 29 29 20 3d 20 5b 5d 75 38 7b 30 78 31 32 2c 20 30 78 31 32 2c 20 30 78 | gnOf(u32)).=.[]u8{0x12,.0x12,.0x |
| f280 | 31 32 2c 20 30 78 31 32 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 75 33 32 5f 70 74 72 20 3d 20 40 | 12,.0x12};.....const.u32_ptr.=.@ |
| f2a0 | 70 74 72 43 61 73 74 28 26 61 6d 70 3b 63 6f 6e 73 74 20 75 33 32 2c 20 26 61 6d 70 3b 62 79 74 | ptrCast(&const.u32,.&byt |
| f2c0 | 65 73 5b 30 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 2a 75 33 32 5f 70 74 72 20 3d 3d 20 30 | es[0]);.....assert(*u32_ptr.==.0 |
| f2e0 | 78 31 32 31 32 31 32 31 32 29 3b 0a 0a 20 20 20 20 2f 2f 20 45 76 65 6e 20 74 68 69 73 20 65 78 | x12121212);......//.Even.this.ex |
| f300 | 61 6d 70 6c 65 20 69 73 20 63 6f 6e 74 72 69 76 65 64 20 2d 20 74 68 65 72 65 20 61 72 65 20 62 | ample.is.contrived.-.there.are.b |
| f320 | 65 74 74 65 72 20 77 61 79 73 20 74 6f 20 64 6f 20 74 68 65 20 61 62 6f 76 65 20 74 68 61 6e 0a | etter.ways.to.do.the.above.than. |
| f340 | 20 20 20 20 2f 2f 20 70 6f 69 6e 74 65 72 20 63 61 73 74 69 6e 67 2e 20 46 6f 72 20 65 78 61 6d | ....//.pointer.casting..For.exam |
| f360 | 70 6c 65 2c 20 75 73 69 6e 67 20 61 20 73 6c 69 63 65 20 6e 61 72 72 6f 77 69 6e 67 20 63 61 73 | ple,.using.a.slice.narrowing.cas |
| f380 | 74 3a 0a 20 20 20 20 63 6f 6e 73 74 20 75 33 32 5f 76 61 6c 75 65 20 3d 20 28 5b 5d 63 6f 6e 73 | t:.....const.u32_value.=.([]cons |
| f3a0 | 74 20 75 33 32 29 28 62 79 74 65 73 5b 30 2e 2e 5d 29 5b 30 5d 3b 0a 20 20 20 20 61 73 73 65 72 | t.u32)(bytes[0..])[0];.....asser |
| f3c0 | 74 28 75 33 32 5f 76 61 6c 75 65 20 3d 3d 20 30 78 31 32 31 32 31 32 31 32 29 3b 0a 0a 20 20 20 | t(u32_value.==.0x12121212);..... |
| f3e0 | 20 2f 2f 20 41 6e 64 20 65 76 65 6e 20 61 6e 6f 74 68 65 72 20 77 61 79 2c 20 74 68 65 20 6d 6f | .//.And.even.another.way,.the.mo |
| f400 | 73 74 20 73 74 72 61 69 67 68 74 66 6f 72 77 61 72 64 20 77 61 79 20 74 6f 20 64 6f 20 69 74 3a | st.straightforward.way.to.do.it: |
| f420 | 0a 20 20 20 20 61 73 73 65 72 74 28 40 62 69 74 43 61 73 74 28 75 33 32 2c 20 62 79 74 65 73 29 | .....assert(@bitCast(u32,.bytes) |
| f440 | 20 3d 3d 20 30 78 31 32 31 32 31 32 31 32 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 70 | .==.0x12121212);.}..test."p |
| f460 | 6f 69 6e 74 65 72 20 63 68 69 6c 64 20 74 79 70 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f | ointer.child.type".{.....// |
| f480 | 20 70 6f 69 6e 74 65 72 20 74 79 70 65 73 20 68 61 76 65 20 61 20 60 63 68 69 6c 64 60 20 66 69 | .pointer.types.have.a.`child`.fi |
| f4a0 | 65 6c 64 20 77 68 69 63 68 20 74 65 6c 6c 73 20 79 6f 75 20 74 68 65 20 74 79 70 65 20 74 68 65 | eld.which.tells.you.the.type.the |
| f4c0 | 79 20 70 6f 69 6e 74 20 74 6f 2e 0a 20 20 20 20 61 73 73 65 72 74 28 28 26 61 6d 70 3b 75 33 32 | y.point.to......assert((&u32 |
| f4e0 | 29 2e 43 68 69 6c 64 20 3d 3d 20 75 33 32 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c | ).Child.==.u32);.}</code></pre>< |
| f500 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 | pre><code.class="shell">$.zig.te |
| f520 | 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 38 20 61 64 64 72 65 73 73 20 6f 66 20 | st.test.zig.Test.1/8.address.of. |
| f540 | 73 79 6e 74 61 78 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 38 20 70 6f 69 6e 74 65 72 20 61 72 72 | syntax...OK.Test.2/8.pointer.arr |
| f560 | 61 79 20 61 63 63 65 73 73 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 38 20 70 6f 69 6e 74 65 72 20 | ay.access...OK.Test.3/8.pointer. |
| f580 | 73 6c 69 63 69 6e 67 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 38 20 40 70 74 72 54 6f 49 6e 74 20 | slicing...OK.Test.4/8.@ptrToInt. |
| f5a0 | 61 6e 64 20 40 69 6e 74 54 6f 50 74 72 2e 2e 2e 4f 4b 0a 54 65 73 74 20 35 2f 38 20 76 6f 6c 61 | and.@intToPtr...OK.Test.5/8.vola |
| f5c0 | 74 69 6c 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 36 2f 38 20 6e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e | tile...OK.Test.6/8.nullable.poin |
| f5e0 | 74 65 72 73 2e 2e 2e 4f 4b 0a 54 65 73 74 20 37 2f 38 20 70 6f 69 6e 74 65 72 20 63 61 73 74 69 | ters...OK.Test.7/8.pointer.casti |
| f600 | 6e 67 2e 2e 2e 4f 4b 0a 54 65 73 74 20 38 2f 38 20 70 6f 69 6e 74 65 72 20 63 68 69 6c 64 20 74 | ng...OK.Test.8/8.pointer.child.t |
| f620 | 79 70 65 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 | ype...OK.</code></pre>........<h |
| f640 | 32 20 69 64 3d 22 41 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 68 32 3e 0a | 2.id="Alignment">Alignment</h2>. |
| f660 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 61 63 68 20 74 79 70 65 20 68 61 73 20 61 | .......<p>.......Each.type.has.a |
| f680 | 6e 20 3c 73 74 72 6f 6e 67 3e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 73 74 72 6f 6e 67 3e 20 2d 20 61 | n.<strong>alignment</strong>.-.a |
| f6a0 | 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 73 75 63 68 20 74 68 61 74 2c 0a 20 20 20 20 | .number.of.bytes.such.that,..... |
| f6c0 | 20 20 77 68 65 6e 20 61 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 74 79 70 65 20 69 73 20 6c 6f | ..when.a.value.of.the.type.is.lo |
| f6e0 | 61 64 65 64 20 66 72 6f 6d 20 6f 72 20 73 74 6f 72 65 64 20 74 6f 20 6d 65 6d 6f 72 79 2c 0a 20 | aded.from.or.stored.to.memory,.. |
| f700 | 20 20 20 20 20 74 68 65 20 6d 65 6d 6f 72 79 20 61 64 64 72 65 73 73 20 6d 75 73 74 20 62 65 20 | .....the.memory.address.must.be. |
| f720 | 65 76 65 6e 6c 79 20 64 69 76 69 73 69 62 6c 65 20 62 79 20 74 68 69 73 20 6e 75 6d 62 65 72 2e | evenly.divisible.by.this.number. |
| f740 | 20 59 6f 75 20 63 61 6e 20 75 73 65 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 23 61 6c 69 | .You.can.use.......<a.href="#ali |
| f760 | 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 61 3e 20 74 6f 20 66 69 6e 64 20 6f 75 74 20 74 | gnOf">@alignOf</a>.to.find.out.t |
| f780 | 68 69 73 20 76 61 6c 75 65 20 66 6f 72 20 61 6e 79 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f | his.value.for.any.type........</ |
| f7a0 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 69 67 6e 6d 65 6e 74 20 64 65 70 | p>.......<p>.......Alignment.dep |
| f7c0 | 65 6e 64 73 20 6f 6e 20 74 68 65 20 43 50 55 20 61 72 63 68 69 74 65 63 74 75 72 65 2c 20 62 75 | ends.on.the.CPU.architecture,.bu |
| f7e0 | 74 20 69 73 20 61 6c 77 61 79 73 20 61 20 70 6f 77 65 72 20 6f 66 20 74 77 6f 2c 20 61 6e 64 0a | t.is.always.a.power.of.two,.and. |
| f800 | 20 20 20 20 20 20 6c 65 73 73 20 74 68 61 6e 20 3c 63 6f 64 65 3e 31 20 26 6c 74 3b 26 6c 74 3b | ......less.than.<code>1.<< |
| f820 | 20 32 39 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | .29</code>........</p>.......<p> |
| f840 | 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 61 20 70 6f 69 6e 74 65 72 20 74 79 70 65 20 68 61 | .......In.Zig,.a.pointer.type.ha |
| f860 | 73 20 61 6e 20 61 6c 69 67 6e 6d 65 6e 74 20 76 61 6c 75 65 2e 20 49 66 20 74 68 65 20 76 61 6c | s.an.alignment.value..If.the.val |
| f880 | 75 65 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 61 6c 69 67 6e 6d 65 | ue.is.equal.to.the.......alignme |
| f8a0 | 6e 74 20 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 74 79 70 65 2c 20 69 74 20 63 61 | nt.of.the.underlying.type,.it.ca |
| f8c0 | 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 66 72 6f 6d 20 74 68 65 20 74 79 70 65 3a 0a 20 20 20 20 | n.be.omitted.from.the.type:..... |
| f8e0 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 | ..</p>.......<p.class="file">tes |
| f900 | 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | t.zig</p><pre><code.class="zig"> |
| f920 | 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 | const.assert.=.@import("std |
| f940 | 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 62 75 69 6c | ").debug.assert;.const.buil |
| f960 | 74 69 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 | tin.=.@import("builtin" |
| f980 | 3b 29 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 | ;);..test."variable.alignme |
| f9a0 | 6e 74 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 20 78 3a 20 69 33 32 20 3d 20 31 32 33 34 | nt".{.....var.x:.i32.=.1234 |
| f9c0 | 3b 0a 20 20 20 20 63 6f 6e 73 74 20 61 6c 69 67 6e 5f 6f 66 5f 69 33 32 20 3d 20 40 61 6c 69 67 | ;.....const.align_of_i32.=.@alig |
| f9e0 | 6e 4f 66 28 40 74 79 70 65 4f 66 28 78 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 | nOf(@typeOf(x));.....assert(@typ |
| fa00 | 65 4f 66 28 26 61 6d 70 3b 78 29 20 3d 3d 20 26 61 6d 70 3b 69 33 32 29 3b 0a 20 20 20 20 61 73 | eOf(&x).==.&i32);.....as |
| fa20 | 73 65 72 74 28 26 61 6d 70 3b 69 33 32 20 3d 3d 20 26 61 6d 70 3b 61 6c 69 67 6e 28 61 6c 69 67 | sert(&i32.==.&align(alig |
| fa40 | 6e 5f 6f 66 5f 69 33 32 29 20 69 33 32 29 3b 0a 20 20 20 20 69 66 20 28 62 75 69 6c 74 69 6e 2e | n_of_i32).i32);.....if.(builtin. |
| fa60 | 61 72 63 68 20 3d 3d 20 62 75 69 6c 74 69 6e 2e 41 72 63 68 2e 78 38 36 5f 36 34 29 20 7b 0a 20 | arch.==.builtin.Arch.x86_64).{.. |
| fa80 | 20 20 20 20 20 20 20 61 73 73 65 72 74 28 28 26 61 6d 70 3b 69 33 32 29 2e 61 6c 69 67 6e 6d 65 | .......assert((&i32).alignme |
| faa0 | 6e 74 20 3d 3d 20 34 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 | nt.==.4);.....}.}</code></pre><p |
| fac0 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 | re><code.class="shell">$.zig.tes |
| fae0 | 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 76 61 72 69 61 62 6c 65 20 61 6c 69 | t.test.zig.Test.1/1.variable.ali |
| fb00 | 67 6e 6d 65 6e 74 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 | gnment...OK.</code></pre>....... |
| fb20 | 20 3c 70 3e 49 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 61 20 3c 63 6f 64 65 | .<p>In.the.same.way.that.a.<code |
| fb40 | 3e 26 61 6d 70 3b 69 33 32 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 | >&i32</code>.can.be.implicit |
| fb60 | 6c 79 20 63 61 73 74 20 74 6f 20 61 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 26 61 6d 70 3b 63 6f | ly.cast.to.a.......<code>&co |
| fb80 | 6e 73 74 20 69 33 32 3c 2f 63 6f 64 65 3e 2c 20 61 20 70 6f 69 6e 74 65 72 20 77 69 74 68 20 61 | nst.i32</code>,.a.pointer.with.a |
| fba0 | 20 6c 61 72 67 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 | .larger.alignment.can.be.implici |
| fbc0 | 74 6c 79 0a 20 20 20 20 20 20 63 61 73 74 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 77 69 74 68 | tly.......cast.to.a.pointer.with |
| fbe0 | 20 61 20 73 6d 61 6c 6c 65 72 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 62 75 74 20 6e 6f 74 20 76 69 | .a.smaller.alignment,.but.not.vi |
| fc00 | 63 65 20 76 65 72 73 61 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | ce.versa........</p>.......<p>.. |
| fc20 | 20 20 20 20 20 59 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 6c 69 67 6e 6d 65 6e 74 20 6f | .....You.can.specify.alignment.o |
| fc40 | 6e 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 2e 20 49 66 20 79 6f | n.variables.and.functions..If.yo |
| fc60 | 75 20 64 6f 20 74 68 69 73 2c 20 74 68 65 6e 0a 20 20 20 20 20 20 70 6f 69 6e 74 65 72 73 20 74 | u.do.this,.then.......pointers.t |
| fc80 | 6f 20 74 68 65 6d 20 67 65 74 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 61 6c 69 67 6e 6d 65 | o.them.get.the.specified.alignme |
| fca0 | 6e 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 | nt:.......</p>.......<p.class="f |
| fcc0 | 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ile">test.zig</p><pre><code.clas |
| fce0 | 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 | s="zig">const.assert.=.@import(& |
| fd00 | 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 76 | quot;std").debug.assert;..v |
| fd20 | 61 72 20 66 6f 6f 3a 20 75 38 20 61 6c 69 67 6e 28 34 29 20 3d 20 31 30 30 3b 0a 0a 74 65 73 74 | ar.foo:.u8.align(4).=.100;..test |
| fd40 | 20 26 71 75 6f 74 3b 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 61 6c 69 67 6e 6d 65 6e 74 | ."global.variable.alignment |
| fd60 | 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 26 61 6d 70 | ".{.....assert(@typeOf(& |
| fd80 | 3b 66 6f 6f 29 2e 61 6c 69 67 6e 6d 65 6e 74 20 3d 3d 20 34 29 3b 0a 20 20 20 20 61 73 73 65 72 | ;foo).alignment.==.4);.....asser |
| fda0 | 74 28 40 74 79 70 65 4f 66 28 26 61 6d 70 3b 66 6f 6f 29 20 3d 3d 20 26 61 6d 70 3b 61 6c 69 67 | t(@typeOf(&foo).==.&alig |
| fdc0 | 6e 28 34 29 20 75 38 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 28 26 61 6d | n(4).u8);.....const.slice.=.(&am |
| fde0 | 70 3b 66 6f 6f 29 5b 30 2e 2e 31 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 | p;foo)[0..1];.....assert(@typeOf |
| fe00 | 28 73 6c 69 63 65 29 20 3d 3d 20 5b 5d 61 6c 69 67 6e 28 34 29 20 75 38 29 3b 0a 7d 0a 0a 66 6e | (slice).==.[]align(4).u8);.}..fn |
| fe20 | 20 64 65 72 70 28 29 20 61 6c 69 67 6e 28 40 73 69 7a 65 4f 66 28 75 73 69 7a 65 29 20 2a 20 32 | .derp().align(@sizeOf(usize).*.2 |
| fe40 | 29 20 69 33 32 20 7b 20 72 65 74 75 72 6e 20 31 32 33 34 3b 20 7d 0a 66 6e 20 6e 6f 6f 70 31 28 | ).i32.{.return.1234;.}.fn.noop1( |
| fe60 | 29 20 61 6c 69 67 6e 28 31 29 20 76 6f 69 64 20 7b 7d 0a 66 6e 20 6e 6f 6f 70 34 28 29 20 61 6c | ).align(1).void.{}.fn.noop4().al |
| fe80 | 69 67 6e 28 34 29 20 76 6f 69 64 20 7b 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 75 6e 63 74 | ign(4).void.{}..test."funct |
| fea0 | 69 6f 6e 20 61 6c 69 67 6e 6d 65 6e 74 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 | ion.alignment".{.....assert |
| fec0 | 28 64 65 72 70 28 29 20 3d 3d 20 31 32 33 34 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 | (derp().==.1234);.....assert(@ty |
| fee0 | 70 65 4f 66 28 6e 6f 6f 70 31 29 20 3d 3d 20 66 6e 28 29 20 61 6c 69 67 6e 28 31 29 20 76 6f 69 | peOf(noop1).==.fn().align(1).voi |
| ff00 | 64 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 6e 6f 6f 70 34 29 20 3d 3d | d);.....assert(@typeOf(noop4).== |
| ff20 | 20 66 6e 28 29 20 61 6c 69 67 6e 28 34 29 20 76 6f 69 64 29 3b 0a 20 20 20 20 6e 6f 6f 70 31 28 | .fn().align(4).void);.....noop1( |
| ff40 | 29 3b 0a 20 20 20 20 6e 6f 6f 70 34 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 | );.....noop4();.}</code></pre><p |
| ff60 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 | re><code.class="shell">$.zig.tes |
| ff80 | 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 32 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 | t.test.zig.Test.1/2.global.varia |
| ffa0 | 62 6c 65 20 61 6c 69 67 6e 6d 65 6e 74 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 32 20 66 75 6e 63 | ble.alignment...OK.Test.2/2.func |
| ffc0 | 74 69 6f 6e 20 61 6c 69 67 6e 6d 65 6e 74 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | tion.alignment...OK.</code></pre |
| ffe0 | 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 61 | >........<p>.......If.you.have.a |
| 10000 | 20 70 6f 69 6e 74 65 72 20 6f 72 20 61 20 73 6c 69 63 65 20 74 68 61 74 20 68 61 73 20 61 20 73 | .pointer.or.a.slice.that.has.a.s |
| 10020 | 6d 61 6c 6c 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 62 75 74 20 79 6f 75 20 6b 6e 6f 77 20 74 68 61 | mall.alignment,.but.you.know.tha |
| 10040 | 74 20 69 74 20 61 63 74 75 61 6c 6c 79 0a 20 20 20 20 20 20 68 61 73 20 61 20 62 69 67 67 65 72 | t.it.actually.......has.a.bigger |
| 10060 | 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 61 6c 69 67 6e 43 | .alignment,.use.<a.href="#alignC |
| 10080 | 61 73 74 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 61 3e 20 74 6f 20 63 68 61 6e 67 65 20 74 68 | ast">@alignCast</a>.to.change.th |
| 100a0 | 65 0a 20 20 20 20 20 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 6d 6f 72 65 20 61 6c 69 67 | e.......pointer.into.a.more.alig |
| 100c0 | 6e 65 64 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 69 73 20 61 20 6e 6f 2d 6f 70 20 61 74 20 | ned.pointer..This.is.a.no-op.at. |
| 100e0 | 72 75 6e 74 69 6d 65 2c 20 62 75 74 20 69 6e 73 65 72 74 73 20 61 0a 20 20 20 20 20 20 3c 61 20 | runtime,.but.inserts.a.......<a. |
| 10100 | 68 72 65 66 3d 22 23 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 | href="#Incorrect-Pointer-Alignme |
| 10120 | 6e 74 22 3e 73 61 66 65 74 79 20 63 68 65 63 6b 3c 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e | nt">safety.check</a>:.......</p> |
| 10140 | 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c | .......<p.class="file">test.zig< |
| 10160 | 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 | /p><pre><code.class="zig">const. |
| 10180 | 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b | assert.=.@import("std" |
| 101a0 | 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 70 6f 69 6e | ).debug.assert;..test."poin |
| 101c0 | 74 65 72 20 61 6c 69 67 6e 6d 65 6e 74 20 73 61 66 65 74 79 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | ter.alignment.safety".{.... |
| 101e0 | 20 76 61 72 20 61 72 72 61 79 20 61 6c 69 67 6e 28 34 29 20 3d 20 5b 5d 75 33 32 7b 30 78 31 31 | .var.array.align(4).=.[]u32{0x11 |
| 10200 | 31 31 31 31 31 31 2c 20 30 78 31 31 31 31 31 31 31 31 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 62 | 111111,.0x11111111};.....const.b |
| 10220 | 79 74 65 73 20 3d 20 28 5b 5d 75 38 29 28 61 72 72 61 79 5b 30 2e 2e 5d 29 3b 0a 20 20 20 20 61 | ytes.=.([]u8)(array[0..]);.....a |
| 10240 | 73 73 65 72 74 28 66 6f 6f 28 62 79 74 65 73 29 20 3d 3d 20 30 78 31 31 31 31 31 31 31 31 29 3b | ssert(foo(bytes).==.0x11111111); |
| 10260 | 0a 7d 0a 66 6e 20 66 6f 6f 28 62 79 74 65 73 3a 20 5b 5d 75 38 29 20 75 33 32 20 7b 0a 20 20 20 | .}.fn.foo(bytes:.[]u8).u32.{.... |
| 10280 | 20 63 6f 6e 73 74 20 73 6c 69 63 65 34 20 3d 20 62 79 74 65 73 5b 31 2e 2e 35 5d 3b 0a 20 20 20 | .const.slice4.=.bytes[1..5];.... |
| 102a0 | 20 63 6f 6e 73 74 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 28 5b 5d 75 33 32 29 28 40 61 6c 69 67 | .const.int_slice.=.([]u32)(@alig |
| 102c0 | 6e 43 61 73 74 28 34 2c 20 73 6c 69 63 65 34 29 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 6e | nCast(4,.slice4));.....return.in |
| 102e0 | 74 5f 73 6c 69 63 65 5b 30 5d 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c | t_slice[0];.}</code></pre><pre>< |
| 10300 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 | code.class="shell">$.zig.test.te |
| 10320 | 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d 65 6e | st.zig.Test.1/1.pointer.alignmen |
| 10340 | 74 20 73 61 66 65 74 79 2e 2e 2e 69 6e 63 6f 72 72 65 63 74 20 61 6c 69 67 6e 6d 65 6e 74 0a 3c | t.safety...incorrect.alignment.< |
| 10360 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 | span.class="t37_1">/home/andy/de |
| 10380 | 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 34 35 3c | v/zig/docgen_tmp/test.zig:10:45< |
| 103a0 | 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 33 | /span>:.<span.class="t2_0">0x203 |
| 103c0 | 39 37 33 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e | 973.in.???.(test)</span>.....con |
| 103e0 | 73 74 20 69 6e 74 5f 73 6c 69 63 65 20 3d 20 28 5b 5d 75 33 32 29 28 40 61 6c 69 67 6e 43 61 73 | st.int_slice.=.([]u32)(@alignCas |
| 10400 | 74 28 34 2c 20 73 6c 69 63 65 34 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t(4,.slice4));.................. |
| 10420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e | ...........................<span |
| 10440 | 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c | .class="t32_1">^</span>.<span.cl |
| 10460 | 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 | ass="t37_1">/home/andy/dev/zig/d |
| 10480 | 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 31 35 3c 2f 73 70 61 6e 3e 3a 20 | ocgen_tmp/test.zig:6:15</span>:. |
| 104a0 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 33 36 64 36 20 69 6e 20 3f | <span.class="t2_0">0x2036d6.in.? |
| 104c0 | 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 28 66 6f 6f 28 | ??.(test)</span>.....assert(foo( |
| 104e0 | 62 79 74 65 73 29 20 3d 3d 20 30 78 31 31 31 31 31 31 31 31 29 3b 0a 20 20 20 20 20 20 20 20 20 | bytes).==.0x11111111);.......... |
| 10500 | 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e | .....<span.class="t32_1">^</span |
| 10520 | 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 | >.<span.class="t37_1">/home/andy |
| 10540 | 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 | /dev/zig/build/lib/zig/std/speci |
| 10560 | 61 6c 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 31 3a 32 35 3c 2f 73 70 61 6e 3e 3a | al/test_runner.zig:11:25</span>: |
| 10580 | 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 36 33 38 20 69 6e 20 | .<span.class="t2_0">0x21d638.in. |
| 105a0 | 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 74 72 79 20 74 65 | ???.(test)</span>.........try.te |
| 105c0 | 73 74 5f 66 6e 2e 66 75 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st_fn.func();................... |
| 105e0 | 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 | ......<span.class="t32_1">^</spa |
| 10600 | 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 | n>.<span.class="t37_1">/home/and |
| 10620 | 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 | y/dev/zig/build/lib/zig/std/spec |
| 10640 | 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 38 35 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 | ial/bootstrap.zig:85:22</span>:. |
| 10660 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 34 33 62 20 69 6e 20 3f | <span.class="t2_0">0x21d43b.in.? |
| 10680 | 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f | ??.(test)</span>.............roo |
| 106a0 | 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 | t.main().catch.|err|.{.......... |
| 106c0 | 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e | ............<span.class="t32_1"> |
| 106e0 | 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f | ^</span>.<span.class="t37_1">/ho |
| 10700 | 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 | me/andy/dev/zig/build/lib/zig/st |
| 10720 | 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 36 32 3a 32 30 3c 2f 73 | d/special/bootstrap.zig:62:20</s |
| 10740 | 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 33 39 | pan>:.<span.class="t2_0">0x21d39 |
| 10760 | 62 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 | b.in.???.(test)</span>.....retur |
| 10780 | 6e 20 63 61 6c 6c 4d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.callMain();................... |
| 107a0 | 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 | .<span.class="t32_1">^</span>.<s |
| 107c0 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 | pan.class="t37_1">/home/andy/dev |
| 107e0 | 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 | /zig/build/lib/zig/std/special/b |
| 10800 | 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 35 32 3a 33 39 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e | ootstrap.zig:52:39</span>:.<span |
| 10820 | 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 32 32 63 20 69 6e 20 3f 3f 3f 20 28 74 | .class="t2_0">0x21d22c.in.???.(t |
| 10840 | 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 74 64 2e 6f 73 2e 70 6f 73 69 78 2e 65 78 69 | est)</span>.....std.os.posix.exi |
| 10860 | 74 28 63 61 6c 6c 4d 61 69 6e 57 69 74 68 41 72 67 73 28 61 72 67 63 2c 20 61 72 67 76 2c 20 65 | t(callMainWithArgs(argc,.argv,.e |
| 10880 | 6e 76 70 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nvp));.......................... |
| 108a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 | .............<span.class="t32_1" |
| 108c0 | 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 | >^</span>.<span.class="t37_1">/h |
| 108e0 | 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 | ome/andy/dev/zig/build/lib/zig/s |
| 10900 | 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 33 39 3a 35 3c 2f 73 | td/special/bootstrap.zig:39:5</s |
| 10920 | 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 31 62 | pan>:.<span.class="t2_0">0x21d1b |
| 10940 | 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e | 0.in.???.(test)</span>.....@noIn |
| 10960 | 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a | lineCall(posixCallMainAndExit);. |
| 10980 | 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e | ....<span.class="t32_1">^</span> |
| 109a0 | 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | ..Tests.failed..Use.the.followin |
| 109c0 | 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 | g.command.to.reproduce.the.failu |
| 109e0 | 72 65 3a 0a 2e 2f 7a 69 67 2d 63 61 63 68 65 2f 74 65 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | re:../zig-cache/test.</code></pr |
| 10a00 | 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 54 79 70 65 2d 42 61 | e>...............<h2.id="Type-Ba |
| 10a20 | 73 65 64 2d 41 6c 69 61 73 2d 41 6e 61 6c 79 73 69 73 22 3e 54 79 70 65 20 42 61 73 65 64 20 41 | sed-Alias-Analysis">Type.Based.A |
| 10a40 | 6c 69 61 73 20 41 6e 61 6c 79 73 69 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 | lias.Analysis</h2>........<p>Zig |
| 10a60 | 20 75 73 65 73 20 54 79 70 65 20 42 61 73 65 64 20 41 6c 69 61 73 20 41 6e 61 6c 79 73 69 73 20 | .uses.Type.Based.Alias.Analysis. |
| 10a80 | 28 61 6c 73 6f 20 6b 6e 6f 77 6e 20 61 73 20 53 74 72 69 63 74 20 41 6c 69 61 73 69 6e 67 29 20 | (also.known.as.Strict.Aliasing). |
| 10aa0 | 74 6f 0a 20 20 20 20 20 20 70 65 72 66 6f 72 6d 20 73 6f 6d 65 20 6f 70 74 69 6d 69 7a 61 74 69 | to.......perform.some.optimizati |
| 10ac0 | 6f 6e 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 70 6f 69 6e 74 65 72 73 20 6f 66 | ons..This.means.that.pointers.of |
| 10ae0 | 20 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 6d 75 73 74 0a 20 20 20 20 20 20 6e 6f 74 20 | .different.types.must.......not. |
| 10b00 | 61 6c 69 61 73 20 74 68 65 20 73 61 6d 65 20 6d 65 6d 6f 72 79 2c 20 77 69 74 68 20 74 68 65 20 | alias.the.same.memory,.with.the. |
| 10b20 | 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 3c 63 6f 64 65 3e 75 38 3c 2f 63 6f 64 65 3e 2e 20 50 6f | exception.of.<code>u8</code>..Po |
| 10b40 | 69 6e 74 65 72 73 20 74 6f 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 75 38 3c 2f 63 6f 64 65 3e 20 | inters.to.......<code>u8</code>. |
| 10b60 | 63 61 6e 20 61 6c 69 61 73 20 61 6e 79 20 6d 65 6d 6f 72 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | can.alias.any.memory........</p> |
| 10b80 | 0a 20 20 20 20 20 20 3c 70 3e 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 74 68 69 73 20 63 6f | .......<p>As.an.example,.this.co |
| 10ba0 | 64 65 20 70 72 6f 64 75 63 65 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 3a 3c | de.produces.undefined.behavior:< |
| 10bc0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | /p>.......<pre><code.class="zig" |
| 10be0 | 3e 2a 40 70 74 72 43 61 73 74 28 26 61 6d 70 3b 75 33 32 2c 20 66 33 32 28 31 32 2e 33 34 29 29 | >*@ptrCast(&u32,.f32(12.34)) |
| 10c00 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 49 6e 73 74 65 61 64 2c 20 | </code></pre>.......<p>Instead,. |
| 10c20 | 75 73 65 20 3c 61 20 68 72 65 66 3d 22 23 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c | use.<a.href="#bitCast">@bitCast< |
| 10c40 | 2f 61 3e 3a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | /a>:.......<pre><code.class="zig |
| 10c60 | 22 3e 40 62 69 74 43 61 73 74 28 75 33 32 2c 20 66 33 32 28 31 32 2e 33 34 29 29 3c 2f 63 6f 64 | ">@bitCast(u32,.f32(12.34))</cod |
| 10c80 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 41 73 20 61 6e 20 61 64 64 65 64 20 62 65 | e></pre>.......<p>As.an.added.be |
| 10ca0 | 6e 65 66 69 74 2c 20 74 68 65 20 3c 63 6f 64 65 3e 40 62 69 74 63 61 73 74 3c 2f 63 6f 64 65 3e | nefit,.the.<code>@bitcast</code> |
| 10cc0 | 20 76 65 72 73 69 6f 6e 20 77 6f 72 6b 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 3c | .version.works.at.compile-time.< |
| 10ce0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c | /p>.......<p>See.also:</p><ul>.< |
| 10d00 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c | li><a.href="#Slices">Slices</a>< |
| 10d20 | 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 | /li>.<li><a.href="#Memory">Memor |
| 10d40 | 79 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a | y</a></li>.</ul>................ |
| 10d60 | 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 68 31 | ......<h1.id="Slices">Slices</h1 |
| 10d80 | 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 | >........<p.class="file">test.zi |
| 10da0 | 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 | g</p><pre><code.class="zig">cons |
| 10dc0 | 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f | t.assert.=.@import("std&quo |
| 10de0 | 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 62 61 | t;).debug.assert;..test."ba |
| 10e00 | 73 69 63 20 73 6c 69 63 65 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 20 61 72 72 61 79 | sic.slices".{.....var.array |
| 10e20 | 20 3d 20 5b 5d 69 33 32 7b 31 2c 20 32 2c 20 33 2c 20 34 7d 3b 0a 20 20 20 20 2f 2f 20 41 20 73 | .=.[]i32{1,.2,.3,.4};.....//.A.s |
| 10e40 | 6c 69 63 65 20 69 73 20 61 20 70 6f 69 6e 74 65 72 20 61 6e 64 20 61 20 6c 65 6e 67 74 68 2e 20 | lice.is.a.pointer.and.a.length.. |
| 10e60 | 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 61 6e 20 61 72 72 61 79 20 | The.difference.between.an.array. |
| 10e80 | 61 6e 64 0a 20 20 20 20 2f 2f 20 61 20 73 6c 69 63 65 20 69 73 20 74 68 61 74 20 74 68 65 20 61 | and.....//.a.slice.is.that.the.a |
| 10ea0 | 72 72 61 79 27 73 20 6c 65 6e 67 74 68 20 69 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 79 70 | rray's.length.is.part.of.the.typ |
| 10ec0 | 65 20 61 6e 64 20 6b 6e 6f 77 6e 20 61 74 0a 20 20 20 20 2f 2f 20 63 6f 6d 70 69 6c 65 2d 74 69 | e.and.known.at.....//.compile-ti |
| 10ee0 | 6d 65 2c 20 77 68 65 72 65 61 73 20 74 68 65 20 73 6c 69 63 65 27 73 20 6c 65 6e 67 74 68 20 69 | me,.whereas.the.slice's.length.i |
| 10f00 | 73 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 74 69 6d 65 2e 0a 20 20 20 20 2f 2f 20 42 6f 74 68 20 | s.known.at.runtime......//.Both. |
| 10f20 | 63 61 6e 20 62 65 20 61 63 63 65 73 73 65 64 20 77 69 74 68 20 74 68 65 20 60 6c 65 6e 60 20 66 | can.be.accessed.with.the.`len`.f |
| 10f40 | 69 65 6c 64 2e 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 61 72 72 61 79 5b 30 2e | ield......const.slice.=.array[0. |
| 10f60 | 2e 61 72 72 61 79 2e 6c 65 6e 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 63 65 2e 70 74 | .array.len];.....assert(slice.pt |
| 10f80 | 72 20 3d 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 30 5d 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 | r.==.&array[0]);.....assert( |
| 10fa0 | 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 61 72 72 61 79 2e 6c 65 6e 29 3b 0a 0a 20 20 20 20 2f 2f | slice.len.==.array.len);......// |
| 10fc0 | 20 53 6c 69 63 65 73 20 68 61 76 65 20 61 72 72 61 79 20 62 6f 75 6e 64 73 20 63 68 65 63 6b 69 | .Slices.have.array.bounds.checki |
| 10fe0 | 6e 67 2e 20 49 66 20 79 6f 75 20 74 72 79 20 74 6f 20 61 63 63 65 73 73 20 73 6f 6d 65 74 68 69 | ng..If.you.try.to.access.somethi |
| 11000 | 6e 67 20 6f 75 74 0a 20 20 20 20 2f 2f 20 6f 66 20 62 6f 75 6e 64 73 2c 20 79 6f 75 27 6c 6c 20 | ng.out.....//.of.bounds,.you'll. |
| 11020 | 67 65 74 20 61 20 73 61 66 65 74 79 20 63 68 65 63 6b 20 66 61 69 6c 75 72 65 3a 0a 20 20 20 20 | get.a.safety.check.failure:..... |
| 11040 | 73 6c 69 63 65 5b 31 30 5d 20 2b 3d 20 31 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 | slice[10].+=.1;.}</code></pre><p |
| 11060 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 | re><code.class="shell">$.zig.tes |
| 11080 | 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 62 61 73 69 63 20 73 6c 69 63 65 73 | t.test.zig.Test.1/1.basic.slices |
| 110a0 | 2e 2e 2e 69 6e 64 65 78 20 6f 75 74 20 6f 66 20 62 6f 75 6e 64 73 0a 3c 73 70 61 6e 20 63 6c 61 | ...index.out.of.bounds.<span.cla |
| 110c0 | 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f | ss="t37_1">/home/andy/dev/zig/do |
| 110e0 | 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 35 3a 31 30 3c 2f 73 70 61 6e 3e 3a 20 | cgen_tmp/test.zig:15:10</span>:. |
| 11100 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 33 37 32 62 20 69 6e 20 3f | <span.class="t2_0">0x20372b.in.? |
| 11120 | 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 6c 69 63 65 5b 31 30 5d 20 2b | ??.(test)</span>.....slice[10].+ |
| 11140 | 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 | =.1;..........<span.class="t32_1 |
| 11160 | 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f | ">^</span>.<span.class="t37_1">/ |
| 11180 | 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f | home/andy/dev/zig/build/lib/zig/ |
| 111a0 | 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 31 3a 32 | std/special/test_runner.zig:11:2 |
| 111c0 | 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 | 5</span>:.<span.class="t2_0">0x2 |
| 111e0 | 31 64 35 36 38 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 | 1d568.in.???.(test)</span>...... |
| 11200 | 20 20 20 74 72 79 20 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 20 | ...try.test_fn.func();.......... |
| 11220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f | ...............<span.class="t32_ |
| 11240 | 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e | 1">^</span>.<span.class="t37_1"> |
| 11260 | 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 | /home/andy/dev/zig/build/lib/zig |
| 11280 | 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 38 35 3a 32 32 | /std/special/bootstrap.zig:85:22 |
| 112a0 | 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 | </span>:.<span.class="t2_0">0x21 |
| 112c0 | 64 33 36 62 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 | d36b.in.???.(test)</span>....... |
| 112e0 | 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 7c 20 7b 0a | ......root.main().catch.|err|.{. |
| 11300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 | .....................<span.class |
| 11320 | 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | ="t32_1">^</span>.<span.class="t |
| 11340 | 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c | 37_1">/home/andy/dev/zig/build/l |
| 11360 | 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 | ib/zig/std/special/bootstrap.zig |
| 11380 | 3a 36 32 3a 32 30 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 | :62:20</span>:.<span.class="t2_0 |
| 113a0 | 22 3e 30 78 32 31 64 32 63 62 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a | ">0x21d2cb.in.???.(test)</span>. |
| 113c0 | 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 4d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 | ....return.callMain();.......... |
| 113e0 | 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c | ..........<span.class="t32_1">^< |
| 11400 | 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 | /span>.<span.class="t37_1">/home |
| 11420 | 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f | /andy/dev/zig/build/lib/zig/std/ |
| 11440 | 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 35 32 3a 33 39 3c 2f 73 70 61 | special/bootstrap.zig:52:39</spa |
| 11460 | 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 31 35 63 20 | n>:.<span.class="t2_0">0x21d15c. |
| 11480 | 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 74 64 2e 6f 73 2e | in.???.(test)</span>.....std.os. |
| 114a0 | 70 6f 73 69 78 2e 65 78 69 74 28 63 61 6c 6c 4d 61 69 6e 57 69 74 68 41 72 67 73 28 61 72 67 63 | posix.exit(callMainWithArgs(argc |
| 114c0 | 2c 20 61 72 67 76 2c 20 65 6e 76 70 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,.argv,.envp));................. |
| 114e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 | ......................<span.clas |
| 11500 | 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 | s="t32_1">^</span>.<span.class=" |
| 11520 | 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f | t37_1">/home/andy/dev/zig/build/ |
| 11540 | 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 | lib/zig/std/special/bootstrap.zi |
| 11560 | 67 3a 33 39 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 | g:39:5</span>:.<span.class="t2_0 |
| 11580 | 22 3e 30 78 32 31 64 30 65 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a | ">0x21d0e0.in.???.(test)</span>. |
| 115a0 | 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 | ....@noInlineCall(posixCallMainA |
| 115c0 | 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 | ndExit);.....<span.class="t32_1" |
| 115e0 | 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 | >^</span>..Tests.failed..Use.the |
| 11600 | 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 | .following.command.to.reproduce. |
| 11620 | 74 68 65 20 66 61 69 6c 75 72 65 3a 0a 2e 2f 7a 69 67 2d 63 61 63 68 65 2f 74 65 73 74 0a 3c 2f | the.failure:../zig-cache/test.</ |
| 11640 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 6f 6e | code></pre>........<p>This.is.on |
| 11660 | 65 20 72 65 61 73 6f 6e 20 77 65 20 70 72 65 66 65 72 20 73 6c 69 63 65 73 20 74 6f 20 70 6f 69 | e.reason.we.prefer.slices.to.poi |
| 11680 | 6e 74 65 72 73 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 | nters.</p>.......<p.class="file" |
| 116a0 | 3e 73 6c 69 63 65 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | >slices.zig</p><pre><code.class= |
| 116c0 | 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 | "zig">const.assert.=.@import(&qu |
| 116e0 | 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 | ot;std").debug.assert;.cons |
| 11700 | 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 | t.mem.=.@import("std") |
| 11720 | 2e 6d 65 6d 3b 0a 63 6f 6e 73 74 20 66 6d 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b | .mem;.const.fmt.=.@import(" |
| 11740 | 73 74 64 26 71 75 6f 74 3b 29 2e 66 6d 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 75 73 69 6e | std").fmt;..test."usin |
| 11760 | 67 20 73 6c 69 63 65 73 20 66 6f 72 20 73 74 72 69 6e 67 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | g.slices.for.strings".{.... |
| 11780 | 20 2f 2f 20 5a 69 67 20 68 61 73 20 6e 6f 20 63 6f 6e 63 65 70 74 20 6f 66 20 73 74 72 69 6e 67 | .//.Zig.has.no.concept.of.string |
| 117a0 | 73 2e 20 53 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 61 72 65 20 61 72 72 61 79 73 20 6f 66 | s..String.literals.are.arrays.of |
| 117c0 | 20 75 38 2c 20 61 6e 64 0a 20 20 20 20 2f 2f 20 69 6e 20 67 65 6e 65 72 61 6c 20 74 68 65 20 73 | .u8,.and.....//.in.general.the.s |
| 117e0 | 74 72 69 6e 67 20 74 79 70 65 20 69 73 20 5b 5d 75 38 20 28 73 6c 69 63 65 20 6f 66 20 75 38 29 | tring.type.is.[]u8.(slice.of.u8) |
| 11800 | 2e 0a 20 20 20 20 2f 2f 20 48 65 72 65 20 77 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 | ......//.Here.we.implicitly.cast |
| 11820 | 20 5b 35 5d 75 38 20 74 6f 20 5b 5d 63 6f 6e 73 74 20 75 38 0a 20 20 20 20 63 6f 6e 73 74 20 68 | .[5]u8.to.[]const.u8.....const.h |
| 11840 | 65 6c 6c 6f 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 20 3d 20 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 | ello:.[]const.u8.=."hello&q |
| 11860 | 75 6f 74 3b 3b 0a 20 20 20 20 63 6f 6e 73 74 20 77 6f 72 6c 64 3a 20 5b 5d 63 6f 6e 73 74 20 75 | uot;;.....const.world:.[]const.u |
| 11880 | 38 20 3d 20 26 71 75 6f 74 3b e4 b8 96 e7 95 8c 26 71 75 6f 74 3b 3b 0a 0a 20 20 20 20 76 61 72 | 8.=."......";......var |
| 118a0 | 20 61 6c 6c 5f 74 6f 67 65 74 68 65 72 3a 20 5b 31 30 30 5d 75 38 20 3d 20 75 6e 64 65 66 69 6e | .all_together:.[100]u8.=.undefin |
| 118c0 | 65 64 3b 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 73 6c 69 63 65 20 73 79 6e | ed;.....//.You.can.use.slice.syn |
| 118e0 | 74 61 78 20 6f 6e 20 61 6e 20 61 72 72 61 79 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 20 61 72 | tax.on.an.array.to.convert.an.ar |
| 11900 | 72 61 79 20 69 6e 74 6f 20 61 20 73 6c 69 63 65 2e 0a 20 20 20 20 63 6f 6e 73 74 20 61 6c 6c 5f | ray.into.a.slice......const.all_ |
| 11920 | 74 6f 67 65 74 68 65 72 5f 73 6c 69 63 65 20 3d 20 61 6c 6c 5f 74 6f 67 65 74 68 65 72 5b 30 2e | together_slice.=.all_together[0. |
| 11940 | 2e 5d 3b 0a 20 20 20 20 2f 2f 20 53 74 72 69 6e 67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 | .];.....//.String.concatenation. |
| 11960 | 65 78 61 6d 70 6c 65 2e 0a 20 20 20 20 63 6f 6e 73 74 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 20 3d | example......const.hello_world.= |
| 11980 | 20 74 72 79 20 66 6d 74 2e 62 75 66 50 72 69 6e 74 28 61 6c 6c 5f 74 6f 67 65 74 68 65 72 5f 73 | .try.fmt.bufPrint(all_together_s |
| 119a0 | 6c 69 63 65 2c 20 26 71 75 6f 74 3b 7b 7d 20 7b 7d 26 71 75 6f 74 3b 2c 20 68 65 6c 6c 6f 2c 20 | lice,."{}.{}",.hello,. |
| 119c0 | 77 6f 72 6c 64 29 3b 0a 0a 20 20 20 20 2f 2f 20 47 65 6e 65 72 61 6c 6c 79 2c 20 79 6f 75 20 63 | world);......//.Generally,.you.c |
| 119e0 | 61 6e 20 75 73 65 20 55 54 46 2d 38 20 61 6e 64 20 6e 6f 74 20 77 6f 72 72 79 20 61 62 6f 75 74 | an.use.UTF-8.and.not.worry.about |
| 11a00 | 20 77 68 65 74 68 65 72 20 73 6f 6d 65 74 68 69 6e 67 20 69 73 20 61 0a 20 20 20 20 2f 2f 20 73 | .whether.something.is.a.....//.s |
| 11a20 | 74 72 69 6e 67 2e 20 49 66 20 79 6f 75 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 64 65 61 6c | tring..If.you.don't.need.to.deal |
| 11a40 | 20 77 69 74 68 20 69 6e 64 69 76 69 64 75 61 6c 20 63 68 61 72 61 63 74 65 72 73 2c 20 6e 6f 20 | .with.individual.characters,.no. |
| 11a60 | 6e 65 65 64 0a 20 20 20 20 2f 2f 20 74 6f 20 64 65 63 6f 64 65 2e 0a 20 20 20 20 61 73 73 65 72 | need.....//.to.decode......asser |
| 11a80 | 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 68 65 6c 6c 6f 5f 77 6f 72 6c 64 2c 20 26 71 75 6f 74 | t(mem.eql(u8,.hello_world,." |
| 11aa0 | 3b 68 65 6c 6c 6f 20 e4 b8 96 e7 95 8c 26 71 75 6f 74 3b 29 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 | ;hello......."));.}..test.& |
| 11ac0 | 71 75 6f 74 3b 73 6c 69 63 65 20 70 6f 69 6e 74 65 72 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 | quot;slice.pointer".{.....v |
| 11ae0 | 61 72 20 61 72 72 61 79 3a 20 5b 31 30 5d 75 38 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 | ar.array:.[10]u8.=.undefined;... |
| 11b00 | 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 26 61 6d 70 3b 61 72 72 61 79 5b 30 5d 3b 0a 0a 20 20 | ..const.ptr.=.&array[0];.... |
| 11b20 | 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 73 6c 69 63 69 6e 67 20 73 79 6e 74 61 78 20 | ..//.You.can.use.slicing.syntax. |
| 11b40 | 74 6f 20 63 6f 6e 76 65 72 74 20 61 20 70 6f 69 6e 74 65 72 20 69 6e 74 6f 20 61 20 73 6c 69 63 | to.convert.a.pointer.into.a.slic |
| 11b60 | 65 3a 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 70 74 72 5b 30 2e 2e 35 5d 3b 0a | e:.....const.slice.=.ptr[0..5];. |
| 11b80 | 20 20 20 20 73 6c 69 63 65 5b 32 5d 20 3d 20 33 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c 69 | ....slice[2].=.3;.....assert(sli |
| 11ba0 | 63 65 5b 32 5d 20 3d 3d 20 33 29 3b 0a 20 20 20 20 2f 2f 20 54 68 65 20 73 6c 69 63 65 20 69 73 | ce[2].==.3);.....//.The.slice.is |
| 11bc0 | 20 6d 75 74 61 62 6c 65 20 62 65 63 61 75 73 65 20 77 65 20 73 6c 69 63 65 64 20 61 20 6d 75 74 | .mutable.because.we.sliced.a.mut |
| 11be0 | 61 62 6c 65 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 | able.pointer......assert(@typeOf |
| 11c00 | 28 73 6c 69 63 65 29 20 3d 3d 20 5b 5d 75 38 29 3b 0a 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 | (slice).==.[]u8);......//.You.ca |
| 11c20 | 6e 20 61 6c 73 6f 20 73 6c 69 63 65 20 61 20 73 6c 69 63 65 3a 0a 20 20 20 20 63 6f 6e 73 74 20 | n.also.slice.a.slice:.....const. |
| 11c40 | 73 6c 69 63 65 32 20 3d 20 73 6c 69 63 65 5b 32 2e 2e 33 5d 3b 0a 20 20 20 20 61 73 73 65 72 74 | slice2.=.slice[2..3];.....assert |
| 11c60 | 28 73 6c 69 63 65 32 2e 6c 65 6e 20 3d 3d 20 31 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 73 6c | (slice2.len.==.1);.....assert(sl |
| 11c80 | 69 63 65 32 5b 30 5d 20 3d 3d 20 33 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 73 6c 69 | ice2[0].==.3);.}..test."sli |
| 11ca0 | 63 65 20 77 69 64 65 6e 69 6e 67 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 5a 69 67 20 73 | ce.widening".{.....//.Zig.s |
| 11cc0 | 75 70 70 6f 72 74 73 20 73 6c 69 63 65 20 77 69 64 65 6e 69 6e 67 20 61 6e 64 20 73 6c 69 63 65 | upports.slice.widening.and.slice |
| 11ce0 | 20 6e 61 72 72 6f 77 69 6e 67 2e 20 43 61 73 74 20 61 20 73 6c 69 63 65 20 6f 66 20 75 38 0a 20 | .narrowing..Cast.a.slice.of.u8.. |
| 11d00 | 20 20 20 2f 2f 20 74 6f 20 61 20 73 6c 69 63 65 20 6f 66 20 61 6e 79 74 68 69 6e 67 20 65 6c 73 | ...//.to.a.slice.of.anything.els |
| 11d20 | 65 2c 20 61 6e 64 20 5a 69 67 20 77 69 6c 6c 20 70 65 72 66 6f 72 6d 20 74 68 65 20 6c 65 6e 67 | e,.and.Zig.will.perform.the.leng |
| 11d40 | 74 68 20 63 6f 6e 76 65 72 73 69 6f 6e 2e 0a 20 20 20 20 63 6f 6e 73 74 20 61 72 72 61 79 20 61 | th.conversion......const.array.a |
| 11d60 | 6c 69 67 6e 28 40 61 6c 69 67 6e 4f 66 28 75 33 32 29 29 20 3d 20 5b 5d 75 38 7b 30 78 31 32 2c | lign(@alignOf(u32)).=.[]u8{0x12, |
| 11d80 | 20 30 78 31 32 2c 20 30 78 31 32 2c 20 30 78 31 32 2c 20 30 78 31 33 2c 20 30 78 31 33 2c 20 30 | .0x12,.0x12,.0x12,.0x13,.0x13,.0 |
| 11da0 | 78 31 33 2c 20 30 78 31 33 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 73 6c 69 63 65 20 3d 20 28 5b | x13,.0x13};.....const.slice.=.([ |
| 11dc0 | 5d 63 6f 6e 73 74 20 75 33 32 29 28 61 72 72 61 79 5b 30 2e 2e 5d 29 3b 0a 20 20 20 20 61 73 73 | ]const.u32)(array[0..]);.....ass |
| 11de0 | 65 72 74 28 73 6c 69 63 65 2e 6c 65 6e 20 3d 3d 20 32 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 | ert(slice.len.==.2);.....assert( |
| 11e00 | 73 6c 69 63 65 5b 30 5d 20 3d 3d 20 30 78 31 32 31 32 31 32 31 32 29 3b 0a 20 20 20 20 61 73 73 | slice[0].==.0x12121212);.....ass |
| 11e20 | 65 72 74 28 73 6c 69 63 65 5b 31 5d 20 3d 3d 20 30 78 31 33 31 33 31 33 31 33 29 3b 0a 7d 3c 2f | ert(slice[1].==.0x13131313);.}</ |
| 11e40 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 | code></pre><pre><code.class="she |
| 11e60 | 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 6c 69 63 65 73 2e 7a 69 67 0a 54 65 73 74 20 31 | ll">$.zig.test.slices.zig.Test.1 |
| 11e80 | 2f 33 20 75 73 69 6e 67 20 73 6c 69 63 65 73 20 66 6f 72 20 73 74 72 69 6e 67 73 2e 2e 2e 4f 4b | /3.using.slices.for.strings...OK |
| 11ea0 | 0a 54 65 73 74 20 32 2f 33 20 73 6c 69 63 65 20 70 6f 69 6e 74 65 72 2e 2e 2e 4f 4b 0a 54 65 73 | .Test.2/3.slice.pointer...OK.Tes |
| 11ec0 | 74 20 33 2f 33 20 73 6c 69 63 65 20 77 69 64 65 6e 69 6e 67 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 | t.3/3.slice.widening...OK.</code |
| 11ee0 | 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c | ></pre>........<p>See.also:</p>< |
| 11f00 | 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e | ul>.<li><a.href="#Pointers">Poin |
| 11f20 | 74 65 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 6f 72 22 | ters</a></li>.<li><a.href="#for" |
| 11f40 | 3e 66 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 41 72 72 61 | >for</a></li>.<li><a.href="#Arra |
| 11f60 | 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 | ys">Arrays</a></li>.</ul>....... |
| 11f80 | 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 73 74 72 75 63 74 22 3e 73 74 72 75 63 74 3c 2f | ........<h1.id="struct">struct</ |
| 11fa0 | 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 74 72 75 63 | h1>........<p.class="file">struc |
| 11fc0 | 74 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | ts.zig</p><pre><code.class="zig" |
| 11fe0 | 3e 2f 2f 20 44 65 63 6c 61 72 65 20 61 20 73 74 72 75 63 74 2e 0a 2f 2f 20 5a 69 67 20 67 69 76 | >//.Declare.a.struct..//.Zig.giv |
| 12000 | 65 73 20 6e 6f 20 67 75 61 72 61 6e 74 65 65 73 20 61 62 6f 75 74 20 74 68 65 20 6f 72 64 65 72 | es.no.guarantees.about.the.order |
| 12020 | 20 6f 66 20 66 69 65 6c 64 73 20 61 6e 64 20 77 68 65 74 68 65 72 20 6f 72 0a 2f 2f 20 6e 6f 74 | .of.fields.and.whether.or.//.not |
| 12040 | 20 74 68 65 72 65 20 77 69 6c 6c 20 62 65 20 70 61 64 64 69 6e 67 2e 0a 63 6f 6e 73 74 20 50 6f | .there.will.be.padding..const.Po |
| 12060 | 69 6e 74 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 3a 20 66 33 32 2c 0a 20 20 20 20 79 | int.=.struct.{.....x:.f32,.....y |
| 12080 | 3a 20 66 33 32 2c 0a 7d 3b 0a 0a 2f 2f 20 4d 61 79 62 65 20 77 65 20 77 61 6e 74 20 74 6f 20 70 | :.f32,.};..//.Maybe.we.want.to.p |
| 120a0 | 61 73 73 20 69 74 20 74 6f 20 4f 70 65 6e 47 4c 20 73 6f 20 77 65 20 77 61 6e 74 20 74 6f 20 62 | ass.it.to.OpenGL.so.we.want.to.b |
| 120c0 | 65 20 70 61 72 74 69 63 75 6c 61 72 20 61 62 6f 75 74 0a 2f 2f 20 68 6f 77 20 74 68 65 20 62 79 | e.particular.about.//.how.the.by |
| 120e0 | 74 65 73 20 61 72 65 20 61 72 72 61 6e 67 65 64 2e 0a 63 6f 6e 73 74 20 50 6f 69 6e 74 32 20 3d | tes.are.arranged..const.Point2.= |
| 12100 | 20 70 61 63 6b 65 64 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 3a 20 66 33 32 2c 0a 20 20 20 | .packed.struct.{.....x:.f32,.... |
| 12120 | 20 79 3a 20 66 33 32 2c 0a 7d 3b 0a 0a 0a 2f 2f 20 44 65 63 6c 61 72 65 20 61 6e 20 69 6e 73 74 | .y:.f32,.};...//.Declare.an.inst |
| 12140 | 61 6e 63 65 20 6f 66 20 61 20 73 74 72 75 63 74 2e 0a 63 6f 6e 73 74 20 70 20 3d 20 50 6f 69 6e | ance.of.a.struct..const.p.=.Poin |
| 12160 | 74 20 7b 0a 20 20 20 20 2e 78 20 3d 20 30 2e 31 32 2c 0a 20 20 20 20 2e 79 20 3d 20 30 2e 33 34 | t.{......x.=.0.12,......y.=.0.34 |
| 12180 | 2c 0a 7d 3b 0a 0a 2f 2f 20 4d 61 79 62 65 20 77 65 27 72 65 20 6e 6f 74 20 72 65 61 64 79 20 74 | ,.};..//.Maybe.we're.not.ready.t |
| 121a0 | 6f 20 66 69 6c 6c 20 6f 75 74 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 66 69 65 6c 64 73 2e 0a 76 | o.fill.out.some.of.the.fields..v |
| 121c0 | 61 72 20 70 32 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 2e 78 20 3d 20 30 2e 31 32 2c 0a 20 | ar.p2.=.Point.{......x.=.0.12,.. |
| 121e0 | 20 20 20 2e 79 20 3d 20 75 6e 64 65 66 69 6e 65 64 2c 0a 7d 3b 0a 0a 2f 2f 20 53 74 72 75 63 74 | ....y.=.undefined,.};..//.Struct |
| 12200 | 73 20 63 61 6e 20 68 61 76 65 20 6d 65 74 68 6f 64 73 0a 2f 2f 20 53 74 72 75 63 74 20 6d 65 74 | s.can.have.methods.//.Struct.met |
| 12220 | 68 6f 64 73 20 61 72 65 20 6e 6f 74 20 73 70 65 63 69 61 6c 2c 20 74 68 65 79 20 61 72 65 20 6f | hods.are.not.special,.they.are.o |
| 12240 | 6e 6c 79 20 6e 61 6d 65 73 70 61 63 65 64 0a 2f 2f 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 | nly.namespaced.//.functions.that |
| 12260 | 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 77 69 74 68 20 64 6f 74 20 73 79 6e 74 61 78 2e 0a 63 | .you.can.call.with.dot.syntax..c |
| 12280 | 6f 6e 73 74 20 56 65 63 33 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 3a 20 66 33 32 2c | onst.Vec3.=.struct.{.....x:.f32, |
| 122a0 | 0a 20 20 20 20 79 3a 20 66 33 32 2c 0a 20 20 20 20 7a 3a 20 66 33 32 2c 0a 0a 20 20 20 20 70 75 | .....y:.f32,.....z:.f32,......pu |
| 122c0 | 62 20 66 6e 20 69 6e 69 74 28 78 3a 20 66 33 32 2c 20 79 3a 20 66 33 32 2c 20 7a 3a 20 66 33 32 | b.fn.init(x:.f32,.y:.f32,.z:.f32 |
| 122e0 | 29 20 56 65 63 33 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 56 65 63 33 20 7b 0a 20 | ).Vec3.{.........return.Vec3.{.. |
| 12300 | 20 20 20 20 20 20 20 20 20 20 20 2e 78 20 3d 20 78 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e | ............x.=.x,.............. |
| 12320 | 79 20 3d 20 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 7a 20 3d 20 7a 2c 0a 20 20 20 20 20 | y.=.y,..............z.=.z,...... |
| 12340 | 20 20 20 7d 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 20 66 6e 20 64 6f 74 28 73 65 6c 66 | ...};.....}......pub.fn.dot(self |
| 12360 | 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 20 56 65 63 33 2c 20 6f 74 68 65 72 3a 20 26 61 6d 70 3b 63 | :.&const.Vec3,.other:.&c |
| 12380 | 6f 6e 73 74 20 56 65 63 33 29 20 66 33 32 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | onst.Vec3).f32.{.........return. |
| 123a0 | 73 65 6c 66 2e 78 20 2a 20 6f 74 68 65 72 2e 78 20 2b 20 73 65 6c 66 2e 79 20 2a 20 6f 74 68 65 | self.x.*.other.x.+.self.y.*.othe |
| 123c0 | 72 2e 79 20 2b 20 73 65 6c 66 2e 7a 20 2a 20 6f 74 68 65 72 2e 7a 3b 0a 20 20 20 20 7d 0a 7d 3b | r.y.+.self.z.*.other.z;.....}.}; |
| 123e0 | 0a 0a 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 | ..const.assert.=.@import("s |
| 12400 | 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 74 65 73 74 20 26 71 75 | td").debug.assert;.test.&qu |
| 12420 | 6f 74 3b 64 6f 74 20 70 72 6f 64 75 63 74 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 | ot;dot.product".{.....const |
| 12440 | 20 76 31 20 3d 20 56 65 63 33 2e 69 6e 69 74 28 31 2e 30 2c 20 30 2e 30 2c 20 30 2e 30 29 3b 0a | .v1.=.Vec3.init(1.0,.0.0,.0.0);. |
| 12460 | 20 20 20 20 63 6f 6e 73 74 20 76 32 20 3d 20 56 65 63 33 2e 69 6e 69 74 28 30 2e 30 2c 20 31 2e | ....const.v2.=.Vec3.init(0.0,.1. |
| 12480 | 30 2c 20 30 2e 30 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 76 31 2e 64 6f 74 28 76 32 29 20 3d | 0,.0.0);.....assert(v1.dot(v2).= |
| 124a0 | 3d 20 30 2e 30 29 3b 0a 0a 20 20 20 20 2f 2f 20 4f 74 68 65 72 20 74 68 61 6e 20 62 65 69 6e 67 | =.0.0);......//.Other.than.being |
| 124c0 | 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 63 61 6c 6c 20 77 69 74 68 20 64 6f 74 20 73 79 6e 74 | .available.to.call.with.dot.synt |
| 124e0 | 61 78 2c 20 73 74 72 75 63 74 20 6d 65 74 68 6f 64 73 20 61 72 65 0a 20 20 20 20 2f 2f 20 6e 6f | ax,.struct.methods.are.....//.no |
| 12500 | 74 20 73 70 65 63 69 61 6c 2e 20 59 6f 75 20 63 61 6e 20 72 65 66 65 72 65 6e 63 65 20 74 68 65 | t.special..You.can.reference.the |
| 12520 | 6d 20 61 73 20 61 6e 79 20 6f 74 68 65 72 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 6e 73 69 64 | m.as.any.other.declaration.insid |
| 12540 | 65 0a 20 20 20 20 2f 2f 20 74 68 65 20 73 74 72 75 63 74 3a 0a 20 20 20 20 61 73 73 65 72 74 28 | e.....//.the.struct:.....assert( |
| 12560 | 56 65 63 33 2e 64 6f 74 28 76 31 2c 20 76 32 29 20 3d 3d 20 30 2e 30 29 3b 0a 7d 0a 0a 2f 2f 20 | Vec3.dot(v1,.v2).==.0.0);.}..//. |
| 12580 | 53 74 72 75 63 74 73 20 63 61 6e 20 68 61 76 65 20 67 6c 6f 62 61 6c 20 64 65 63 6c 61 72 61 74 | Structs.can.have.global.declarat |
| 125a0 | 69 6f 6e 73 2e 0a 2f 2f 20 53 74 72 75 63 74 73 20 63 61 6e 20 68 61 76 65 20 30 20 66 69 65 6c | ions..//.Structs.can.have.0.fiel |
| 125c0 | 64 73 2e 0a 63 6f 6e 73 74 20 45 6d 70 74 79 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 70 | ds..const.Empty.=.struct.{.....p |
| 125e0 | 75 62 20 63 6f 6e 73 74 20 50 49 20 3d 20 33 2e 31 34 3b 0a 7d 3b 0a 74 65 73 74 20 26 71 75 6f | ub.const.PI.=.3.14;.};.test.&quo |
| 12600 | 74 3b 73 74 72 75 63 74 20 6e 61 6d 65 73 70 61 63 65 64 20 76 61 72 69 61 62 6c 65 26 71 75 6f | t;struct.namespaced.variable&quo |
| 12620 | 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 45 6d 70 74 79 2e 50 49 20 3d 3d 20 33 2e 31 34 | t;.{.....assert(Empty.PI.==.3.14 |
| 12640 | 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 40 73 69 7a 65 4f 66 28 45 6d 70 74 79 29 20 3d 3d 20 | );.....assert(@sizeOf(Empty).==. |
| 12660 | 30 29 3b 0a 0a 20 20 20 20 2f 2f 20 79 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 69 6e 73 74 61 6e | 0);......//.you.can.still.instan |
| 12680 | 74 69 61 74 65 20 61 6e 20 65 6d 70 74 79 20 73 74 72 75 63 74 0a 20 20 20 20 63 6f 6e 73 74 20 | tiate.an.empty.struct.....const. |
| 126a0 | 64 6f 65 73 5f 6e 6f 74 68 69 6e 67 20 3d 20 45 6d 70 74 79 20 7b 7d 3b 0a 7d 0a 0a 2f 2f 20 73 | does_nothing.=.Empty.{};.}..//.s |
| 126c0 | 74 72 75 63 74 20 66 69 65 6c 64 20 6f 72 64 65 72 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 | truct.field.order.is.determined. |
| 126e0 | 62 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 66 6f 72 20 6f 70 74 69 6d 61 6c 20 70 65 72 66 | by.the.compiler.for.optimal.perf |
| 12700 | 6f 72 6d 61 6e 63 65 2e 0a 2f 2f 20 68 6f 77 65 76 65 72 2c 20 79 6f 75 20 63 61 6e 20 73 74 69 | ormance..//.however,.you.can.sti |
| 12720 | 6c 6c 20 63 61 6c 63 75 6c 61 74 65 20 61 20 73 74 72 75 63 74 20 62 61 73 65 20 70 6f 69 6e 74 | ll.calculate.a.struct.base.point |
| 12740 | 65 72 20 67 69 76 65 6e 20 61 20 66 69 65 6c 64 20 70 6f 69 6e 74 65 72 3a 0a 66 6e 20 73 65 74 | er.given.a.field.pointer:.fn.set |
| 12760 | 59 42 61 73 65 64 4f 6e 58 28 78 3a 20 26 61 6d 70 3b 66 33 32 2c 20 79 3a 20 66 33 32 29 20 76 | YBasedOnX(x:.&f32,.y:.f32).v |
| 12780 | 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 70 6f 69 6e 74 20 3d 20 40 66 69 65 6c 64 50 61 | oid.{.....const.point.=.@fieldPa |
| 127a0 | 72 65 6e 74 50 74 72 28 50 6f 69 6e 74 2c 20 26 71 75 6f 74 3b 78 26 71 75 6f 74 3b 2c 20 78 29 | rentPtr(Point,."x",.x) |
| 127c0 | 3b 0a 20 20 20 20 70 6f 69 6e 74 2e 79 20 3d 20 79 3b 0a 7d 0a 74 65 73 74 20 26 71 75 6f 74 3b | ;.....point.y.=.y;.}.test." |
| 127e0 | 66 69 65 6c 64 20 70 61 72 65 6e 74 20 70 6f 69 6e 74 65 72 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | field.parent.pointer".{.... |
| 12800 | 20 76 61 72 20 70 6f 69 6e 74 20 3d 20 50 6f 69 6e 74 20 7b 0a 20 20 20 20 20 20 20 20 2e 78 20 | .var.point.=.Point.{..........x. |
| 12820 | 3d 20 30 2e 31 32 33 34 2c 0a 20 20 20 20 20 20 20 20 2e 79 20 3d 20 30 2e 35 36 37 38 2c 0a 20 | =.0.1234,..........y.=.0.5678,.. |
| 12840 | 20 20 20 7d 3b 0a 20 20 20 20 73 65 74 59 42 61 73 65 64 4f 6e 58 28 26 61 6d 70 3b 70 6f 69 6e | ...};.....setYBasedOnX(&poin |
| 12860 | 74 2e 78 2c 20 30 2e 39 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 6f 69 6e 74 2e 79 20 3d 3d | t.x,.0.9);.....assert(point.y.== |
| 12880 | 20 30 2e 39 29 3b 0a 7d 0a 0a 2f 2f 20 59 6f 75 20 63 61 6e 20 72 65 74 75 72 6e 20 61 20 73 74 | .0.9);.}..//.You.can.return.a.st |
| 128a0 | 72 75 63 74 20 66 72 6f 6d 20 61 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 69 73 20 69 73 20 68 6f | ruct.from.a.function..This.is.ho |
| 128c0 | 77 20 77 65 20 64 6f 20 67 65 6e 65 72 69 63 73 0a 2f 2f 20 69 6e 20 5a 69 67 3a 0a 66 6e 20 4c | w.we.do.generics.//.in.Zig:.fn.L |
| 128e0 | 69 6e 6b 65 64 4c 69 73 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 74 79 70 65 | inkedList(comptime.T:.type).type |
| 12900 | 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 20 20 20 20 70 | .{.....return.struct.{.........p |
| 12920 | 75 62 20 63 6f 6e 73 74 20 4e 6f 64 65 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 20 20 20 | ub.const.Node.=.struct.{........ |
| 12940 | 20 20 20 20 20 70 72 65 76 3a 20 3f 26 61 6d 70 3b 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 | .....prev:.?&Node,.......... |
| 12960 | 20 20 20 6e 65 78 74 3a 20 3f 26 61 6d 70 3b 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | ...next:.?&Node,............ |
| 12980 | 20 64 61 74 61 3a 20 54 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 0a 20 20 20 20 20 20 20 20 66 69 | .data:.T,.........};..........fi |
| 129a0 | 72 73 74 3a 20 3f 26 61 6d 70 3b 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 6c 61 73 74 3a 20 20 | rst:.?&Node,.........last:.. |
| 129c0 | 3f 26 61 6d 70 3b 4e 6f 64 65 2c 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a 20 20 20 75 73 69 7a 65 | ?&Node,.........len:...usize |
| 129e0 | 2c 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 6c 69 6e 6b 65 64 20 6c 69 | ,.....};.}..test."linked.li |
| 12a00 | 73 74 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 46 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c | st".{.....//.Functions.call |
| 12a20 | 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 72 65 20 6d 65 6d 6f 69 7a 65 64 2e | ed.at.compile-time.are.memoized. |
| 12a40 | 20 54 68 69 73 20 6d 65 61 6e 73 20 79 6f 75 20 63 61 6e 0a 20 20 20 20 2f 2f 20 64 6f 20 74 68 | .This.means.you.can.....//.do.th |
| 12a60 | 69 73 3a 0a 20 20 20 20 61 73 73 65 72 74 28 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 20 3d | is:.....assert(LinkedList(i32).= |
| 12a80 | 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 29 3b 0a 0a 20 20 20 20 76 61 72 20 6c 69 73 | =.LinkedList(i32));......var.lis |
| 12aa0 | 74 20 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 66 | t.=.LinkedList(i32).{..........f |
| 12ac0 | 69 72 73 74 20 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 2e 6c 61 73 74 20 3d 20 6e 75 6c | irst.=.null,..........last.=.nul |
| 12ae0 | 6c 2c 0a 20 20 20 20 20 20 20 20 2e 6c 65 6e 20 3d 20 30 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 | l,..........len.=.0,.....};..... |
| 12b00 | 61 73 73 65 72 74 28 6c 69 73 74 2e 6c 65 6e 20 3d 3d 20 30 29 3b 0a 0a 20 20 20 20 2f 2f 20 53 | assert(list.len.==.0);......//.S |
| 12b20 | 69 6e 63 65 20 74 79 70 65 73 20 61 72 65 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 | ince.types.are.first.class.value |
| 12b40 | 73 20 79 6f 75 20 63 61 6e 20 69 6e 73 74 61 6e 74 69 61 74 65 20 74 68 65 20 74 79 70 65 0a 20 | s.you.can.instantiate.the.type.. |
| 12b60 | 20 20 20 2f 2f 20 62 79 20 61 73 73 69 67 6e 69 6e 67 20 69 74 20 74 6f 20 61 20 76 61 72 69 61 | ...//.by.assigning.it.to.a.varia |
| 12b80 | 62 6c 65 3a 0a 20 20 20 20 63 6f 6e 73 74 20 4c 69 73 74 4f 66 49 6e 74 73 20 3d 20 4c 69 6e 6b | ble:.....const.ListOfInts.=.Link |
| 12ba0 | 65 64 4c 69 73 74 28 69 33 32 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 4c 69 73 74 4f 66 49 6e | edList(i32);.....assert(ListOfIn |
| 12bc0 | 74 73 20 3d 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 32 29 29 3b 0a 0a 20 20 20 20 76 61 72 | ts.==.LinkedList(i32));......var |
| 12be0 | 20 6e 6f 64 65 20 3d 20 4c 69 73 74 4f 66 49 6e 74 73 2e 4e 6f 64 65 20 7b 0a 20 20 20 20 20 20 | .node.=.ListOfInts.Node.{....... |
| 12c00 | 20 20 2e 70 72 65 76 20 3d 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 2e 6e 65 78 74 20 3d 20 | ...prev.=.null,..........next.=. |
| 12c20 | 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 20 20 2e 64 61 74 61 20 3d 20 31 32 33 34 2c 0a 20 20 20 20 | null,..........data.=.1234,..... |
| 12c40 | 7d 3b 0a 20 20 20 20 76 61 72 20 6c 69 73 74 32 20 3d 20 4c 69 6e 6b 65 64 4c 69 73 74 28 69 33 | };.....var.list2.=.LinkedList(i3 |
| 12c60 | 32 29 20 7b 0a 20 20 20 20 20 20 20 20 2e 66 69 72 73 74 20 3d 20 26 61 6d 70 3b 6e 6f 64 65 2c | 2).{..........first.=.&node, |
| 12c80 | 0a 20 20 20 20 20 20 20 20 2e 6c 61 73 74 20 3d 20 26 61 6d 70 3b 6e 6f 64 65 2c 0a 20 20 20 20 | ..........last.=.&node,..... |
| 12ca0 | 20 20 20 20 2e 6c 65 6e 20 3d 20 31 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 | .....len.=.1,.....};.....assert( |
| 12cc0 | 28 3f 3f 6c 69 73 74 32 2e 66 69 72 73 74 29 2e 64 61 74 61 20 3d 3d 20 31 32 33 34 29 3b 0a 7d | (??list2.first).data.==.1234);.} |
| 12ce0 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 | </code></pre><pre><code.class="s |
| 12d00 | 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 74 72 75 63 74 73 2e 7a 69 67 0a 54 65 73 | hell">$.zig.test.structs.zig.Tes |
| 12d20 | 74 20 31 2f 34 20 64 6f 74 20 70 72 6f 64 75 63 74 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 34 20 | t.1/4.dot.product...OK.Test.2/4. |
| 12d40 | 73 74 72 75 63 74 20 6e 61 6d 65 73 70 61 63 65 64 20 76 61 72 69 61 62 6c 65 2e 2e 2e 4f 4b 0a | struct.namespaced.variable...OK. |
| 12d60 | 54 65 73 74 20 33 2f 34 20 66 69 65 6c 64 20 70 61 72 65 6e 74 20 70 6f 69 6e 74 65 72 2e 2e 2e | Test.3/4.field.parent.pointer... |
| 12d80 | 4f 4b 0a 54 65 73 74 20 34 2f 34 20 6c 69 6e 6b 65 64 20 6c 69 73 74 2e 2e 2e 4f 4b 0a 3c 2f 63 | OK.Test.4/4.linked.list...OK.</c |
| 12da0 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f | ode></pre>........<p>See.also:</ |
| 12dc0 | 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 | p><ul>.<li><a.href="#comptime">c |
| 12de0 | 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 66 | omptime</a></li>.<li><a.href="#f |
| 12e00 | 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 3c 2f | ieldParentPtr">@fieldParentPtr</ |
| 12e20 | 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 | a></li>.</ul>...............<h1. |
| 12e40 | 69 64 3d 22 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c | id="enum">enum</h1>........<p.cl |
| 12e60 | 61 73 73 3d 22 66 69 6c 65 22 3e 65 6e 75 6d 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f | ass="file">enums.zig</p><pre><co |
| 12e80 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 | de.class="zig">const.assert.=.@i |
| 12ea0 | 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 | mport("std").debug.ass |
| 12ec0 | 65 72 74 3b 0a 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 | ert;.const.mem.=.@import("s |
| 12ee0 | 74 64 26 71 75 6f 74 3b 29 2e 6d 65 6d 3b 0a 0a 2f 2f 20 44 65 63 6c 61 72 65 20 61 6e 20 65 6e | td").mem;..//.Declare.an.en |
| 12f00 | 75 6d 2e 0a 63 6f 6e 73 74 20 54 79 70 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 4f 6b 2c 0a | um..const.Type.=.enum.{.....Ok,. |
| 12f20 | 20 20 20 20 4e 6f 74 4f 6b 2c 0a 7d 3b 0a 0a 2f 2f 20 44 65 63 6c 61 72 65 20 61 20 73 70 65 63 | ....NotOk,.};..//.Declare.a.spec |
| 12f40 | 69 66 69 63 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 65 20 65 6e 75 6d 20 76 61 72 69 61 6e | ific.instance.of.the.enum.varian |
| 12f60 | 74 2e 0a 63 6f 6e 73 74 20 63 20 3d 20 54 79 70 65 2e 4f 6b 3b 0a 0a 2f 2f 20 49 66 20 79 6f 75 | t..const.c.=.Type.Ok;..//.If.you |
| 12f80 | 20 77 61 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 | .want.access.to.the.ordinal.valu |
| 12fa0 | 65 20 6f 66 20 61 6e 20 65 6e 75 6d 2c 20 79 6f 75 0a 2f 2f 20 63 61 6e 20 73 70 65 63 69 66 79 | e.of.an.enum,.you.//.can.specify |
| 12fc0 | 20 74 68 65 20 74 61 67 20 74 79 70 65 2e 0a 63 6f 6e 73 74 20 56 61 6c 75 65 20 3d 20 65 6e 75 | .the.tag.type..const.Value.=.enu |
| 12fe0 | 6d 28 75 32 29 20 7b 0a 20 20 20 20 5a 65 72 6f 2c 0a 20 20 20 20 4f 6e 65 2c 0a 20 20 20 20 54 | m(u2).{.....Zero,.....One,.....T |
| 13000 | 77 6f 2c 0a 7d 3b 0a 0a 2f 2f 20 4e 6f 77 20 79 6f 75 20 63 61 6e 20 63 61 73 74 20 62 65 74 77 | wo,.};..//.Now.you.can.cast.betw |
| 13020 | 65 65 6e 20 75 32 20 61 6e 64 20 56 61 6c 75 65 2e 0a 2f 2f 20 54 68 65 20 6f 72 64 69 6e 61 6c | een.u2.and.Value..//.The.ordinal |
| 13040 | 20 76 61 6c 75 65 20 73 74 61 72 74 73 20 66 72 6f 6d 20 30 2c 20 63 6f 75 6e 74 69 6e 67 20 75 | .value.starts.from.0,.counting.u |
| 13060 | 70 20 66 6f 72 20 65 61 63 68 20 6d 65 6d 62 65 72 2e 0a 74 65 73 74 20 26 71 75 6f 74 3b 65 6e | p.for.each.member..test."en |
| 13080 | 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 | um.ordinal.value".{.....ass |
| 130a0 | 65 72 74 28 75 32 28 56 61 6c 75 65 2e 5a 65 72 6f 29 20 3d 3d 20 30 29 3b 0a 20 20 20 20 61 73 | ert(u2(Value.Zero).==.0);.....as |
| 130c0 | 73 65 72 74 28 75 32 28 56 61 6c 75 65 2e 4f 6e 65 29 20 3d 3d 20 31 29 3b 0a 20 20 20 20 61 73 | sert(u2(Value.One).==.1);.....as |
| 130e0 | 73 65 72 74 28 75 32 28 56 61 6c 75 65 2e 54 77 6f 29 20 3d 3d 20 32 29 3b 0a 7d 0a 0a 2f 2f 20 | sert(u2(Value.Two).==.2);.}..//. |
| 13100 | 59 6f 75 20 63 61 6e 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 6f 72 64 69 6e 61 6c 20 76 61 6c | You.can.override.the.ordinal.val |
| 13120 | 75 65 20 66 6f 72 20 61 6e 20 65 6e 75 6d 2e 0a 63 6f 6e 73 74 20 56 61 6c 75 65 32 20 3d 20 65 | ue.for.an.enum..const.Value2.=.e |
| 13140 | 6e 75 6d 28 75 33 32 29 20 7b 0a 20 20 20 20 48 75 6e 64 72 65 64 20 3d 20 31 30 30 2c 0a 20 20 | num(u32).{.....Hundred.=.100,... |
| 13160 | 20 20 54 68 6f 75 73 61 6e 64 20 3d 20 31 30 30 30 2c 0a 20 20 20 20 4d 69 6c 6c 69 6f 6e 20 3d | ..Thousand.=.1000,.....Million.= |
| 13180 | 20 31 30 30 30 30 30 30 2c 0a 7d 3b 0a 74 65 73 74 20 26 71 75 6f 74 3b 73 65 74 20 65 6e 75 6d | .1000000,.};.test."set.enum |
| 131a0 | 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 | .ordinal.value".{.....asser |
| 131c0 | 74 28 75 33 32 28 56 61 6c 75 65 32 2e 48 75 6e 64 72 65 64 29 20 3d 3d 20 31 30 30 29 3b 0a 20 | t(u32(Value2.Hundred).==.100);.. |
| 131e0 | 20 20 20 61 73 73 65 72 74 28 75 33 32 28 56 61 6c 75 65 32 2e 54 68 6f 75 73 61 6e 64 29 20 3d | ...assert(u32(Value2.Thousand).= |
| 13200 | 3d 20 31 30 30 30 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 75 33 32 28 56 61 6c 75 65 32 2e 4d | =.1000);.....assert(u32(Value2.M |
| 13220 | 69 6c 6c 69 6f 6e 29 20 3d 3d 20 31 30 30 30 30 30 30 29 3b 0a 7d 0a 0a 2f 2f 20 45 6e 75 6d 73 | illion).==.1000000);.}..//.Enums |
| 13240 | 20 63 61 6e 20 68 61 76 65 20 6d 65 74 68 6f 64 73 2c 20 74 68 65 20 73 61 6d 65 20 61 73 20 73 | .can.have.methods,.the.same.as.s |
| 13260 | 74 72 75 63 74 73 20 61 6e 64 20 75 6e 69 6f 6e 73 2e 0a 2f 2f 20 45 6e 75 6d 20 6d 65 74 68 6f | tructs.and.unions..//.Enum.metho |
| 13280 | 64 73 20 61 72 65 20 6e 6f 74 20 73 70 65 63 69 61 6c 2c 20 74 68 65 79 20 61 72 65 20 6f 6e 6c | ds.are.not.special,.they.are.onl |
| 132a0 | 79 20 6e 61 6d 65 73 70 61 63 65 64 0a 2f 2f 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 79 | y.namespaced.//.functions.that.y |
| 132c0 | 6f 75 20 63 61 6e 20 63 61 6c 6c 20 77 69 74 68 20 64 6f 74 20 73 79 6e 74 61 78 2e 0a 63 6f 6e | ou.can.call.with.dot.syntax..con |
| 132e0 | 73 74 20 53 75 69 74 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 43 6c 75 62 73 2c 0a 20 20 20 20 | st.Suit.=.enum.{.....Clubs,..... |
| 13300 | 53 70 61 64 65 73 2c 0a 20 20 20 20 44 69 61 6d 6f 6e 64 73 2c 0a 20 20 20 20 48 65 61 72 74 73 | Spades,.....Diamonds,.....Hearts |
| 13320 | 2c 0a 0a 20 20 20 20 70 75 62 20 66 6e 20 69 73 43 6c 75 62 73 28 73 65 6c 66 3a 20 53 75 69 74 | ,......pub.fn.isClubs(self:.Suit |
| 13340 | 29 20 62 6f 6f 6c 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 20 3d 3d 20 | ).bool.{.........return.self.==. |
| 13360 | 53 75 69 74 2e 43 6c 75 62 73 3b 0a 20 20 20 20 7d 0a 7d 3b 0a 74 65 73 74 20 26 71 75 6f 74 3b | Suit.Clubs;.....}.};.test." |
| 13380 | 65 6e 75 6d 20 6d 65 74 68 6f 64 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 70 20 | enum.method".{.....const.p. |
| 133a0 | 3d 20 53 75 69 74 2e 53 70 61 64 65 73 3b 0a 20 20 20 20 61 73 73 65 72 74 28 21 70 2e 69 73 43 | =.Suit.Spades;.....assert(!p.isC |
| 133c0 | 6c 75 62 73 28 29 29 3b 0a 7d 0a 0a 2f 2f 20 41 6e 20 65 6e 75 6d 20 76 61 72 69 61 6e 74 20 6f | lubs());.}..//.An.enum.variant.o |
| 133e0 | 66 20 64 69 66 66 65 72 65 6e 74 20 74 79 70 65 73 20 63 61 6e 20 62 65 20 73 77 69 74 63 68 65 | f.different.types.can.be.switche |
| 13400 | 64 20 75 70 6f 6e 2e 0a 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 53 | d.upon..const.Foo.=.enum.{.....S |
| 13420 | 74 72 69 6e 67 2c 0a 20 20 20 20 4e 75 6d 62 65 72 2c 0a 20 20 20 20 4e 6f 6e 65 2c 0a 7d 3b 0a | tring,.....Number,.....None,.};. |
| 13440 | 74 65 73 74 20 26 71 75 6f 74 3b 65 6e 75 6d 20 76 61 72 69 61 6e 74 20 73 77 69 74 63 68 26 71 | test."enum.variant.switch&q |
| 13460 | 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 70 20 3d 20 46 6f 6f 2e 4e 75 6d 62 65 72 3b | uot;.{.....const.p.=.Foo.Number; |
| 13480 | 0a 20 20 20 20 63 6f 6e 73 74 20 77 68 61 74 5f 69 73 5f 69 74 20 3d 20 73 77 69 74 63 68 20 28 | .....const.what_is_it.=.switch.( |
| 134a0 | 70 29 20 7b 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 53 74 72 69 6e 67 20 3d 26 67 74 3b 20 26 71 | p).{.........Foo.String.=>.&q |
| 134c0 | 75 6f 74 3b 74 68 69 73 20 69 73 20 61 20 73 74 72 69 6e 67 26 71 75 6f 74 3b 2c 0a 20 20 20 20 | uot;this.is.a.string",..... |
| 134e0 | 20 20 20 20 46 6f 6f 2e 4e 75 6d 62 65 72 20 3d 26 67 74 3b 20 26 71 75 6f 74 3b 74 68 69 73 20 | ....Foo.Number.=>."this. |
| 13500 | 69 73 20 61 20 6e 75 6d 62 65 72 26 71 75 6f 74 3b 2c 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 4e | is.a.number",.........Foo.N |
| 13520 | 6f 6e 65 20 3d 26 67 74 3b 20 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 61 20 6e 6f 6e 65 26 71 | one.=>."this.is.a.none&q |
| 13540 | 75 6f 74 3b 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 | uot;,.....};.....assert(mem.eql( |
| 13560 | 75 38 2c 20 77 68 61 74 5f 69 73 5f 69 74 2c 20 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 61 20 | u8,.what_is_it,."this.is.a. |
| 13580 | 6e 75 6d 62 65 72 26 71 75 6f 74 3b 29 29 3b 0a 7d 0a 0a 2f 2f 20 40 54 61 67 54 79 70 65 20 63 | number"));.}..//.@TagType.c |
| 135a0 | 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 69 6e 74 65 67 65 72 | an.be.used.to.access.the.integer |
| 135c0 | 20 74 61 67 20 74 79 70 65 20 6f 66 20 61 6e 20 65 6e 75 6d 2e 0a 63 6f 6e 73 74 20 53 6d 61 6c | .tag.type.of.an.enum..const.Smal |
| 135e0 | 6c 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 4f 6e 65 2c 0a 20 20 20 20 54 77 6f 2c 0a 20 20 20 | l.=.enum.{.....One,.....Two,.... |
| 13600 | 20 54 68 72 65 65 2c 0a 20 20 20 20 46 6f 75 72 2c 0a 7d 3b 0a 74 65 73 74 20 26 71 75 6f 74 3b | .Three,.....Four,.};.test." |
| 13620 | 40 54 61 67 54 79 70 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 54 61 67 | @TagType".{.....assert(@Tag |
| 13640 | 54 79 70 65 28 53 6d 61 6c 6c 29 20 3d 3d 20 75 32 29 3b 0a 7d 0a 0a 2f 2f 20 40 6d 65 6d 62 65 | Type(Small).==.u2);.}..//.@membe |
| 13660 | 72 43 6f 75 6e 74 20 74 65 6c 6c 73 20 68 6f 77 20 6d 61 6e 79 20 66 69 65 6c 64 73 20 61 6e 20 | rCount.tells.how.many.fields.an. |
| 13680 | 65 6e 75 6d 20 68 61 73 3a 0a 74 65 73 74 20 26 71 75 6f 74 3b 40 6d 65 6d 62 65 72 43 6f 75 6e | enum.has:.test."@memberCoun |
| 136a0 | 74 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 6d 65 6d 62 65 72 43 6f 75 6e | t".{.....assert(@memberCoun |
| 136c0 | 74 28 53 6d 61 6c 6c 29 20 3d 3d 20 34 29 3b 0a 7d 0a 0a 2f 2f 20 40 6d 65 6d 62 65 72 4e 61 6d | t(Small).==.4);.}..//.@memberNam |
| 136e0 | 65 20 74 65 6c 6c 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 66 69 65 6c 64 20 69 6e 20 61 | e.tells.the.name.of.a.field.in.a |
| 13700 | 6e 20 65 6e 75 6d 3a 0a 74 65 73 74 20 26 71 75 6f 74 3b 40 6d 65 6d 62 65 72 4e 61 6d 65 26 71 | n.enum:.test."@memberName&q |
| 13720 | 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 40 6d | uot;.{.....assert(mem.eql(u8,.@m |
| 13740 | 65 6d 62 65 72 4e 61 6d 65 28 53 6d 61 6c 6c 2c 20 31 29 2c 20 26 71 75 6f 74 3b 54 77 6f 26 71 | emberName(Small,.1),."Two&q |
| 13760 | 75 6f 74 3b 29 29 3b 0a 7d 0a 0a 2f 2f 20 40 74 61 67 4e 61 6d 65 20 67 69 76 65 73 20 61 20 5b | uot;));.}..//.@tagName.gives.a.[ |
| 13780 | 5d 63 6f 6e 73 74 20 75 38 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 | ]const.u8.representation.of.an.e |
| 137a0 | 6e 75 6d 20 76 61 6c 75 65 3a 0a 74 65 73 74 20 26 71 75 6f 74 3b 40 74 61 67 4e 61 6d 65 26 71 | num.value:.test."@tagName&q |
| 137c0 | 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 40 74 | uot;.{.....assert(mem.eql(u8,.@t |
| 137e0 | 61 67 4e 61 6d 65 28 53 6d 61 6c 6c 2e 54 68 72 65 65 29 2c 20 26 71 75 6f 74 3b 54 68 72 65 65 | agName(Small.Three),."Three |
| 13800 | 26 71 75 6f 74 3b 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f | "));.}</code></pre><pre><co |
| 13820 | 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 65 6e 75 6d | de.class="shell">$.zig.test.enum |
| 13840 | 73 2e 7a 69 67 0a 54 65 73 74 20 31 2f 38 20 65 6e 75 6d 20 6f 72 64 69 6e 61 6c 20 76 61 6c 75 | s.zig.Test.1/8.enum.ordinal.valu |
| 13860 | 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 38 20 73 65 74 20 65 6e 75 6d 20 6f 72 64 69 6e 61 6c | e...OK.Test.2/8.set.enum.ordinal |
| 13880 | 20 76 61 6c 75 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 38 20 65 6e 75 6d 20 6d 65 74 68 6f 64 | .value...OK.Test.3/8.enum.method |
| 138a0 | 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 38 20 65 6e 75 6d 20 76 61 72 69 61 6e 74 20 73 77 69 74 | ...OK.Test.4/8.enum.variant.swit |
| 138c0 | 63 68 2e 2e 2e 4f 4b 0a 54 65 73 74 20 35 2f 38 20 40 54 61 67 54 79 70 65 2e 2e 2e 4f 4b 0a 54 | ch...OK.Test.5/8.@TagType...OK.T |
| 138e0 | 65 73 74 20 36 2f 38 20 40 6d 65 6d 62 65 72 43 6f 75 6e 74 2e 2e 2e 4f 4b 0a 54 65 73 74 20 37 | est.6/8.@memberCount...OK.Test.7 |
| 13900 | 2f 38 20 40 6d 65 6d 62 65 72 4e 61 6d 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 38 2f 38 20 40 74 61 | /8.@memberName...OK.Test.8/8.@ta |
| 13920 | 67 4e 61 6d 65 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 | gName...OK.</code></pre>........ |
| 13940 | 3c 68 32 20 69 64 3d 22 65 78 74 65 72 6e 2d 65 6e 75 6d 22 3e 65 78 74 65 72 6e 20 65 6e 75 6d | <h2.id="extern-enum">extern.enum |
| 13960 | 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 79 20 64 65 66 61 75 6c | </h2>........<p>.......By.defaul |
| 13980 | 74 2c 20 65 6e 75 6d 73 20 61 72 65 20 6e 6f 74 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 | t,.enums.are.not.guaranteed.to.b |
| 139a0 | 65 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 43 20 41 42 49 3a 0a 20 20 20 | e.compatible.with.the.C.ABI:.... |
| 139c0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 | ...</p>.......<p.class="file">te |
| 139e0 | 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | st.zig</p><pre><code.class="zig" |
| 13a00 | 3e 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 65 6e 75 6d 20 7b 20 41 2c 20 42 2c 20 43 20 7d 3b 0a 65 | >const.Foo.=.enum.{.A,.B,.C.};.e |
| 13a20 | 78 70 6f 72 74 20 66 6e 20 65 6e 74 72 79 28 66 6f 6f 3a 20 46 6f 6f 29 20 76 6f 69 64 20 7b 20 | xport.fn.entry(foo:.Foo).void.{. |
| 13a40 | 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | }</code></pre><pre><code.class=" |
| 13a60 | 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 0a | shell">$.zig.build-obj.test.zig. |
| 13a80 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 | <span.class="t0_1">/home/andy/de |
| 13aa0 | 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 32 32 3a 20 | v/zig/docgen_tmp/test.zig:2:22:. |
| 13ac0 | 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 | </span><span.class="t31_1">error |
| 13ae0 | 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 70 61 72 61 | :</span><span.class="t0_1">.para |
| 13b00 | 6d 65 74 65 72 20 6f 66 20 74 79 70 65 20 27 46 6f 6f 27 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 | meter.of.type.'Foo'.not.allowed. |
| 13b20 | 69 6e 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 | in.function.with.calling.convent |
| 13b40 | 69 6f 6e 20 27 63 63 63 27 3c 2f 73 70 61 6e 3e 0a 65 78 70 6f 72 74 20 66 6e 20 65 6e 74 72 79 | ion.'ccc'</span>.export.fn.entry |
| 13b60 | 28 66 6f 6f 3a 20 46 6f 6f 29 20 76 6f 69 64 20 7b 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (foo:.Foo).void.{............... |
| 13b80 | 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 | ........<span.class="t32_1">^</s |
| 13ba0 | 70 61 6e 3e 0a 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | pan>..</code></pre>.</code></pre |
| 13bc0 | 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 61 20 43 2d 41 42 49 2d 63 | >........<p>.......For.a.C-ABI-c |
| 13be0 | 6f 6d 70 61 74 69 62 6c 65 20 65 6e 75 6d 2c 20 75 73 65 20 3c 63 6f 64 65 20 63 6c 61 73 73 3d | ompatible.enum,.use.<code.class= |
| 13c00 | 22 7a 69 67 22 3e 65 78 74 65 72 6e 20 65 6e 75 6d 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 | "zig">extern.enum</code>:....... |
| 13c20 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e | </p>.......<p.class="file">test. |
| 13c40 | 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f | zig</p><pre><code.class="zig">co |
| 13c60 | 6e 73 74 20 46 6f 6f 20 3d 20 65 78 74 65 72 6e 20 65 6e 75 6d 20 7b 20 41 2c 20 42 2c 20 43 20 | nst.Foo.=.extern.enum.{.A,.B,.C. |
| 13c80 | 7d 3b 0a 65 78 70 6f 72 74 20 66 6e 20 65 6e 74 72 79 28 66 6f 6f 3a 20 46 6f 6f 29 20 76 6f 69 | };.export.fn.entry(foo:.Foo).voi |
| 13ca0 | 64 20 7b 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | d.{.}</code></pre><pre><code.cla |
| 13cc0 | 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e | ss="shell">$.zig.build-obj.test. |
| 13ce0 | 7a 69 67 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | zig</code></pre>...............< |
| 13d00 | 70 3e 54 4f 44 4f 20 70 61 63 6b 65 64 20 65 6e 75 6d 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | p>TODO.packed.enum</p>.......<p> |
| 13d20 | 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | See.also:</p><ul>.<li><a.href="# |
| 13d40 | 6d 65 6d 62 65 72 4e 61 6d 65 22 3e 40 6d 65 6d 62 65 72 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e | memberName">@memberName</a></li> |
| 13d60 | 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 65 6d 62 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d | .<li><a.href="#memberCount">@mem |
| 13d80 | 62 65 72 43 6f 75 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | berCount</a></li>.<li><a.href="# |
| 13da0 | 74 61 67 4e 61 6d 65 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e | tagName">@tagName</a></li>.</ul> |
| 13dc0 | 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 75 6e 69 6f 6e 22 3e 75 6e | ...............<h1.id="union">un |
| 13de0 | 69 6f 6e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e | ion</h1>........<p.class="file"> |
| 13e00 | 75 6e 69 6f 6e 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | union.zig</p><pre><code.class="z |
| 13e20 | 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 | ig">const.assert.=.@import(" |
| 13e40 | 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 | ;std").debug.assert;.const. |
| 13e60 | 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 6d | mem.=.@import("std").m |
| 13e80 | 65 6d 3b 0a 0a 2f 2f 20 41 20 75 6e 69 6f 6e 20 68 61 73 20 6f 6e 6c 79 20 31 20 61 63 74 69 76 | em;..//.A.union.has.only.1.activ |
| 13ea0 | 65 20 66 69 65 6c 64 20 61 74 20 61 20 74 69 6d 65 2e 0a 63 6f 6e 73 74 20 50 61 79 6c 6f 61 64 | e.field.at.a.time..const.Payload |
| 13ec0 | 20 3d 20 75 6e 69 6f 6e 20 7b 0a 20 20 20 20 49 6e 74 3a 20 69 36 34 2c 0a 20 20 20 20 46 6c 6f | .=.union.{.....Int:.i64,.....Flo |
| 13ee0 | 61 74 3a 20 66 36 34 2c 0a 20 20 20 20 42 6f 6f 6c 3a 20 62 6f 6f 6c 2c 0a 7d 3b 0a 74 65 73 74 | at:.f64,.....Bool:.bool,.};.test |
| 13f00 | 20 26 71 75 6f 74 3b 73 69 6d 70 6c 65 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 | ."simple.union".{..... |
| 13f20 | 76 61 72 20 70 61 79 6c 6f 61 64 20 3d 20 50 61 79 6c 6f 61 64 20 7b 2e 49 6e 74 20 3d 20 31 32 | var.payload.=.Payload.{.Int.=.12 |
| 13f40 | 33 34 7d 3b 0a 20 20 20 20 2f 2f 20 70 61 79 6c 6f 61 64 2e 46 6c 6f 61 74 20 3d 20 31 32 2e 33 | 34};.....//.payload.Float.=.12.3 |
| 13f60 | 34 3b 20 2f 2f 20 45 52 52 4f 52 21 20 66 69 65 6c 64 20 6e 6f 74 20 61 63 74 69 76 65 0a 20 20 | 4;.//.ERROR!.field.not.active... |
| 13f80 | 20 20 61 73 73 65 72 74 28 70 61 79 6c 6f 61 64 2e 49 6e 74 20 3d 3d 20 31 32 33 34 29 3b 0a 20 | ..assert(payload.Int.==.1234);.. |
| 13fa0 | 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 61 63 74 69 76 61 74 65 20 61 6e 6f 74 68 65 72 20 66 | ...//.You.can.activate.another.f |
| 13fc0 | 69 65 6c 64 20 62 79 20 61 73 73 69 67 6e 69 6e 67 20 74 68 65 20 65 6e 74 69 72 65 20 75 6e 69 | ield.by.assigning.the.entire.uni |
| 13fe0 | 6f 6e 2e 0a 20 20 20 20 70 61 79 6c 6f 61 64 20 3d 20 50 61 79 6c 6f 61 64 20 7b 2e 46 6c 6f 61 | on......payload.=.Payload.{.Floa |
| 14000 | 74 20 3d 20 31 32 2e 33 34 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 61 79 6c 6f 61 64 2e 46 | t.=.12.34};.....assert(payload.F |
| 14020 | 6c 6f 61 74 20 3d 3d 20 31 32 2e 33 34 29 3b 0a 7d 0a 0a 2f 2f 20 55 6e 69 6f 6e 73 20 63 61 6e | loat.==.12.34);.}..//.Unions.can |
| 14040 | 20 62 65 20 67 69 76 65 6e 20 61 6e 20 65 6e 75 6d 20 74 61 67 20 74 79 70 65 3a 0a 63 6f 6e 73 | .be.given.an.enum.tag.type:.cons |
| 14060 | 74 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 20 3d 20 65 6e 75 6d 20 7b 20 4f 6b 2c 20 4e 6f | t.ComplexTypeTag.=.enum.{.Ok,.No |
| 14080 | 74 4f 6b 20 7d 3b 20 0a 63 6f 6e 73 74 20 43 6f 6d 70 6c 65 78 54 79 70 65 20 3d 20 75 6e 69 6f | tOk.};..const.ComplexType.=.unio |
| 140a0 | 6e 28 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 29 20 7b 0a 20 20 20 20 4f 6b 3a 20 75 38 2c 0a | n(ComplexTypeTag).{.....Ok:.u8,. |
| 140c0 | 20 20 20 20 4e 6f 74 4f 6b 3a 20 76 6f 69 64 2c 0a 7d 3b 0a 0a 2f 2f 20 44 65 63 6c 61 72 65 20 | ....NotOk:.void,.};..//.Declare. |
| 140e0 | 61 20 73 70 65 63 69 66 69 63 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 65 20 75 6e 69 6f 6e | a.specific.instance.of.the.union |
| 14100 | 20 76 61 72 69 61 6e 74 2e 0a 74 65 73 74 20 26 71 75 6f 74 3b 64 65 63 6c 61 72 65 20 75 6e 69 | .variant..test."declare.uni |
| 14120 | 6f 6e 20 76 61 6c 75 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 43 | on.value".{.....const.c.=.C |
| 14140 | 6f 6d 70 6c 65 78 54 79 70 65 20 7b 20 2e 4f 6b 20 3d 20 30 20 7d 3b 0a 20 20 20 20 61 73 73 65 | omplexType.{..Ok.=.0.};.....asse |
| 14160 | 72 74 28 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 28 63 29 20 3d 3d 20 43 6f 6d 70 6c 65 78 54 | rt(ComplexTypeTag(c).==.ComplexT |
| 14180 | 79 70 65 54 61 67 2e 4f 6b 29 3b 0a 7d 0a 0a 2f 2f 20 40 54 61 67 54 79 70 65 20 63 61 6e 20 62 | ypeTag.Ok);.}..//.@TagType.can.b |
| 141a0 | 65 20 75 73 65 64 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 65 6e 75 6d 20 74 61 67 20 74 79 | e.used.to.access.the.enum.tag.ty |
| 141c0 | 70 65 20 6f 66 20 61 20 75 6e 69 6f 6e 2e 0a 74 65 73 74 20 26 71 75 6f 74 3b 40 54 61 67 54 79 | pe.of.a.union..test."@TagTy |
| 141e0 | 70 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 54 61 67 54 79 70 65 28 43 | pe".{.....assert(@TagType(C |
| 14200 | 6f 6d 70 6c 65 78 54 79 70 65 29 20 3d 3d 20 43 6f 6d 70 6c 65 78 54 79 70 65 54 61 67 29 3b 0a | omplexType).==.ComplexTypeTag);. |
| 14220 | 7d 0a 0a 2f 2f 20 55 6e 69 6f 6e 73 20 63 61 6e 20 62 65 20 6d 61 64 65 20 74 6f 20 69 6e 66 65 | }..//.Unions.can.be.made.to.infe |
| 14240 | 72 20 74 68 65 20 65 6e 75 6d 20 74 61 67 20 74 79 70 65 2e 0a 63 6f 6e 73 74 20 46 6f 6f 20 3d | r.the.enum.tag.type..const.Foo.= |
| 14260 | 20 75 6e 69 6f 6e 28 65 6e 75 6d 29 20 7b 0a 20 20 20 20 53 74 72 69 6e 67 3a 20 5b 5d 63 6f 6e | .union(enum).{.....String:.[]con |
| 14280 | 73 74 20 75 38 2c 0a 20 20 20 20 4e 75 6d 62 65 72 3a 20 75 36 34 2c 0a 0a 20 20 20 20 2f 2f 20 | st.u8,.....Number:.u64,......//. |
| 142a0 | 76 6f 69 64 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 77 68 65 6e 20 69 6e 66 65 72 72 69 | void.can.be.omitted.when.inferri |
| 142c0 | 6e 67 20 65 6e 75 6d 20 74 61 67 20 74 79 70 65 2e 0a 20 20 20 20 4e 6f 6e 65 2c 0a 7d 3b 0a 74 | ng.enum.tag.type......None,.};.t |
| 142e0 | 65 73 74 20 26 71 75 6f 74 3b 75 6e 69 6f 6e 20 76 61 72 69 61 6e 74 20 73 77 69 74 63 68 26 71 | est."union.variant.switch&q |
| 14300 | 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 70 20 3d 20 46 6f 6f 20 7b 20 2e 4e 75 6d 62 | uot;.{.....const.p.=.Foo.{..Numb |
| 14320 | 65 72 20 3d 20 35 34 20 7d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 77 68 61 74 5f 69 73 5f 69 74 20 | er.=.54.};.....const.what_is_it. |
| 14340 | 3d 20 73 77 69 74 63 68 20 28 70 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 43 61 70 74 75 72 | =.switch.(p).{.........//.Captur |
| 14360 | 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 53 74 72 69 6e | e.by.reference.........Foo.Strin |
| 14380 | 67 20 3d 26 67 74 3b 20 7c 2a 78 7c 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | g.=>.|*x|.blk:.{............. |
| 143a0 | 62 72 65 61 6b 20 3a 62 6c 6b 20 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 61 20 73 74 72 69 6e | break.:blk."this.is.a.strin |
| 143c0 | 67 26 71 75 6f 74 3b 3b 0a 20 20 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 | g";.........},..........//. |
| 143e0 | 43 61 70 74 75 72 65 20 62 79 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 4e 75 6d | Capture.by.value.........Foo.Num |
| 14400 | 62 65 72 20 3d 26 67 74 3b 20 7c 78 7c 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 | ber.=>.|x|.blk:.{............ |
| 14420 | 20 61 73 73 65 72 74 28 78 20 3d 3d 20 35 34 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 | .assert(x.==.54);.............br |
| 14440 | 65 61 6b 20 3a 62 6c 6b 20 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 61 20 6e 75 6d 62 65 72 26 | eak.:blk."this.is.a.number& |
| 14460 | 71 75 6f 74 3b 3b 0a 20 20 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 20 20 20 20 20 46 6f 6f 2e 4e | quot;;.........},..........Foo.N |
| 14480 | 6f 6e 65 20 3d 26 67 74 3b 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 | one.=>.blk:.{.............bre |
| 144a0 | 61 6b 20 3a 62 6c 6b 20 26 71 75 6f 74 3b 74 68 69 73 20 69 73 20 61 20 6e 6f 6e 65 26 71 75 6f | ak.:blk."this.is.a.none&quo |
| 144c0 | 74 3b 3b 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 7d 3b 0a 20 20 20 20 61 73 73 65 72 74 | t;;.........},.....};.....assert |
| 144e0 | 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 77 68 61 74 5f 69 73 5f 69 74 2c 20 26 71 75 6f 74 3b 74 | (mem.eql(u8,.what_is_it,."t |
| 14500 | 68 69 73 20 69 73 20 61 20 6e 75 6d 62 65 72 26 71 75 6f 74 3b 29 29 3b 0a 7d 0a 0a 2f 2f 20 54 | his.is.a.number"));.}..//.T |
| 14520 | 4f 44 4f 20 75 6e 69 6f 6e 20 6d 65 74 68 6f 64 73 0a 0a 0a 63 6f 6e 73 74 20 53 6d 61 6c 6c 20 | ODO.union.methods...const.Small. |
| 14540 | 3d 20 75 6e 69 6f 6e 20 7b 0a 20 20 20 20 41 3a 20 69 33 32 2c 0a 20 20 20 20 42 3a 20 62 6f 6f | =.union.{.....A:.i32,.....B:.boo |
| 14560 | 6c 2c 0a 20 20 20 20 43 3a 20 75 38 2c 0a 7d 3b 0a 0a 2f 2f 20 40 6d 65 6d 62 65 72 43 6f 75 6e | l,.....C:.u8,.};..//.@memberCoun |
| 14580 | 74 20 74 65 6c 6c 73 20 68 6f 77 20 6d 61 6e 79 20 66 69 65 6c 64 73 20 61 20 75 6e 69 6f 6e 20 | t.tells.how.many.fields.a.union. |
| 145a0 | 68 61 73 3a 0a 74 65 73 74 20 26 71 75 6f 74 3b 40 6d 65 6d 62 65 72 43 6f 75 6e 74 26 71 75 6f | has:.test."@memberCount&quo |
| 145c0 | 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 6d 65 6d 62 65 72 43 6f 75 6e 74 28 53 6d 61 | t;.{.....assert(@memberCount(Sma |
| 145e0 | 6c 6c 29 20 3d 3d 20 33 29 3b 0a 7d 0a 0a 2f 2f 20 40 6d 65 6d 62 65 72 4e 61 6d 65 20 74 65 6c | ll).==.3);.}..//.@memberName.tel |
| 14600 | 6c 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 66 69 65 6c 64 20 69 6e 20 61 6e 20 65 6e 75 | ls.the.name.of.a.field.in.an.enu |
| 14620 | 6d 3a 0a 74 65 73 74 20 26 71 75 6f 74 3b 40 6d 65 6d 62 65 72 4e 61 6d 65 26 71 75 6f 74 3b 20 | m:.test."@memberName". |
| 14640 | 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 6d 2e 65 71 6c 28 75 38 2c 20 40 6d 65 6d 62 65 72 | {.....assert(mem.eql(u8,.@member |
| 14660 | 4e 61 6d 65 28 53 6d 61 6c 6c 2c 20 31 29 2c 20 26 71 75 6f 74 3b 42 26 71 75 6f 74 3b 29 29 3b | Name(Small,.1),."B")); |
| 14680 | 0a 7d 0a 0a 2f 2f 20 40 74 61 67 4e 61 6d 65 20 67 69 76 65 73 20 61 20 5b 5d 63 6f 6e 73 74 20 | .}..//.@tagName.gives.a.[]const. |
| 146a0 | 75 38 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 6e 75 6d 20 76 61 6c | u8.representation.of.an.enum.val |
| 146c0 | 75 65 2c 0a 2f 2f 20 62 75 74 20 6f 6e 6c 79 20 69 66 20 74 68 65 20 75 6e 69 6f 6e 20 68 61 73 | ue,.//.but.only.if.the.union.has |
| 146e0 | 20 61 6e 20 65 6e 75 6d 20 74 61 67 20 74 79 70 65 2e 0a 63 6f 6e 73 74 20 53 6d 61 6c 6c 32 20 | .an.enum.tag.type..const.Small2. |
| 14700 | 3d 20 75 6e 69 6f 6e 28 65 6e 75 6d 29 20 7b 0a 20 20 20 20 41 3a 20 69 33 32 2c 0a 20 20 20 20 | =.union(enum).{.....A:.i32,..... |
| 14720 | 42 3a 20 62 6f 6f 6c 2c 0a 20 20 20 20 43 3a 20 75 38 2c 0a 7d 3b 0a 74 65 73 74 20 26 71 75 6f | B:.bool,.....C:.u8,.};.test.&quo |
| 14740 | 74 3b 40 74 61 67 4e 61 6d 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 6d 65 | t;@tagName".{.....assert(me |
| 14760 | 6d 2e 65 71 6c 28 75 38 2c 20 40 74 61 67 4e 61 6d 65 28 53 6d 61 6c 6c 32 2e 43 29 2c 20 26 71 | m.eql(u8,.@tagName(Small2.C),.&q |
| 14780 | 75 6f 74 3b 43 26 71 75 6f 74 3b 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 | uot;C"));.}</code></pre><pr |
| 147a0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 | e><code.class="shell">$.zig.test |
| 147c0 | 20 75 6e 69 6f 6e 2e 7a 69 67 0a 54 65 73 74 20 31 2f 37 20 73 69 6d 70 6c 65 20 75 6e 69 6f 6e | .union.zig.Test.1/7.simple.union |
| 147e0 | 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 37 20 64 65 63 6c 61 72 65 20 75 6e 69 6f 6e 20 76 61 6c | ...OK.Test.2/7.declare.union.val |
| 14800 | 75 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 37 20 40 54 61 67 54 79 70 65 2e 2e 2e 4f 4b 0a 54 | ue...OK.Test.3/7.@TagType...OK.T |
| 14820 | 65 73 74 20 34 2f 37 20 75 6e 69 6f 6e 20 76 61 72 69 61 6e 74 20 73 77 69 74 63 68 2e 2e 2e 4f | est.4/7.union.variant.switch...O |
| 14840 | 4b 0a 54 65 73 74 20 35 2f 37 20 40 6d 65 6d 62 65 72 43 6f 75 6e 74 2e 2e 2e 4f 4b 0a 54 65 73 | K.Test.5/7.@memberCount...OK.Tes |
| 14860 | 74 20 36 2f 37 20 40 6d 65 6d 62 65 72 4e 61 6d 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 37 2f 37 20 | t.6/7.@memberName...OK.Test.7/7. |
| 14880 | 40 74 61 67 4e 61 6d 65 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 | @tagName...OK.</code></pre>..... |
| 148a0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 6e 69 6f 6e 73 20 77 69 74 68 20 61 6e 20 65 6e 75 6d | ...<p>.......Unions.with.an.enum |
| 148c0 | 20 74 61 67 20 61 72 65 20 67 65 6e 65 72 61 74 65 64 20 61 73 20 61 20 73 74 72 75 63 74 20 77 | .tag.are.generated.as.a.struct.w |
| 148e0 | 69 74 68 20 61 20 74 61 67 20 66 69 65 6c 64 20 61 6e 64 20 75 6e 69 6f 6e 20 66 69 65 6c 64 2e | ith.a.tag.field.and.union.field. |
| 14900 | 20 5a 69 67 0a 20 20 20 20 20 20 73 6f 72 74 73 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 | .Zig.......sorts.the.order.of.th |
| 14920 | 65 20 74 61 67 20 61 6e 64 20 75 6e 69 6f 6e 20 66 69 65 6c 64 20 62 79 20 74 68 65 20 6c 61 72 | e.tag.and.union.field.by.the.lar |
| 14940 | 67 65 73 74 20 61 6c 69 67 6e 6d 65 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | gest.alignment........</p>...... |
| 14960 | 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 73 77 69 74 63 68 22 3e 73 77 69 74 63 68 3c 2f | ........<h1.id="switch">switch</ |
| 14980 | 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 73 77 69 74 63 | h1>........<p.class="file">switc |
| 149a0 | 68 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | h.zig</p><pre><code.class="zig"> |
| 149c0 | 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 | const.assert.=.@import("std |
| 149e0 | 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 62 75 69 6c | ").debug.assert;.const.buil |
| 14a00 | 74 69 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 | tin.=.@import("builtin" |
| 14a20 | 3b 29 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 73 77 69 74 63 68 20 73 69 6d 70 6c 65 26 71 75 | ;);..test."switch.simple&qu |
| 14a40 | 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 75 36 34 20 3d 20 31 30 3b 0a 20 20 20 | ot;.{.....const.a:.u64.=.10;.... |
| 14a60 | 20 63 6f 6e 73 74 20 7a 7a 3a 20 75 36 34 20 3d 20 31 30 33 3b 0a 0a 20 20 20 20 2f 2f 20 41 6c | .const.zz:.u64.=.103;......//.Al |
| 14a80 | 6c 20 62 72 61 6e 63 68 65 73 20 6f 66 20 61 20 73 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f | l.branches.of.a.switch.expressio |
| 14aa0 | 6e 20 6d 75 73 74 20 62 65 20 61 62 6c 65 20 74 6f 20 62 65 20 63 6f 65 72 63 65 64 20 74 6f 20 | n.must.be.able.to.be.coerced.to. |
| 14ac0 | 61 0a 20 20 20 20 2f 2f 20 63 6f 6d 6d 6f 6e 20 74 79 70 65 2e 0a 20 20 20 20 2f 2f 0a 20 20 20 | a.....//.common.type......//.... |
| 14ae0 | 20 2f 2f 20 42 72 61 6e 63 68 65 73 20 63 61 6e 6e 6f 74 20 66 61 6c 6c 74 68 72 6f 75 67 68 2e | .//.Branches.cannot.fallthrough. |
| 14b00 | 20 49 66 20 66 61 6c 6c 74 68 72 6f 75 67 68 20 62 65 68 61 76 69 6f 72 20 69 73 20 64 65 73 69 | .If.fallthrough.behavior.is.desi |
| 14b20 | 72 65 64 2c 20 63 6f 6d 62 69 6e 65 0a 20 20 20 20 2f 2f 20 74 68 65 20 63 61 73 65 73 20 61 6e | red,.combine.....//.the.cases.an |
| 14b40 | 64 20 75 73 65 20 61 6e 20 69 66 2e 0a 20 20 20 20 63 6f 6e 73 74 20 62 20 3d 20 73 77 69 74 63 | d.use.an.if......const.b.=.switc |
| 14b60 | 68 20 28 61 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 4d 75 6c 74 69 70 6c 65 20 63 61 73 65 | h.(a).{.........//.Multiple.case |
| 14b80 | 73 20 63 61 6e 20 62 65 20 63 6f 6d 62 69 6e 65 64 20 76 69 61 20 61 20 27 2c 27 0a 20 20 20 20 | s.can.be.combined.via.a.','..... |
| 14ba0 | 20 20 20 20 31 2c 20 32 2c 20 33 20 3d 26 67 74 3b 20 30 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f | ....1,.2,.3.=>.0,..........// |
| 14bc0 | 20 52 61 6e 67 65 73 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65 64 20 75 73 69 6e 67 20 74 | .Ranges.can.be.specified.using.t |
| 14be0 | 68 65 20 2e 2e 2e 20 73 79 6e 74 61 78 2e 20 54 68 65 73 65 20 61 72 65 20 69 6e 63 6c 75 73 69 | he.....syntax..These.are.inclusi |
| 14c00 | 76 65 0a 20 20 20 20 20 20 20 20 2f 2f 20 62 6f 74 68 20 65 6e 64 73 2e 0a 20 20 20 20 20 20 20 | ve.........//.both.ends......... |
| 14c20 | 20 35 20 2e 2e 2e 20 31 30 30 20 3d 26 67 74 3b 20 31 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 | .5.....100.=>.1,..........//. |
| 14c40 | 42 72 61 6e 63 68 65 73 20 63 61 6e 20 62 65 20 61 72 62 69 74 72 61 72 69 6c 79 20 63 6f 6d 70 | Branches.can.be.arbitrarily.comp |
| 14c60 | 6c 65 78 2e 0a 20 20 20 20 20 20 20 20 31 30 31 20 3d 26 67 74 3b 20 62 6c 6b 3a 20 7b 0a 20 20 | lex..........101.=>.blk:.{... |
| 14c80 | 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 3a 20 75 36 34 20 3d 20 35 3b 0a 20 20 20 20 | ..........const.c:.u64.=.5;..... |
| 14ca0 | 20 20 20 20 20 20 20 20 62 72 65 61 6b 20 3a 62 6c 6b 20 63 20 2a 20 32 20 2b 20 31 3b 0a 20 20 | ........break.:blk.c.*.2.+.1;... |
| 14cc0 | 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 53 77 69 74 63 68 69 6e 67 20 6f | ......},..........//.Switching.o |
| 14ce0 | 6e 20 61 72 62 69 74 72 61 72 79 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 73 20 61 6c 6c 6f 77 | n.arbitrary.expressions.is.allow |
| 14d00 | 65 64 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 0a 20 20 20 20 20 20 20 20 2f 2f 20 65 78 70 | ed.as.long.as.the.........//.exp |
| 14d20 | 72 65 73 73 69 6f 6e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 | ression.is.known.at.compile-time |
| 14d40 | 2e 0a 20 20 20 20 20 20 20 20 7a 7a 20 3d 26 67 74 3b 20 7a 7a 2c 0a 20 20 20 20 20 20 20 20 63 | ..........zz.=>.zz,.........c |
| 14d60 | 6f 6d 70 74 69 6d 65 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 | omptime.blk:.{.............const |
| 14d80 | 20 64 3a 20 75 33 32 20 3d 20 35 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 65 | .d:.u32.=.5;.............const.e |
| 14da0 | 3a 20 75 33 32 20 3d 20 31 30 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 20 3a | :.u32.=.100;.............break.: |
| 14dc0 | 62 6c 6b 20 64 20 2b 20 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 3d 26 67 74 3b 20 31 30 37 2c 0a | blk.d.+.e;.........}.=>.107,. |
| 14de0 | 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 63 61 74 63 | .........//.The.else.branch.catc |
| 14e00 | 68 65 73 20 65 76 65 72 79 74 68 69 6e 67 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 63 61 70 74 75 | hes.everything.not.already.captu |
| 14e20 | 72 65 64 2e 0a 20 20 20 20 20 20 20 20 2f 2f 20 45 6c 73 65 20 62 72 61 6e 63 68 65 73 20 61 72 | red..........//.Else.branches.ar |
| 14e40 | 65 20 6d 61 6e 64 61 74 6f 72 79 20 75 6e 6c 65 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 72 61 | e.mandatory.unless.the.entire.ra |
| 14e60 | 6e 67 65 20 6f 66 20 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 73 20 68 61 6e 64 | nge.of.values.........//.is.hand |
| 14e80 | 6c 65 64 2e 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 39 2c 0a 20 20 20 20 7d | led..........else.=>.9,.....} |
| 14ea0 | 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 62 20 3d 3d 20 31 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 | ;......assert(b.==.1);.}..test.& |
| 14ec0 | 71 75 6f 74 3b 73 77 69 74 63 68 20 65 6e 75 6d 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e | quot;switch.enum".{.....con |
| 14ee0 | 73 74 20 49 74 65 6d 20 3d 20 75 6e 69 6f 6e 28 65 6e 75 6d 29 20 7b 0a 20 20 20 20 20 20 20 20 | st.Item.=.union(enum).{......... |
| 14f00 | 41 3a 20 75 33 32 2c 0a 20 20 20 20 20 20 20 20 43 3a 20 73 74 72 75 63 74 20 7b 20 78 3a 20 75 | A:.u32,.........C:.struct.{.x:.u |
| 14f20 | 38 2c 20 79 3a 20 75 38 20 7d 2c 0a 20 20 20 20 20 20 20 20 44 2c 0a 20 20 20 20 7d 3b 0a 0a 20 | 8,.y:.u8.},.........D,.....};... |
| 14f40 | 20 20 20 76 61 72 20 61 20 3d 20 49 74 65 6d 20 7b 20 2e 41 20 3d 20 33 20 7d 3b 0a 0a 20 20 20 | ...var.a.=.Item.{..A.=.3.};..... |
| 14f60 | 20 2f 2f 20 53 77 69 74 63 68 69 6e 67 20 6f 6e 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 65 6e | .//.Switching.on.more.complex.en |
| 14f80 | 75 6d 73 20 69 73 20 61 6c 6c 6f 77 65 64 2e 0a 20 20 20 20 63 6f 6e 73 74 20 62 20 3d 20 73 77 | ums.is.allowed......const.b.=.sw |
| 14fa0 | 69 74 63 68 20 28 61 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 41 20 63 61 70 74 75 72 65 20 | itch.(a).{.........//.A.capture. |
| 14fc0 | 67 72 6f 75 70 20 69 73 20 61 6c 6c 6f 77 65 64 20 6f 6e 20 61 20 6d 61 74 63 68 2c 20 61 6e 64 | group.is.allowed.on.a.match,.and |
| 14fe0 | 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 65 6e 75 6d 0a 20 20 20 20 20 20 20 20 2f 2f | .will.return.the.enum.........// |
| 15000 | 20 76 61 6c 75 65 20 6d 61 74 63 68 65 64 2e 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 41 20 3d | .value.matched..........Item.A.= |
| 15020 | 26 67 74 3b 20 7c 69 74 65 6d 7c 20 69 74 65 6d 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 41 20 | >.|item|.item,..........//.A. |
| 15040 | 72 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 65 20 6d 61 74 63 68 65 64 20 76 61 6c 75 65 20 63 | reference.to.the.matched.value.c |
| 15060 | 61 6e 20 62 65 20 6f 62 74 61 69 6e 65 64 20 75 73 69 6e 67 20 60 2a 60 20 73 79 6e 74 61 78 2e | an.be.obtained.using.`*`.syntax. |
| 15080 | 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 43 20 3d 26 67 74 3b 20 7c 2a 69 74 65 6d 7c 20 62 6c | .........Item.C.=>.|*item|.bl |
| 150a0 | 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 69 74 65 6d 29 2e 78 20 2b 3d 20 31 3b | k:.{.............(*item).x.+=.1; |
| 150c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 20 3a 62 6c 6b 20 36 3b 0a 20 20 20 20 20 | .............break.:blk.6;...... |
| 150e0 | 20 20 20 7d 2c 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f 20 65 6c 73 65 20 69 73 20 72 65 71 | ...},..........//.No.else.is.req |
| 15100 | 75 69 72 65 64 20 69 66 20 74 68 65 20 74 79 70 65 73 20 63 61 73 65 73 20 77 61 73 20 65 78 68 | uired.if.the.types.cases.was.exh |
| 15120 | 61 75 73 74 69 76 65 6c 79 20 68 61 6e 64 6c 65 64 0a 20 20 20 20 20 20 20 20 49 74 65 6d 2e 44 | austively.handled.........Item.D |
| 15140 | 20 3d 26 67 74 3b 20 38 2c 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 61 73 73 65 72 74 28 62 20 3d | .=>.8,.....};......assert(b.= |
| 15160 | 3d 20 33 29 3b 0a 7d 0a 0a 2f 2f 20 53 77 69 74 63 68 20 65 78 70 72 65 73 73 69 6f 6e 73 20 63 | =.3);.}..//.Switch.expressions.c |
| 15180 | 61 6e 20 62 65 20 75 73 65 64 20 6f 75 74 73 69 64 65 20 61 20 66 75 6e 63 74 69 6f 6e 3a 0a 63 | an.be.used.outside.a.function:.c |
| 151a0 | 6f 6e 73 74 20 6f 73 5f 6d 73 67 20 3d 20 73 77 69 74 63 68 20 28 62 75 69 6c 74 69 6e 2e 6f 73 | onst.os_msg.=.switch.(builtin.os |
| 151c0 | 29 20 7b 0a 20 20 20 20 62 75 69 6c 74 69 6e 2e 4f 73 2e 6c 69 6e 75 78 20 3d 26 67 74 3b 20 26 | ).{.....builtin.Os.linux.=>.& |
| 151e0 | 71 75 6f 74 3b 77 65 20 66 6f 75 6e 64 20 61 20 6c 69 6e 75 78 20 75 73 65 72 26 71 75 6f 74 3b | quot;we.found.a.linux.user" |
| 15200 | 2c 0a 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 26 71 75 6f 74 3b 6e 6f 74 20 61 20 6c 69 6e | ,.....else.=>."not.a.lin |
| 15220 | 75 78 20 75 73 65 72 26 71 75 6f 74 3b 2c 0a 7d 3b 0a 0a 2f 2f 20 49 6e 73 69 64 65 20 61 20 66 | ux.user",.};..//.Inside.a.f |
| 15240 | 75 6e 63 74 69 6f 6e 2c 20 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6d 70 6c 69 | unction,.switch.statements.impli |
| 15260 | 63 69 74 6c 79 20 61 72 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 2f 2f 20 65 76 61 6c 75 61 | citly.are.compile-time.//.evalua |
| 15280 | 74 65 64 20 69 66 20 74 68 65 20 74 61 72 67 65 74 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 | ted.if.the.target.expression.is. |
| 152a0 | 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a 74 65 73 74 20 26 71 75 6f 74 3b 73 | compile-time.known..test."s |
| 152c0 | 77 69 74 63 68 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 | witch.inside.function".{... |
| 152e0 | 20 20 73 77 69 74 63 68 20 28 62 75 69 6c 74 69 6e 2e 6f 73 29 20 7b 0a 20 20 20 20 20 20 20 20 | ..switch.(builtin.os).{......... |
| 15300 | 62 75 69 6c 74 69 6e 2e 4f 73 2e 66 75 63 68 73 69 61 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 | builtin.Os.fuchsia.=>.{...... |
| 15320 | 20 20 20 20 20 20 20 2f 2f 20 4f 6e 20 61 6e 20 4f 53 20 6f 74 68 65 72 20 74 68 61 6e 20 66 75 | .......//.On.an.OS.other.than.fu |
| 15340 | 63 68 73 69 61 2c 20 62 6c 6f 63 6b 20 69 73 20 6e 6f 74 20 65 76 65 6e 20 61 6e 61 6c 79 7a 65 | chsia,.block.is.not.even.analyze |
| 15360 | 64 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 73 6f 20 74 68 69 73 20 63 6f 6d 70 69 6c | d,.............//.so.this.compil |
| 15380 | 65 20 65 72 72 6f 72 20 69 73 20 6e 6f 74 20 74 72 69 67 67 65 72 65 64 2e 0a 20 20 20 20 20 20 | e.error.is.not.triggered........ |
| 153a0 | 20 20 20 20 20 20 2f 2f 20 4f 6e 20 66 75 63 68 73 69 61 20 74 68 69 73 20 63 6f 6d 70 69 6c 65 | ......//.On.fuchsia.this.compile |
| 153c0 | 20 65 72 72 6f 72 20 77 6f 75 6c 64 20 62 65 20 74 72 69 67 67 65 72 65 64 2e 0a 20 20 20 20 20 | .error.would.be.triggered....... |
| 153e0 | 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 75 6f 74 3b 77 69 6e 64 6f | .......@compileError("windo |
| 15400 | 77 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 20 20 20 | ws.not.supported");........ |
| 15420 | 20 7d 2c 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 7d | .},.........else.=>.{},.....} |
| 15440 | 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | .}</code></pre><pre><code.class= |
| 15460 | 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 73 77 69 74 63 68 2e 7a 69 67 0a 54 65 | "shell">$.zig.test.switch.zig.Te |
| 15480 | 73 74 20 31 2f 33 20 73 77 69 74 63 68 20 73 69 6d 70 6c 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 | st.1/3.switch.simple...OK.Test.2 |
| 154a0 | 2f 33 20 73 77 69 74 63 68 20 65 6e 75 6d 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 33 20 73 77 69 | /3.switch.enum...OK.Test.3/3.swi |
| 154c0 | 74 63 68 20 69 6e 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e | tch.inside.function...OK.</code> |
| 154e0 | 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 | </pre>........<p>See.also:</p><u |
| 15500 | 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 | l>.<li><a.href="#comptime">compt |
| 15520 | 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 | ime</a></li>.<li><a.href="#enum" |
| 15540 | 3e 65 6e 75 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d | >enum</a></li>.<li><a.href="#com |
| 15560 | 70 69 6c 65 45 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 61 3e 3c 2f 6c 69 | pileError">@compileError</a></li |
| 15580 | 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 | >.<li><a.href="#Compile-Variable |
| 155a0 | 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f | s">Compile.Variables</a></li>.</ |
| 155c0 | 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 77 68 69 6c 65 22 | ul>...............<h1.id="while" |
| 155e0 | 3e 77 68 69 6c 65 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c | >while</h1>........<p.class="fil |
| 15600 | 65 22 3e 77 68 69 6c 65 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | e">while.zig</p><pre><code.class |
| 15620 | 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 | ="zig">const.assert.=.@import(&q |
| 15640 | 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 | uot;std").debug.assert;..te |
| 15660 | 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 62 61 73 69 63 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | st."while.basic".{.... |
| 15680 | 20 2f 2f 20 41 20 77 68 69 6c 65 20 6c 6f 6f 70 20 69 73 20 75 73 65 64 20 74 6f 20 72 65 70 65 | .//.A.while.loop.is.used.to.repe |
| 156a0 | 61 74 65 64 6c 79 20 65 78 65 63 75 74 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 75 6e 74 | atedly.execute.an.expression.unt |
| 156c0 | 69 6c 0a 20 20 20 20 2f 2f 20 73 6f 6d 65 20 63 6f 6e 64 69 74 69 6f 6e 20 69 73 20 6e 6f 20 6c | il.....//.some.condition.is.no.l |
| 156e0 | 6f 6e 67 65 72 20 74 72 75 65 2e 0a 20 20 20 20 76 61 72 20 69 3a 20 75 73 69 7a 65 20 3d 20 30 | onger.true......var.i:.usize.=.0 |
| 15700 | 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 31 30 29 20 7b 0a 20 20 20 20 20 20 | ;.....while.(i.<.10).{....... |
| 15720 | 20 20 69 20 2b 3d 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 69 20 3d 3d 20 | ..i.+=.1;.....}.....assert(i.==. |
| 15740 | 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 62 72 65 61 6b 26 71 | 10);.}..test."while.break&q |
| 15760 | 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 62 72 65 61 6b 20 | uot;.{.....//.You.can.use.break. |
| 15780 | 74 6f 20 65 78 69 74 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 20 65 61 72 6c 79 2e 0a 20 20 20 20 | to.exit.a.while.loop.early...... |
| 157a0 | 76 61 72 20 69 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 74 72 75 | var.i:.usize.=.0;.....while.(tru |
| 157c0 | 65 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 20 3d 3d 20 31 30 29 0a 20 20 20 20 20 20 | e).{.........if.(i.==.10)....... |
| 157e0 | 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 69 20 2b 3d 20 31 3b 0a 20 20 20 | ......break;.........i.+=.1;.... |
| 15800 | 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 69 20 3d 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 | .}.....assert(i.==.10);.}..test. |
| 15820 | 26 71 75 6f 74 3b 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | "while.continue".{.... |
| 15840 | 20 2f 2f 20 59 6f 75 20 63 61 6e 20 75 73 65 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 6a 75 6d 70 | .//.You.can.use.continue.to.jump |
| 15860 | 20 62 61 63 6b 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 6f | .back.to.the.beginning.of.the.lo |
| 15880 | 6f 70 2e 0a 20 20 20 20 76 61 72 20 69 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 | op......var.i:.usize.=.0;.....wh |
| 158a0 | 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 69 20 2b 3d 20 31 3b 0a 20 20 20 | ile.(true).{.........i.+=.1;.... |
| 158c0 | 20 20 20 20 20 69 66 20 28 69 20 26 6c 74 3b 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....if.(i.<.10)............. |
| 158e0 | 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 7d 0a 20 | continue;.........break;.....}.. |
| 15900 | 20 20 20 61 73 73 65 72 74 28 69 20 3d 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f | ...assert(i.==.10);.}..test.&quo |
| 15920 | 74 3b 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 65 78 70 72 65 73 | t;while.loop.continuation.expres |
| 15940 | 73 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 67 69 76 65 | sion".{.....//.You.can.give |
| 15960 | 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 74 68 65 20 77 68 69 6c 65 20 6c 6f 6f 70 | .an.expression.to.the.while.loop |
| 15980 | 20 74 6f 20 65 78 65 63 75 74 65 20 77 68 65 6e 0a 20 20 20 20 2f 2f 20 74 68 65 20 6c 6f 6f 70 | .to.execute.when.....//.the.loop |
| 159a0 | 20 69 73 20 63 6f 6e 74 69 6e 75 65 64 2e 20 54 68 69 73 20 69 73 20 72 65 73 70 65 63 74 65 64 | .is.continued..This.is.respected |
| 159c0 | 20 62 79 20 74 68 65 20 63 6f 6e 74 69 6e 75 65 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 2e 0a 20 | .by.the.continue.control.flow... |
| 159e0 | 20 20 20 76 61 72 20 69 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 | ...var.i:.usize.=.0;.....while.( |
| 15a00 | 69 20 26 6c 74 3b 20 31 30 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a 20 20 20 20 61 73 73 | i.<.10).:.(i.+=.1).{}.....ass |
| 15a20 | 65 72 74 28 69 20 3d 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c | ert(i.==.10);.}..test."whil |
| 15a40 | 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 | e.loop.continuation.expression,. |
| 15a60 | 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 | more.complicated".{.....//. |
| 15a80 | 4d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 62 6c 6f 63 6b 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 | More.complex.blocks.can.be.used. |
| 15aa0 | 61 73 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 6c 6f 6f 70 20 63 6f 6e | as.an.expression.in.the.loop.con |
| 15ac0 | 74 69 6e 75 65 0a 20 20 20 20 2f 2f 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 76 61 72 | tinue.....//.expression......var |
| 15ae0 | 20 69 31 3a 20 75 73 69 7a 65 20 3d 20 31 3b 0a 20 20 20 20 76 61 72 20 6a 31 3a 20 75 73 69 7a | .i1:.usize.=.1;.....var.j1:.usiz |
| 15b00 | 65 20 3d 20 31 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 69 31 20 2a 20 6a 31 20 26 6c 74 3b 20 32 | e.=.1;.....while.(i1.*.j1.<.2 |
| 15b20 | 30 30 30 29 20 3a 20 28 7b 20 69 31 20 2a 3d 20 32 3b 20 6a 31 20 2a 3d 20 33 3b 20 7d 29 20 7b | 000).:.({.i1.*=.2;.j1.*=.3;.}).{ |
| 15b40 | 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 6d 79 5f 69 6a 31 20 3d 20 69 31 20 2a 20 6a 31 3b | .........const.my_ij1.=.i1.*.j1; |
| 15b60 | 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 6d 79 5f 69 6a 31 20 26 6c 74 3b 20 32 30 30 30 | .........assert(my_ij1.<.2000 |
| 15b80 | 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 65 6c 73 | );.....}.}..test."while.els |
| 15ba0 | 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 72 61 6e 67 65 48 61 73 4e 75 6d | e".{.....assert(rangeHasNum |
| 15bc0 | 62 65 72 28 30 2c 20 31 30 2c 20 35 29 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 21 72 61 6e 67 | ber(0,.10,.5));.....assert(!rang |
| 15be0 | 65 48 61 73 4e 75 6d 62 65 72 28 30 2c 20 31 30 2c 20 31 35 29 29 3b 0a 7d 0a 0a 66 6e 20 72 61 | eHasNumber(0,.10,.15));.}..fn.ra |
| 15c00 | 6e 67 65 48 61 73 4e 75 6d 62 65 72 28 62 65 67 69 6e 3a 20 75 73 69 7a 65 2c 20 65 6e 64 3a 20 | ngeHasNumber(begin:.usize,.end:. |
| 15c20 | 75 73 69 7a 65 2c 20 6e 75 6d 62 65 72 3a 20 75 73 69 7a 65 29 20 62 6f 6f 6c 20 7b 0a 20 20 20 | usize,.number:.usize).bool.{.... |
| 15c40 | 20 76 61 72 20 69 20 3d 20 62 65 67 69 6e 3b 0a 20 20 20 20 2f 2f 20 57 68 69 6c 65 20 6c 6f 6f | .var.i.=.begin;.....//.While.loo |
| 15c60 | 70 73 20 61 72 65 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 20 54 68 65 20 72 65 73 75 6c 74 20 6f | ps.are.expressions..The.result.o |
| 15c80 | 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 74 68 65 0a 20 20 20 20 2f 2f 20 72 | f.the.expression.is.the.....//.r |
| 15ca0 | 65 73 75 6c 74 20 6f 66 20 74 68 65 20 65 6c 73 65 20 63 6c 61 75 73 65 20 6f 66 20 61 20 77 68 | esult.of.the.else.clause.of.a.wh |
| 15cc0 | 69 6c 65 20 6c 6f 6f 70 2c 20 77 68 69 63 68 20 69 73 20 65 78 65 63 75 74 65 64 20 77 68 65 6e | ile.loop,.which.is.executed.when |
| 15ce0 | 0a 20 20 20 20 2f 2f 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 68 69 | .....//.the.condition.of.the.whi |
| 15d00 | 6c 65 20 6c 6f 6f 70 20 69 73 20 74 65 73 74 65 64 20 61 73 20 66 61 6c 73 65 2e 0a 20 20 20 20 | le.loop.is.tested.as.false...... |
| 15d20 | 72 65 74 75 72 6e 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 65 6e 64 29 20 3a 20 28 69 20 2b | return.while.(i.<.end).:.(i.+ |
| 15d40 | 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 20 3d 3d 20 6e 75 6d 62 65 72 29 20 | =.1).{.........if.(i.==.number). |
| 15d60 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 62 72 65 61 6b 20 65 78 70 72 65 73 73 69 6f | {.............//.break.expressio |
| 15d80 | 6e 73 2c 20 6c 69 6b 65 20 72 65 74 75 72 6e 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 61 63 63 | ns,.like.return.expressions,.acc |
| 15da0 | 65 70 74 20 61 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 70 61 72 61 6d | ept.a.value.............//.param |
| 15dc0 | 65 74 65 72 2e 20 54 68 69 73 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 | eter..This.is.the.result.of.the. |
| 15de0 | 77 68 69 6c 65 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | while.expression..............// |
| 15e00 | 20 57 68 65 6e 20 79 6f 75 20 62 72 65 61 6b 20 66 72 6f 6d 20 61 20 77 68 69 6c 65 20 6c 6f 6f | .When.you.break.from.a.while.loo |
| 15e20 | 70 2c 20 74 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 20 | p,.the.else.branch.is.not....... |
| 15e40 | 20 20 20 20 20 20 2f 2f 20 65 76 61 6c 75 61 74 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......//.evaluated.............. |
| 15e60 | 62 72 65 61 6b 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 | break.true;.........}.....}.else |
| 15e80 | 20 66 61 6c 73 65 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 77 68 69 6c 65 20 6e 75 6c 6c | .false;.}..test."while.null |
| 15ea0 | 20 63 61 70 74 75 72 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 4a 75 73 74 20 6c 69 6b | .capture".{.....//.Just.lik |
| 15ec0 | 65 20 69 66 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 77 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 | e.if.expressions,.while.loops.ca |
| 15ee0 | 6e 20 74 61 6b 65 20 61 20 6e 75 6c 6c 61 62 6c 65 20 61 73 20 74 68 65 0a 20 20 20 20 2f 2f 20 | n.take.a.nullable.as.the.....//. |
| 15f00 | 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 63 61 70 74 75 72 65 20 74 68 65 20 70 61 79 6c 6f 61 | condition.and.capture.the.payloa |
| 15f20 | 64 2e 20 57 68 65 6e 20 6e 75 6c 6c 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 74 68 65 20 | d..When.null.is.encountered.the. |
| 15f40 | 6c 6f 6f 70 0a 20 20 20 20 2f 2f 20 65 78 69 74 73 2e 0a 20 20 20 20 76 61 72 20 73 75 6d 31 3a | loop.....//.exits......var.sum1: |
| 15f60 | 20 75 33 32 20 3d 20 30 3b 0a 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 33 3b 0a | .u32.=.0;.....numbers_left.=.3;. |
| 15f80 | 20 20 20 20 77 68 69 6c 65 20 28 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 | ....while.(eventuallyNullSequenc |
| 15fa0 | 65 28 29 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 31 20 2b 3d 20 76 | e()).|value|.{.........sum1.+=.v |
| 15fc0 | 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 31 20 3d 3d 20 33 | alue;.....}.....assert(sum1.==.3 |
| 15fe0 | 29 3b 0a 0a 20 20 20 20 2f 2f 20 54 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 61 6c | );......//.The.else.branch.is.al |
| 16000 | 6c 6f 77 65 64 20 6f 6e 20 6e 75 6c 6c 61 62 6c 65 20 69 74 65 72 61 74 69 6f 6e 2e 20 49 6e 20 | lowed.on.nullable.iteration..In. |
| 16020 | 74 68 69 73 20 63 61 73 65 2c 20 69 74 20 77 69 6c 6c 0a 20 20 20 20 2f 2f 20 62 65 20 65 78 65 | this.case,.it.will.....//.be.exe |
| 16040 | 63 75 74 65 64 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 6e 75 6c 6c 20 76 61 6c 75 65 20 65 6e | cuted.on.the.first.null.value.en |
| 16060 | 63 6f 75 6e 74 65 72 65 64 2e 0a 20 20 20 20 76 61 72 20 73 75 6d 32 3a 20 75 33 32 20 3d 20 30 | countered......var.sum2:.u32.=.0 |
| 16080 | 3b 0a 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 33 3b 0a 20 20 20 20 77 68 69 6c | ;.....numbers_left.=.3;.....whil |
| 160a0 | 65 20 28 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 65 28 29 29 20 7c 76 61 | e.(eventuallyNullSequence()).|va |
| 160c0 | 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 32 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 | lue|.{.........sum2.+=.value;... |
| 160e0 | 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 73 75 6d 31 20 3d | ..}.else.{.........assert(sum1.= |
| 16100 | 3d 20 33 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 4a 75 73 74 20 6c 69 6b 65 20 69 66 | =.3);.....}......//.Just.like.if |
| 16120 | 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 77 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 61 6c | .expressions,.while.loops.can.al |
| 16140 | 73 6f 20 74 61 6b 65 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 61 73 0a 20 20 20 20 2f 2f | so.take.an.error.union.as.....// |
| 16160 | 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 63 61 70 74 75 72 65 20 74 68 65 20 70 | .the.condition.and.capture.the.p |
| 16180 | 61 79 6c 6f 61 64 20 6f 72 20 74 68 65 20 65 72 72 6f 72 20 63 6f 64 65 2e 20 57 68 65 6e 20 74 | ayload.or.the.error.code..When.t |
| 161a0 | 68 65 0a 20 20 20 20 2f 2f 20 63 6f 6e 64 69 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 20 61 | he.....//.condition.results.in.a |
| 161c0 | 6e 20 65 72 72 6f 72 20 63 6f 64 65 20 74 68 65 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 | n.error.code.the.else.branch.is. |
| 161e0 | 65 76 61 6c 75 61 74 65 64 20 61 6e 64 0a 20 20 20 20 2f 2f 20 74 68 65 20 6c 6f 6f 70 20 69 73 | evaluated.and.....//.the.loop.is |
| 16200 | 20 66 69 6e 69 73 68 65 64 2e 0a 20 20 20 20 76 61 72 20 73 75 6d 33 3a 20 75 33 32 20 3d 20 30 | .finished......var.sum3:.u32.=.0 |
| 16220 | 3b 0a 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 3d 20 33 3b 0a 20 20 20 20 77 68 69 6c | ;.....numbers_left.=.3;.....whil |
| 16240 | 65 20 28 65 76 65 6e 74 75 61 6c 6c 79 45 72 72 6f 72 53 65 71 75 65 6e 63 65 28 29 29 20 7c 76 | e.(eventuallyErrorSequence()).|v |
| 16260 | 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 75 6d 33 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 | alue|.{.........sum3.+=.value;.. |
| 16280 | 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 | ...}.else.|err|.{.........assert |
| 162a0 | 28 65 72 72 20 3d 3d 20 65 72 72 6f 72 2e 52 65 61 63 68 65 64 5a 65 72 6f 29 3b 0a 20 20 20 20 | (err.==.error.ReachedZero);..... |
| 162c0 | 7d 0a 7d 0a 0a 76 61 72 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 3a 20 75 33 32 20 3d 20 75 6e 64 | }.}..var.numbers_left:.u32.=.und |
| 162e0 | 65 66 69 6e 65 64 3b 0a 66 6e 20 65 76 65 6e 74 75 61 6c 6c 79 4e 75 6c 6c 53 65 71 75 65 6e 63 | efined;.fn.eventuallyNullSequenc |
| 16300 | 65 28 29 20 3f 75 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 6e 75 6d 62 65 72 | e().?u32.{.....return.if.(number |
| 16320 | 73 5f 6c 65 66 74 20 3d 3d 20 30 29 20 6e 75 6c 6c 20 65 6c 73 65 20 62 6c 6b 3a 20 7b 0a 20 20 | s_left.==.0).null.else.blk:.{... |
| 16340 | 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 20 2d 3d 20 31 3b 0a 20 20 20 20 20 20 20 | ......numbers_left.-=.1;........ |
| 16360 | 20 62 72 65 61 6b 20 3a 62 6c 6b 20 6e 75 6d 62 65 72 73 5f 6c 65 66 74 3b 0a 20 20 20 20 7d 3b | .break.:blk.numbers_left;.....}; |
| 16380 | 0a 7d 0a 0a 66 6e 20 65 76 65 6e 74 75 61 6c 6c 79 45 72 72 6f 72 53 65 71 75 65 6e 63 65 28 29 | .}..fn.eventuallyErrorSequence() |
| 163a0 | 20 65 72 72 6f 72 21 75 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 6e 75 6d 62 | .error!u32.{.....return.if.(numb |
| 163c0 | 65 72 73 5f 6c 65 66 74 20 3d 3d 20 30 29 20 65 72 72 6f 72 2e 52 65 61 63 68 65 64 5a 65 72 6f | ers_left.==.0).error.ReachedZero |
| 163e0 | 20 65 6c 73 65 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 73 5f 6c 65 66 | .else.blk:.{.........numbers_lef |
| 16400 | 74 20 2d 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 20 3a 62 6c 6b 20 6e 75 6d 62 65 | t.-=.1;.........break.:blk.numbe |
| 16420 | 72 73 5f 6c 65 66 74 3b 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 6e | rs_left;.....};.}..test."in |
| 16440 | 6c 69 6e 65 20 77 68 69 6c 65 20 6c 6f 6f 70 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 57 | line.while.loop".{.....//.W |
| 16460 | 68 69 6c 65 20 6c 6f 6f 70 73 20 63 61 6e 20 62 65 20 69 6e 6c 69 6e 65 64 2e 20 54 68 69 73 20 | hile.loops.can.be.inlined..This. |
| 16480 | 63 61 75 73 65 73 20 74 68 65 20 6c 6f 6f 70 20 74 6f 20 62 65 20 75 6e 72 6f 6c 6c 65 64 2c 20 | causes.the.loop.to.be.unrolled,. |
| 164a0 | 77 68 69 63 68 0a 20 20 20 20 2f 2f 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 6f 64 65 20 74 6f 20 | which.....//.allows.the.code.to. |
| 164c0 | 64 6f 20 73 6f 6d 65 20 74 68 69 6e 67 73 20 77 68 69 63 68 20 6f 6e 6c 79 20 77 6f 72 6b 20 61 | do.some.things.which.only.work.a |
| 164e0 | 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2c 0a 20 20 20 20 2f 2f 20 73 75 63 68 20 61 73 20 75 | t.compile.time,.....//.such.as.u |
| 16500 | 73 65 20 74 79 70 65 73 20 61 73 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 73 2e 0a | se.types.as.first.class.values.. |
| 16520 | 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 20 69 20 3d 20 30 3b 0a 20 20 20 20 76 61 72 20 | ....comptime.var.i.=.0;.....var. |
| 16540 | 73 75 6d 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 69 6e 6c 69 6e 65 20 77 68 69 6c 65 | sum:.usize.=.0;.....inline.while |
| 16560 | 20 28 69 20 26 6c 74 3b 20 33 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 20 | .(i.<.3).:.(i.+=.1).{........ |
| 16580 | 20 63 6f 6e 73 74 20 54 20 3d 20 73 77 69 74 63 68 20 28 69 29 20 7b 0a 20 20 20 20 20 20 20 20 | .const.T.=.switch.(i).{......... |
| 165a0 | 20 20 20 20 30 20 3d 26 67 74 3b 20 66 33 32 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 31 20 3d | ....0.=>.f32,.............1.= |
| 165c0 | 26 67 74 3b 20 69 38 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 20 3d 26 67 74 3b 20 62 6f 6f | >.i8,.............2.=>.boo |
| 165e0 | 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 75 6e 72 65 61 63 | l,.............else.=>.unreac |
| 16600 | 68 61 62 6c 65 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d | hable,.........};.........sum.+= |
| 16620 | 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 28 54 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 | .typeNameLength(T);.....}.....as |
| 16640 | 73 65 72 74 28 73 75 6d 20 3d 3d 20 39 29 3b 0a 7d 0a 0a 66 6e 20 74 79 70 65 4e 61 6d 65 4c 65 | sert(sum.==.9);.}..fn.typeNameLe |
| 16660 | 6e 67 74 68 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 75 73 69 7a 65 20 7b 0a 20 | ngth(comptime.T:.type).usize.{.. |
| 16680 | 20 20 20 72 65 74 75 72 6e 20 40 74 79 70 65 4e 61 6d 65 28 54 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 | ...return.@typeName(T).len;.}</c |
| 166a0 | 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c | ode></pre><pre><code.class="shel |
| 166c0 | 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 77 68 69 6c 65 2e 7a 69 67 0a 54 65 73 74 20 31 2f 38 | l">$.zig.test.while.zig.Test.1/8 |
| 166e0 | 20 77 68 69 6c 65 20 62 61 73 69 63 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 38 20 77 68 69 6c 65 | .while.basic...OK.Test.2/8.while |
| 16700 | 20 62 72 65 61 6b 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 38 20 77 68 69 6c 65 20 63 6f 6e 74 69 | .break...OK.Test.3/8.while.conti |
| 16720 | 6e 75 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 34 2f 38 20 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e | nue...OK.Test.4/8.while.loop.con |
| 16740 | 74 69 6e 75 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 2e 2e 4f 4b 0a 54 65 73 74 20 35 | tinuation.expression...OK.Test.5 |
| 16760 | 2f 38 20 77 68 69 6c 65 20 6c 6f 6f 70 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 65 78 70 72 65 | /8.while.loop.continuation.expre |
| 16780 | 73 73 69 6f 6e 2c 20 6d 6f 72 65 20 63 6f 6d 70 6c 69 63 61 74 65 64 2e 2e 2e 4f 4b 0a 54 65 73 | ssion,.more.complicated...OK.Tes |
| 167a0 | 74 20 36 2f 38 20 77 68 69 6c 65 20 65 6c 73 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 37 2f 38 20 77 | t.6/8.while.else...OK.Test.7/8.w |
| 167c0 | 68 69 6c 65 20 6e 75 6c 6c 20 63 61 70 74 75 72 65 2e 2e 2e 4f 4b 0a 54 65 73 74 20 38 2f 38 20 | hile.null.capture...OK.Test.8/8. |
| 167e0 | 69 6e 6c 69 6e 65 20 77 68 69 6c 65 20 6c 6f 6f 70 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f | inline.while.loop...OK.</code></ |
| 16800 | 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e | pre>........<p>See.also:</p><ul> |
| 16820 | 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c | .<li><a.href="#if">if</a></li>.< |
| 16840 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4e 75 6c 6c 61 62 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 | li><a.href="#Nullables">Nullable |
| 16860 | 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 | s</a></li>.<li><a.href="#Errors" |
| 16880 | 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 | >Errors</a></li>.<li><a.href="#c |
| 168a0 | 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c | omptime">comptime</a></li>.<li>< |
| 168c0 | 61 20 68 72 65 66 3d 22 23 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e 72 65 61 63 68 61 62 6c | a.href="#unreachable">unreachabl |
| 168e0 | 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | e</a></li>.</ul>...............< |
| 16900 | 68 31 20 69 64 3d 22 66 6f 72 22 3e 66 6f 72 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 | h1.id="for">for</h1>........<p.c |
| 16920 | 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 6f 72 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 | lass="file">for.zig</p><pre><cod |
| 16940 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d | e.class="zig">const.assert.=.@im |
| 16960 | 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 | port("std").debug.asse |
| 16980 | 72 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b | rt;..test."for.basics" |
| 169a0 | 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 69 74 65 6d 73 20 3d 20 5b 5d 69 33 32 20 7b 20 34 2c 20 | .{.....const.items.=.[]i32.{.4,. |
| 169c0 | 35 2c 20 33 2c 20 34 2c 20 30 20 7d 3b 0a 20 20 20 20 76 61 72 20 73 75 6d 3a 20 69 33 32 20 3d | 5,.3,.4,.0.};.....var.sum:.i32.= |
| 169e0 | 20 30 3b 0a 0a 20 20 20 20 2f 2f 20 46 6f 72 20 6c 6f 6f 70 73 20 69 74 65 72 61 74 65 20 6f 76 | .0;......//.For.loops.iterate.ov |
| 16a00 | 65 72 20 73 6c 69 63 65 73 20 61 6e 64 20 61 72 72 61 79 73 2e 0a 20 20 20 20 66 6f 72 20 28 69 | er.slices.and.arrays......for.(i |
| 16a20 | 74 65 6d 73 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 42 72 65 61 6b | tems).|value|.{.........//.Break |
| 16a40 | 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 2e 0a 20 20 20 | .and.continue.are.supported..... |
| 16a60 | 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 | .....if.(value.==.0).{.......... |
| 16a80 | 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 73 | ...continue;.........}.........s |
| 16aa0 | 75 6d 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 | um.+=.value;.....}.....assert(su |
| 16ac0 | 6d 20 3d 3d 20 31 36 29 3b 0a 0a 20 20 20 20 2f 2f 20 54 6f 20 69 74 65 72 61 74 65 20 6f 76 65 | m.==.16);......//.To.iterate.ove |
| 16ae0 | 72 20 61 20 70 6f 72 74 69 6f 6e 20 6f 66 20 61 20 73 6c 69 63 65 2c 20 72 65 73 6c 69 63 65 2e | r.a.portion.of.a.slice,.reslice. |
| 16b00 | 0a 20 20 20 20 66 6f 72 20 28 69 74 65 6d 73 5b 30 2e 2e 31 5d 29 20 7c 76 61 6c 75 65 7c 20 7b | .....for.(items[0..1]).|value|.{ |
| 16b20 | 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 76 61 6c 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 | .........sum.+=.value;.....}.... |
| 16b40 | 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 32 30 29 3b 0a 0a 20 20 20 20 2f 2f 20 54 6f 20 61 | .assert(sum.==.20);......//.To.a |
| 16b60 | 63 63 65 73 73 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 2c 20 73 70 | ccess.the.index.of.iteration,.sp |
| 16b80 | 65 63 69 66 79 20 61 20 73 65 63 6f 6e 64 20 63 61 70 74 75 72 65 20 76 61 6c 75 65 2e 0a 20 20 | ecify.a.second.capture.value.... |
| 16ba0 | 20 20 2f 2f 20 54 68 69 73 20 69 73 20 7a 65 72 6f 2d 69 6e 64 65 78 65 64 2e 0a 20 20 20 20 76 | ..//.This.is.zero-indexed......v |
| 16bc0 | 61 72 20 73 75 6d 32 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 20 66 6f 72 20 28 69 74 65 6d 73 | ar.sum2:.i32.=.0;.....for.(items |
| 16be0 | 29 20 7c 76 61 6c 75 65 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 40 74 | ).|value,.i|.{.........assert(@t |
| 16c00 | 79 70 65 4f 66 28 69 29 20 3d 3d 20 75 73 69 7a 65 29 3b 0a 20 20 20 20 20 20 20 20 73 75 6d 32 | ypeOf(i).==.usize);.........sum2 |
| 16c20 | 20 2b 3d 20 69 33 32 28 69 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 73 75 6d | .+=.i32(i);.....}.....assert(sum |
| 16c40 | 32 20 3d 3d 20 31 30 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 72 20 72 65 66 65 | 2.==.10);.}..test."for.refe |
| 16c60 | 72 65 6e 63 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 20 69 74 65 6d 73 20 3d 20 5b 5d | rence".{.....var.items.=.[] |
| 16c80 | 69 33 32 20 7b 20 33 2c 20 34 2c 20 32 20 7d 3b 0a 0a 20 20 20 20 2f 2f 20 49 74 65 72 61 74 65 | i32.{.3,.4,.2.};......//.Iterate |
| 16ca0 | 20 6f 76 65 72 20 74 68 65 20 73 6c 69 63 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 62 79 0a | .over.the.slice.by.reference.by. |
| 16cc0 | 20 20 20 20 2f 2f 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 61 74 20 74 68 65 20 63 61 70 74 75 | ....//.specifying.that.the.captu |
| 16ce0 | 72 65 20 76 61 6c 75 65 20 69 73 20 61 20 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 66 6f 72 20 28 | re.value.is.a.pointer......for.( |
| 16d00 | 69 74 65 6d 73 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 2a 76 61 6c 75 65 | items).|*value|.{.........*value |
| 16d20 | 20 2b 3d 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 30 | .+=.1;.....}......assert(items[0 |
| 16d40 | 5d 20 3d 3d 20 34 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 31 5d 20 3d 3d 20 | ].==.4);.....assert(items[1].==. |
| 16d60 | 35 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 69 74 65 6d 73 5b 32 5d 20 3d 3d 20 33 29 3b 0a 7d | 5);.....assert(items[2].==.3);.} |
| 16d80 | 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 72 20 65 6c 73 65 26 71 75 6f 74 3b 20 7b 0a 20 20 | ..test."for.else".{... |
| 16da0 | 20 20 2f 2f 20 46 6f 72 20 61 6c 6c 6f 77 73 20 61 6e 20 65 6c 73 65 20 61 74 74 61 63 68 65 64 | ..//.For.allows.an.else.attached |
| 16dc0 | 20 74 6f 20 69 74 2c 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 20 77 68 69 6c 65 20 6c 6f 6f 70 | .to.it,.the.same.as.a.while.loop |
| 16de0 | 2e 0a 20 20 20 20 76 61 72 20 69 74 65 6d 73 20 3d 20 5b 5d 3f 69 33 32 20 7b 20 33 2c 20 34 2c | ......var.items.=.[]?i32.{.3,.4, |
| 16e00 | 20 6e 75 6c 6c 2c 20 35 20 7d 3b 0a 0a 20 20 20 20 2f 2f 20 46 6f 72 20 6c 6f 6f 70 73 20 63 61 | .null,.5.};......//.For.loops.ca |
| 16e20 | 6e 20 61 6c 73 6f 20 62 65 20 75 73 65 64 20 61 73 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 0a 20 | n.also.be.used.as.expressions... |
| 16e40 | 20 20 20 76 61 72 20 73 75 6d 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 72 | ...var.sum:.i32.=.0;.....const.r |
| 16e60 | 65 73 75 6c 74 20 3d 20 66 6f 72 20 28 69 74 65 6d 73 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 | esult.=.for.(items).|value|.{... |
| 16e80 | 20 20 20 20 20 20 69 66 20 28 76 61 6c 75 65 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 | ......if.(value.==.null).{...... |
| 16ea0 | 20 20 20 20 20 20 20 62 72 65 61 6b 20 39 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b | .......break.9;.........}.else.{ |
| 16ec0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 3f 3f 76 61 6c 75 65 3b 0a 20 20 20 | .............sum.+=.??value;.... |
| 16ee0 | 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 20 62 6c 6b 3a 20 7b 0a 20 20 20 20 20 20 20 | .....}.....}.else.blk:.{........ |
| 16f00 | 20 61 73 73 65 72 74 28 73 75 6d 20 3d 3d 20 37 29 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b | .assert(sum.==.7);.........break |
| 16f20 | 20 3a 62 6c 6b 20 73 75 6d 3b 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 0a 74 65 73 74 20 26 71 75 6f 74 | .:blk.sum;.....};.}...test." |
| 16f40 | 3b 69 6e 6c 69 6e 65 20 66 6f 72 20 6c 6f 6f 70 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e | ;inline.for.loop".{.....con |
| 16f60 | 73 74 20 6e 75 6d 73 20 3d 20 5b 5d 69 33 32 7b 32 2c 20 34 2c 20 36 7d 3b 0a 20 20 20 20 2f 2f | st.nums.=.[]i32{2,.4,.6};.....// |
| 16f80 | 20 46 6f 72 20 6c 6f 6f 70 73 20 63 61 6e 20 62 65 20 69 6e 6c 69 6e 65 64 2e 20 54 68 69 73 20 | .For.loops.can.be.inlined..This. |
| 16fa0 | 63 61 75 73 65 73 20 74 68 65 20 6c 6f 6f 70 20 74 6f 20 62 65 20 75 6e 72 6f 6c 6c 65 64 2c 20 | causes.the.loop.to.be.unrolled,. |
| 16fc0 | 77 68 69 63 68 0a 20 20 20 20 2f 2f 20 61 6c 6c 6f 77 73 20 74 68 65 20 63 6f 64 65 20 74 6f 20 | which.....//.allows.the.code.to. |
| 16fe0 | 64 6f 20 73 6f 6d 65 20 74 68 69 6e 67 73 20 77 68 69 63 68 20 6f 6e 6c 79 20 77 6f 72 6b 20 61 | do.some.things.which.only.work.a |
| 17000 | 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2c 0a 20 20 20 20 2f 2f 20 73 75 63 68 20 61 73 20 75 | t.compile.time,.....//.such.as.u |
| 17020 | 73 65 20 74 79 70 65 73 20 61 73 20 66 69 72 73 74 20 63 6c 61 73 73 20 76 61 6c 75 65 73 2e 0a | se.types.as.first.class.values.. |
| 17040 | 20 20 20 20 2f 2f 20 54 68 65 20 63 61 70 74 75 72 65 20 76 61 6c 75 65 20 61 6e 64 20 69 74 65 | ....//.The.capture.value.and.ite |
| 17060 | 72 61 74 6f 72 20 76 61 6c 75 65 20 6f 66 20 69 6e 6c 69 6e 65 64 20 66 6f 72 20 6c 6f 6f 70 73 | rator.value.of.inlined.for.loops |
| 17080 | 20 61 72 65 0a 20 20 20 20 2f 2f 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a | .are.....//.compile-time.known.. |
| 170a0 | 20 20 20 20 76 61 72 20 73 75 6d 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 69 6e 6c 69 | ....var.sum:.usize.=.0;.....inli |
| 170c0 | 6e 65 20 66 6f 72 20 28 6e 75 6d 73 29 20 7c 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 | ne.for.(nums).|i|.{.........cons |
| 170e0 | 74 20 54 20 3d 20 73 77 69 74 63 68 20 28 69 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 32 | t.T.=.switch.(i).{.............2 |
| 17100 | 20 3d 26 67 74 3b 20 66 33 32 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 34 20 3d 26 67 74 3b 20 | .=>.f32,.............4.=>. |
| 17120 | 69 38 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 36 20 3d 26 67 74 3b 20 62 6f 6f 6c 2c 0a 20 20 | i8,.............6.=>.bool,... |
| 17140 | 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 75 6e 72 65 61 63 68 61 62 6c 65 | ..........else.=>.unreachable |
| 17160 | 2c 0a 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 74 79 70 65 | ,.........};.........sum.+=.type |
| 17180 | 4e 61 6d 65 4c 65 6e 67 74 68 28 54 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 | NameLength(T);.....}.....assert( |
| 171a0 | 73 75 6d 20 3d 3d 20 39 29 3b 0a 7d 0a 0a 66 6e 20 74 79 70 65 4e 61 6d 65 4c 65 6e 67 74 68 28 | sum.==.9);.}..fn.typeNameLength( |
| 171c0 | 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 75 73 69 7a 65 20 7b 0a 20 20 20 20 72 65 | comptime.T:.type).usize.{.....re |
| 171e0 | 74 75 72 6e 20 40 74 79 70 65 4e 61 6d 65 28 54 29 2e 6c 65 6e 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c | turn.@typeName(T).len;.}</code>< |
| 17200 | 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 | /pre><pre><code.class="shell">$. |
| 17220 | 7a 69 67 20 74 65 73 74 20 66 6f 72 2e 7a 69 67 0a 54 65 73 74 20 31 2f 34 20 66 6f 72 20 62 61 | zig.test.for.zig.Test.1/4.for.ba |
| 17240 | 73 69 63 73 2e 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 34 20 66 6f 72 20 72 65 66 65 72 65 6e 63 65 | sics...OK.Test.2/4.for.reference |
| 17260 | 2e 2e 2e 4f 4b 0a 54 65 73 74 20 33 2f 34 20 66 6f 72 20 65 6c 73 65 2e 2e 2e 4f 4b 0a 54 65 73 | ...OK.Test.3/4.for.else...OK.Tes |
| 17280 | 74 20 34 2f 34 20 69 6e 6c 69 6e 65 20 66 6f 72 20 6c 6f 6f 70 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 | t.4/4.inline.for.loop...OK.</cod |
| 172a0 | 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e | e></pre>........<p>See.also:</p> |
| 172c0 | 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 77 68 69 6c 65 22 3e 77 68 69 6c 65 3c | <ul>.<li><a.href="#while">while< |
| 172e0 | 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 6d 65 22 | /a></li>.<li><a.href="#comptime" |
| 17300 | 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | >comptime</a></li>.<li><a.href=" |
| 17320 | 23 41 72 72 61 79 73 22 3e 41 72 72 61 79 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 | #Arrays">Arrays</a></li>.<li><a. |
| 17340 | 68 72 65 66 3d 22 23 53 6c 69 63 65 73 22 3e 53 6c 69 63 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c | href="#Slices">Slices</a></li>.< |
| 17360 | 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 69 66 22 3e 69 | /ul>...............<h1.id="if">i |
| 17380 | 66 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 69 66 | f</h1>........<p.class="file">if |
| 173a0 | 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f | .zig</p><pre><code.class="zig">/ |
| 173c0 | 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 68 61 76 65 20 74 68 72 65 65 20 75 73 65 73 | /.If.expressions.have.three.uses |
| 173e0 | 2c 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 74 68 72 65 65 20 74 79 70 | ,.corresponding.to.the.three.typ |
| 17400 | 65 73 3a 0a 2f 2f 20 2a 20 62 6f 6f 6c 0a 2f 2f 20 2a 20 3f 54 0a 2f 2f 20 2a 20 65 72 72 6f 72 | es:.//.*.bool.//.*.?T.//.*.error |
| 17420 | 21 54 0a 0a 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 | !T..const.assert.=.@import(" |
| 17440 | 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 | ;std").debug.assert;..test. |
| 17460 | 26 71 75 6f 74 3b 69 66 20 62 6f 6f 6c 65 61 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 | "if.boolean".{.....//. |
| 17480 | 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 65 73 74 20 62 6f 6f 6c 65 61 6e 20 63 6f 6e 64 | If.expressions.test.boolean.cond |
| 174a0 | 69 74 69 6f 6e 73 2e 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 75 33 32 20 3d 20 35 3b 0a 20 20 | itions......const.a:.u32.=.5;... |
| 174c0 | 20 20 63 6f 6e 73 74 20 62 3a 20 75 33 32 20 3d 20 34 3b 0a 20 20 20 20 69 66 20 28 61 20 21 3d | ..const.b:.u32.=.4;.....if.(a.!= |
| 174e0 | 20 62 29 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 74 72 75 65 29 3b 0a 20 20 20 20 | .b).{.........assert(true);..... |
| 17500 | 7d 20 65 6c 73 65 20 69 66 20 28 61 20 3d 3d 20 39 29 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 | }.else.if.(a.==.9).{.........unr |
| 17520 | 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 75 | eachable;.....}.else.{.........u |
| 17540 | 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 49 66 20 65 78 70 | nreachable;.....}......//.If.exp |
| 17560 | 72 65 73 73 69 6f 6e 73 20 61 72 65 20 75 73 65 64 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 74 | ressions.are.used.instead.of.a.t |
| 17580 | 65 72 6e 61 72 79 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 | ernary.expression......const.res |
| 175a0 | 75 6c 74 20 3d 20 69 66 20 28 61 20 21 3d 20 62 29 20 34 37 20 65 6c 73 65 20 33 30 38 39 3b 0a | ult.=.if.(a.!=.b).47.else.3089;. |
| 175c0 | 20 20 20 20 61 73 73 65 72 74 28 72 65 73 75 6c 74 20 3d 3d 20 34 37 29 3b 0a 7d 0a 0a 74 65 73 | ....assert(result.==.47);.}..tes |
| 175e0 | 74 20 26 71 75 6f 74 3b 69 66 20 6e 75 6c 6c 61 62 6c 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 | t."if.nullable".{..... |
| 17600 | 2f 2f 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 65 73 74 20 66 6f 72 20 6e 75 6c 6c 2e | //.If.expressions.test.for.null. |
| 17620 | 0a 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 3f 75 33 32 20 3d 20 30 3b 0a 20 20 20 20 69 66 20 | ......const.a:.?u32.=.0;.....if. |
| 17640 | 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 6c | (a).|value|.{.........assert(val |
| 17660 | 75 65 20 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 75 | ue.==.0);.....}.else.{.........u |
| 17680 | 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 63 6f 6e 73 74 20 62 3a 20 | nreachable;.....}......const.b:. |
| 176a0 | 3f 75 33 32 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 69 66 20 28 62 29 20 7c 76 61 6c 75 65 7c 20 | ?u32.=.null;.....if.(b).|value|. |
| 176c0 | 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 20 65 6c 73 | {.........unreachable;.....}.els |
| 176e0 | 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 74 72 75 65 29 3b 0a 20 20 20 20 7d 0a | e.{.........assert(true);.....}. |
| 17700 | 0a 20 20 20 20 2f 2f 20 54 68 65 20 65 6c 73 65 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 | .....//.The.else.is.not.required |
| 17720 | 2e 0a 20 20 20 20 69 66 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 | ......if.(a).|value|.{.........a |
| 17740 | 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f | ssert(value.==.0);.....}......// |
| 17760 | 20 54 6f 20 74 65 73 74 20 61 67 61 69 6e 73 74 20 6e 75 6c 6c 20 6f 6e 6c 79 2c 20 75 73 65 20 | .To.test.against.null.only,.use. |
| 17780 | 74 68 65 20 62 69 6e 61 72 79 20 65 71 75 61 6c 69 74 79 20 6f 70 65 72 61 74 6f 72 2e 0a 20 20 | the.binary.equality.operator.... |
| 177a0 | 20 20 69 66 20 28 62 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 | ..if.(b.==.null).{.........asser |
| 177c0 | 74 28 74 72 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 41 63 63 65 73 73 20 74 68 | t(true);.....}......//.Access.th |
| 177e0 | 65 20 76 61 6c 75 65 20 62 79 20 72 65 66 65 72 65 6e 63 65 20 75 73 69 6e 67 20 61 20 70 6f 69 | e.value.by.reference.using.a.poi |
| 17800 | 6e 74 65 72 20 63 61 70 74 75 72 65 2e 0a 20 20 20 20 76 61 72 20 63 3a 20 3f 75 33 32 20 3d 20 | nter.capture......var.c:.?u32.=. |
| 17820 | 33 3b 0a 20 20 20 20 69 66 20 28 63 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 | 3;.....if.(c).|*value|.{........ |
| 17840 | 20 2a 76 61 6c 75 65 20 3d 20 32 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 63 29 20 7c | .*value.=.2;.....}......if.(c).| |
| 17860 | 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d | value|.{.........assert(value.== |
| 17880 | 20 32 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 | .2);.....}.else.{.........unreac |
| 178a0 | 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 66 20 65 72 | hable;.....}.}..test."if.er |
| 178c0 | 72 6f 72 20 75 6e 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 49 66 20 65 78 70 72 | ror.union".{.....//.If.expr |
| 178e0 | 65 73 73 69 6f 6e 73 20 74 65 73 74 20 66 6f 72 20 65 72 72 6f 72 73 2e 0a 20 20 20 20 2f 2f 20 | essions.test.for.errors......//. |
| 17900 | 4e 6f 74 65 20 74 68 65 20 7c 65 72 72 7c 20 63 61 70 74 75 72 65 20 6f 6e 20 74 68 65 20 65 6c | Note.the.|err|.capture.on.the.el |
| 17920 | 73 65 2e 0a 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 65 72 72 6f 72 21 75 33 32 20 3d 20 30 3b | se.......const.a:.error!u32.=.0; |
| 17940 | 0a 20 20 20 20 69 66 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 | .....if.(a).|value|.{.........as |
| 17960 | 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 30 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 | sert(value.==.0);.....}.else.|er |
| 17980 | 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a | r|.{.........unreachable;.....}. |
| 179a0 | 0a 20 20 20 20 63 6f 6e 73 74 20 62 3a 20 65 72 72 6f 72 21 75 33 32 20 3d 20 65 72 72 6f 72 2e | .....const.b:.error!u32.=.error. |
| 179c0 | 42 61 64 56 61 6c 75 65 3b 0a 20 20 20 20 69 66 20 28 62 29 20 7c 76 61 6c 75 65 7c 20 7b 0a 20 | BadValue;.....if.(b).|value|.{.. |
| 179e0 | 20 20 20 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c | .......unreachable;.....}.else.| |
| 17a00 | 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 65 72 72 20 3d 3d 20 65 72 72 | err|.{.........assert(err.==.err |
| 17a20 | 6f 72 2e 42 61 64 56 61 6c 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 54 68 65 20 | or.BadValue);.....}......//.The. |
| 17a40 | 65 6c 73 65 20 61 6e 64 20 7c 65 72 72 7c 20 63 61 70 74 75 72 65 20 69 73 20 73 74 72 69 63 74 | else.and.|err|.capture.is.strict |
| 17a60 | 6c 79 20 72 65 71 75 69 72 65 64 2e 0a 20 20 20 20 69 66 20 28 61 29 20 7c 76 61 6c 75 65 7c 20 | ly.required......if.(a).|value|. |
| 17a80 | 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d 20 30 29 3b 0a 20 20 | {.........assert(value.==.0);... |
| 17aa0 | 20 20 7d 20 65 6c 73 65 20 7c 5f 7c 20 7b 7d 0a 0a 20 20 20 20 2f 2f 20 54 6f 20 63 68 65 63 6b | ..}.else.|_|.{}......//.To.check |
| 17ac0 | 20 6f 6e 6c 79 20 74 68 65 20 65 72 72 6f 72 20 76 61 6c 75 65 2c 20 75 73 65 20 61 6e 20 65 6d | .only.the.error.value,.use.an.em |
| 17ae0 | 70 74 79 20 62 6c 6f 63 6b 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 69 66 20 28 62 29 | pty.block.expression......if.(b) |
| 17b00 | 20 7c 5f 7c 20 7b 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 | .|_|.{}.else.|err|.{.........ass |
| 17b20 | 65 72 74 28 65 72 72 20 3d 3d 20 65 72 72 6f 72 2e 42 61 64 56 61 6c 75 65 29 3b 0a 20 20 20 20 | ert(err.==.error.BadValue);..... |
| 17b40 | 7d 0a 0a 20 20 20 20 2f 2f 20 41 63 63 65 73 73 20 74 68 65 20 76 61 6c 75 65 20 62 79 20 72 65 | }......//.Access.the.value.by.re |
| 17b60 | 66 65 72 65 6e 63 65 20 75 73 69 6e 67 20 61 20 70 6f 69 6e 74 65 72 20 63 61 70 74 75 72 65 2e | ference.using.a.pointer.capture. |
| 17b80 | 0a 20 20 20 20 76 61 72 20 63 3a 20 65 72 72 6f 72 21 75 33 32 20 3d 20 33 3b 0a 20 20 20 20 69 | .....var.c:.error!u32.=.3;.....i |
| 17ba0 | 66 20 28 63 29 20 7c 2a 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 2a 76 61 6c 75 65 20 | f.(c).|*value|.{.........*value. |
| 17bc0 | 3d 20 39 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 | =.9;.....}.else.|err|.{......... |
| 17be0 | 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 63 29 20 7c | unreachable;.....}......if.(c).| |
| 17c00 | 76 61 6c 75 65 7c 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 76 61 6c 75 65 20 3d 3d | value|.{.........assert(value.== |
| 17c20 | 20 39 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 | .9);.....}.else.|err|.{......... |
| 17c40 | 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | unreachable;.....}.}</code></pre |
| 17c60 | 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 | ><pre><code.class="shell">$.zig. |
| 17c80 | 74 65 73 74 20 69 66 2e 7a 69 67 0a 54 65 73 74 20 31 2f 33 20 69 66 20 62 6f 6f 6c 65 61 6e 2e | test.if.zig.Test.1/3.if.boolean. |
| 17ca0 | 2e 2e 4f 4b 0a 54 65 73 74 20 32 2f 33 20 69 66 20 6e 75 6c 6c 61 62 6c 65 2e 2e 2e 4f 4b 0a 54 | ..OK.Test.2/3.if.nullable...OK.T |
| 17cc0 | 65 73 74 20 33 2f 33 20 69 66 20 65 72 72 6f 72 20 75 6e 69 6f 6e 2e 2e 2e 4f 4b 0a 3c 2f 63 6f | est.3/3.if.error.union...OK.</co |
| 17ce0 | 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 | de></pre>........<p>See.also:</p |
| 17d00 | 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 4e 75 6c 6c 61 62 6c 65 73 22 3e 4e | ><ul>.<li><a.href="#Nullables">N |
| 17d20 | 75 6c 6c 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | ullables</a></li>.<li><a.href="# |
| 17d40 | 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 | Errors">Errors</a></li>.</ul>... |
| 17d60 | 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 64 65 66 65 72 22 3e 64 65 66 65 72 | ............<h1.id="defer">defer |
| 17d80 | 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 64 65 66 | </h1>........<p.class="file">def |
| 17da0 | 65 72 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | er.zig</p><pre><code.class="zig" |
| 17dc0 | 3e 63 6f 6e 73 74 20 73 74 64 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 | >const.std.=.@import("std&q |
| 17de0 | 75 6f 74 3b 29 3b 0a 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 73 74 64 2e 64 65 62 75 67 2e | uot;);.const.assert.=.std.debug. |
| 17e00 | 61 73 73 65 72 74 3b 0a 63 6f 6e 73 74 20 77 61 72 6e 20 3d 20 73 74 64 2e 64 65 62 75 67 2e 77 | assert;.const.warn.=.std.debug.w |
| 17e20 | 61 72 6e 3b 0a 0a 2f 2f 20 64 65 66 65 72 20 77 69 6c 6c 20 65 78 65 63 75 74 65 20 61 6e 20 65 | arn;..//.defer.will.execute.an.e |
| 17e40 | 78 70 72 65 73 73 69 6f 6e 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 63 75 72 72 | xpression.at.the.end.of.the.curr |
| 17e60 | 65 6e 74 20 73 63 6f 70 65 2e 0a 66 6e 20 64 65 66 65 72 45 78 61 6d 70 6c 65 28 29 20 75 73 69 | ent.scope..fn.deferExample().usi |
| 17e80 | 7a 65 20 7b 0a 20 20 20 20 76 61 72 20 61 3a 20 75 73 69 7a 65 20 3d 20 31 3b 0a 0a 20 20 20 20 | ze.{.....var.a:.usize.=.1;...... |
| 17ea0 | 7b 0a 20 20 20 20 20 20 20 20 64 65 66 65 72 20 61 20 3d 20 32 3b 0a 20 20 20 20 20 20 20 20 61 | {.........defer.a.=.2;.........a |
| 17ec0 | 20 3d 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 61 20 3d 3d 20 32 29 3b 0a | .=.1;.....}.....assert(a.==.2);. |
| 17ee0 | 0a 20 20 20 20 61 20 3d 20 35 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 61 3b 0a 7d 0a 0a 74 65 73 | .....a.=.5;.....return.a;.}..tes |
| 17f00 | 74 20 26 71 75 6f 74 3b 64 65 66 65 72 20 62 61 73 69 63 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | t."defer.basics".{.... |
| 17f20 | 20 61 73 73 65 72 74 28 64 65 66 65 72 45 78 61 6d 70 6c 65 28 29 20 3d 3d 20 35 29 3b 0a 7d 0a | .assert(deferExample().==.5);.}. |
| 17f40 | 0a 2f 2f 20 49 66 20 6d 75 6c 74 69 70 6c 65 20 64 65 66 65 72 20 73 74 61 74 65 6d 65 6e 74 73 | .//.If.multiple.defer.statements |
| 17f60 | 20 61 72 65 20 73 70 65 63 69 66 69 65 64 2c 20 74 68 65 79 20 77 69 6c 6c 20 62 65 20 65 78 65 | .are.specified,.they.will.be.exe |
| 17f80 | 63 75 74 65 64 20 69 6e 0a 2f 2f 20 74 68 65 20 72 65 76 65 72 73 65 20 6f 72 64 65 72 20 74 68 | cuted.in.//.the.reverse.order.th |
| 17fa0 | 65 79 20 77 65 72 65 20 72 75 6e 2e 0a 66 6e 20 64 65 66 65 72 55 6e 77 69 6e 64 45 78 61 6d 70 | ey.were.run..fn.deferUnwindExamp |
| 17fc0 | 6c 65 28 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 5c 6e 26 71 75 | le().void.{.....warn("\n&qu |
| 17fe0 | 6f 74 3b 29 3b 0a 0a 20 20 20 20 64 65 66 65 72 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 | ot;);......defer.{.........warn( |
| 18000 | 26 71 75 6f 74 3b 31 20 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 64 65 66 65 72 | "1.");.....}.....defer |
| 18020 | 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 32 20 26 71 75 6f 74 3b 29 3b | .{.........warn("2."); |
| 18040 | 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 20 28 66 61 6c 73 65 29 20 7b 0a 20 20 20 20 20 20 20 20 | .....}.....if.(false).{......... |
| 18060 | 2f 2f 20 64 65 66 65 72 73 20 61 72 65 20 6e 6f 74 20 72 75 6e 20 69 66 20 74 68 65 79 20 61 72 | //.defers.are.not.run.if.they.ar |
| 18080 | 65 20 6e 65 76 65 72 20 65 78 65 63 75 74 65 64 2e 0a 20 20 20 20 20 20 20 20 64 65 66 65 72 20 | e.never.executed..........defer. |
| 180a0 | 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 33 20 26 71 75 6f 74 | {.............warn("3." |
| 180c0 | 3b 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f | ;);.........}.....}.}..test.&quo |
| 180e0 | 74 3b 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 64 65 | t;defer.unwinding".{.....de |
| 18100 | 66 65 72 55 6e 77 69 6e 64 45 78 61 6d 70 6c 65 28 29 3b 0a 7d 0a 0a 2f 2f 20 54 68 65 20 65 72 | ferUnwindExample();.}..//.The.er |
| 18120 | 72 64 65 66 65 72 20 6b 65 79 77 6f 72 64 20 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 64 65 66 | rdefer.keyword.is.similar.to.def |
| 18140 | 65 72 2c 20 62 75 74 20 77 69 6c 6c 20 6f 6e 6c 79 20 65 78 65 63 75 74 65 20 69 66 20 74 68 65 | er,.but.will.only.execute.if.the |
| 18160 | 0a 2f 2f 20 73 63 6f 70 65 20 72 65 74 75 72 6e 73 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 2e | .//.scope.returns.with.an.error. |
| 18180 | 0a 2f 2f 0a 2f 2f 20 54 68 69 73 20 69 73 20 65 73 70 65 63 69 61 6c 6c 79 20 75 73 65 66 75 6c | .//.//.This.is.especially.useful |
| 181a0 | 20 69 6e 20 61 6c 6c 6f 77 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 6c 65 61 6e | .in.allowing.a.function.to.clean |
| 181c0 | 20 75 70 20 70 72 6f 70 65 72 6c 79 0a 2f 2f 20 6f 6e 20 65 72 72 6f 72 2c 20 61 6e 64 20 72 65 | .up.properly.//.on.error,.and.re |
| 181e0 | 70 6c 61 63 65 73 20 67 6f 74 6f 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 61 63 74 69 | places.goto.error.handling.tacti |
| 18200 | 63 73 20 61 73 20 73 65 65 6e 20 69 6e 20 63 2e 0a 66 6e 20 64 65 66 65 72 45 72 72 6f 72 45 78 | cs.as.seen.in.c..fn.deferErrorEx |
| 18220 | 61 6d 70 6c 65 28 69 73 5f 65 72 72 6f 72 3a 20 62 6f 6f 6c 29 20 21 76 6f 69 64 20 7b 0a 20 20 | ample(is_error:.bool).!void.{... |
| 18240 | 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 5c 6e 73 74 61 72 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e | ..warn("\nstart.of.function |
| 18260 | 5c 6e 26 71 75 6f 74 3b 29 3b 0a 0a 20 20 20 20 2f 2f 20 54 68 69 73 20 77 69 6c 6c 20 61 6c 77 | \n");......//.This.will.alw |
| 18280 | 61 79 73 20 62 65 20 65 78 65 63 75 74 65 64 20 6f 6e 20 65 78 69 74 0a 20 20 20 20 64 65 66 65 | ays.be.executed.on.exit.....defe |
| 182a0 | 72 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 65 6e 64 20 6f 66 20 66 75 | r.{.........warn("end.of.fu |
| 182c0 | 6e 63 74 69 6f 6e 5c 6e 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 65 72 72 64 | nction\n");.....}......errd |
| 182e0 | 65 66 65 72 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 65 6e 63 6f 75 6e | efer.{.........warn("encoun |
| 18300 | 74 65 72 65 64 20 61 6e 20 65 72 72 6f 72 21 5c 6e 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 7d 0a | tered.an.error!\n");.....}. |
| 18320 | 0a 20 20 20 20 69 66 20 28 69 73 5f 65 72 72 6f 72 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 | .....if.(is_error).{.........ret |
| 18340 | 75 72 6e 20 65 72 72 6f 72 2e 44 65 66 65 72 45 72 72 6f 72 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 74 | urn.error.DeferError;.....}.}..t |
| 18360 | 65 73 74 20 26 71 75 6f 74 3b 65 72 72 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 26 71 75 6f | est."errdefer.unwinding&quo |
| 18380 | 74 3b 20 7b 0a 20 20 20 20 5f 20 3d 20 64 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 28 66 | t;.{....._.=.deferErrorExample(f |
| 183a0 | 61 6c 73 65 29 3b 0a 20 20 20 20 5f 20 3d 20 64 65 66 65 72 45 72 72 6f 72 45 78 61 6d 70 6c 65 | alse);....._.=.deferErrorExample |
| 183c0 | 28 74 72 75 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 | (true);.}</code></pre><pre><code |
| 183e0 | 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 64 65 66 65 72 2e | .class="shell">$.zig.test.defer. |
| 18400 | 7a 69 67 0a 54 65 73 74 20 31 2f 33 20 64 65 66 65 72 20 62 61 73 69 63 73 2e 2e 2e 4f 4b 0a 54 | zig.Test.1/3.defer.basics...OK.T |
| 18420 | 65 73 74 20 32 2f 33 20 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 2e 2e 2e 0a 32 20 31 20 4f | est.2/3.defer.unwinding....2.1.O |
| 18440 | 4b 0a 54 65 73 74 20 33 2f 33 20 65 72 72 64 65 66 65 72 20 75 6e 77 69 6e 64 69 6e 67 2e 2e 2e | K.Test.3/3.errdefer.unwinding... |
| 18460 | 0a 73 74 61 72 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 | .start.of.function.end.of.functi |
| 18480 | 6f 6e 0a 0a 73 74 61 72 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 65 6e 63 6f 75 6e 74 65 72 65 | on..start.of.function.encountere |
| 184a0 | 64 20 61 6e 20 65 72 72 6f 72 21 0a 65 6e 64 20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 4f 4b 0a 3c | d.an.error!.end.of.function.OK.< |
| 184c0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a | /code></pre>........<p>See.also: |
| 184e0 | 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 45 72 72 6f 72 73 22 3e 45 | </p><ul>.<li><a.href="#Errors">E |
| 18500 | 72 72 6f 72 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 | rrors</a></li>.</ul>............ |
| 18520 | 20 20 20 3c 68 31 20 69 64 3d 22 75 6e 72 65 61 63 68 61 62 6c 65 22 3e 75 6e 72 65 61 63 68 61 | ...<h1.id="unreachable">unreacha |
| 18540 | 62 6c 65 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 3c 63 6f | ble</h1>........<p>.......In.<co |
| 18560 | 64 65 3e 44 65 62 75 67 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 52 65 6c 65 61 73 | de>Debug</code>.and.<code>Releas |
| 18580 | 65 53 61 66 65 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 20 61 6e 64 20 77 68 65 6e 20 75 73 69 6e | eSafe</code>.mode,.and.when.usin |
| 185a0 | 67 20 3c 63 6f 64 65 3e 7a 69 67 20 74 65 73 74 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 3c | g.<code>zig.test</code>,.......< |
| 185c0 | 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 20 65 6d 69 74 73 20 61 20 | code>unreachable</code>.emits.a. |
| 185e0 | 63 61 6c 6c 20 74 6f 20 3c 63 6f 64 65 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 20 77 69 74 68 20 | call.to.<code>panic</code>.with. |
| 18600 | 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 | the.message.<code>reached.unreac |
| 18620 | 68 61 62 6c 65 20 63 6f 64 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | hable.code</code>........</p>... |
| 18640 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 3c 63 6f 64 65 3e 52 65 6c 65 61 73 65 46 61 | ....<p>.......In.<code>ReleaseFa |
| 18660 | 73 74 3c 2f 63 6f 64 65 3e 20 6d 6f 64 65 2c 20 74 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 75 73 | st</code>.mode,.the.optimizer.us |
| 18680 | 65 73 20 74 68 65 20 61 73 73 75 6d 70 74 69 6f 6e 20 74 68 61 74 20 3c 63 6f 64 65 3e 75 6e 72 | es.the.assumption.that.<code>unr |
| 186a0 | 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 20 63 6f 64 65 0a 20 20 20 20 20 20 77 69 6c 6c 20 | eachable</code>.code.......will. |
| 186c0 | 6e 65 76 65 72 20 62 65 20 68 69 74 20 74 6f 20 70 65 72 66 6f 72 6d 20 6f 70 74 69 6d 69 7a 61 | never.be.hit.to.perform.optimiza |
| 186e0 | 74 69 6f 6e 73 2e 20 48 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 3e 7a 69 67 20 74 65 73 74 3c 2f | tions..However,.<code>zig.test</ |
| 18700 | 63 6f 64 65 3e 20 65 76 65 6e 20 69 6e 20 3c 63 6f 64 65 3e 52 65 6c 65 61 73 65 46 61 73 74 3c | code>.even.in.<code>ReleaseFast< |
| 18720 | 2f 63 6f 64 65 3e 20 6d 6f 64 65 0a 20 20 20 20 20 20 73 74 69 6c 6c 20 65 6d 69 74 73 20 3c 63 | /code>.mode.......still.emits.<c |
| 18740 | 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 20 61 73 20 63 61 6c 6c 73 20 | ode>unreachable</code>.as.calls. |
| 18760 | 74 6f 20 3c 63 6f 64 65 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 | to.<code>panic</code>........</p |
| 18780 | 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 42 61 73 69 63 73 22 3e 42 61 73 69 63 73 3c 2f | >.......<h2.id="Basics">Basics</ |
| 187a0 | 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e | h2>........<p.class="file">test. |
| 187c0 | 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f | zig</p><pre><code.class="zig">// |
| 187e0 | 20 75 6e 72 65 61 63 68 61 62 6c 65 20 69 73 20 75 73 65 64 20 74 6f 20 61 73 73 65 72 74 20 74 | .unreachable.is.used.to.assert.t |
| 18800 | 68 61 74 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 77 69 6c 6c 20 6e 65 76 65 72 20 68 61 70 70 | hat.control.flow.will.never.happ |
| 18820 | 65 6e 20 75 70 6f 6e 20 61 0a 2f 2f 20 70 61 72 74 69 63 75 6c 61 72 20 6c 6f 63 61 74 69 6f 6e | en.upon.a.//.particular.location |
| 18840 | 3a 0a 74 65 73 74 20 26 71 75 6f 74 3b 62 61 73 69 63 20 6d 61 74 68 26 71 75 6f 74 3b 20 7b 0a | :.test."basic.math".{. |
| 18860 | 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 79 20 3d 20 32 | ....const.x.=.1;.....const.y.=.2 |
| 18880 | 3b 0a 20 20 20 20 69 66 20 28 78 20 2b 20 79 20 21 3d 20 33 29 20 7b 0a 20 20 20 20 20 20 20 20 | ;.....if.(x.+.y.!=.3).{......... |
| 188a0 | 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | unreachable;.....}.}</code></pre |
| 188c0 | 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 | ><pre><code.class="shell">$.zig. |
| 188e0 | 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 62 61 73 69 63 20 6d 61 74 | test.test.zig.Test.1/1.basic.mat |
| 18900 | 68 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 49 | h...OK.</code></pre>........<p>I |
| 18920 | 6e 20 66 61 63 74 2c 20 74 68 69 73 20 69 73 20 68 6f 77 20 61 73 73 65 72 74 20 69 73 20 69 6d | n.fact,.this.is.how.assert.is.im |
| 18940 | 70 6c 65 6d 65 6e 74 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 | plemented:</p>.......<p.class="f |
| 18960 | 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ile">test.zig</p><pre><code.clas |
| 18980 | 73 3d 22 7a 69 67 22 3e 66 6e 20 61 73 73 65 72 74 28 6f 6b 3a 20 62 6f 6f 6c 29 20 76 6f 69 64 | s="zig">fn.assert(ok:.bool).void |
| 189a0 | 20 7b 0a 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20 2f 2f 20 | .{.....if.(!ok).unreachable;.//. |
| 189c0 | 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 7d 0a 0a 2f 2f 20 54 68 69 73 20 74 65 73 | assertion.failure.}..//.This.tes |
| 189e0 | 74 20 77 69 6c 6c 20 66 61 69 6c 20 62 65 63 61 75 73 65 20 77 65 20 68 69 74 20 75 6e 72 65 61 | t.will.fail.because.we.hit.unrea |
| 18a00 | 63 68 61 62 6c 65 2e 0a 74 65 73 74 20 26 71 75 6f 74 3b 74 68 69 73 20 77 69 6c 6c 20 66 61 69 | chable..test."this.will.fai |
| 18a20 | 6c 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 7d 3c 2f | l".{.....assert(false);.}</ |
| 18a40 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 | code></pre><pre><code.class="she |
| 18a60 | 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 | ll">$.zig.test.test.zig.Test.1/1 |
| 18a80 | 20 74 68 69 73 20 77 69 6c 6c 20 66 61 69 6c 2e 2e 2e 72 65 61 63 68 65 64 20 75 6e 72 65 61 63 | .this.will.fail...reached.unreac |
| 18aa0 | 68 61 62 6c 65 20 63 6f 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f | hable.code.<span.class="t37_1">/ |
| 18ac0 | 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 | home/andy/dev/zig/docgen_tmp/tes |
| 18ae0 | 74 2e 7a 69 67 3a 32 3a 31 34 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 | t.zig:2:14</span>:.<span.class=" |
| 18b00 | 74 32 5f 30 22 3e 30 78 32 30 33 38 33 39 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 | t2_0">0x203839.in.???.(test)</sp |
| 18b20 | 61 6e 3e 0a 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20 2f 2f | an>.....if.(!ok).unreachable;.// |
| 18b40 | 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .assertion.failure.............. |
| 18b60 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 | <span.class="t32_1">^</span>.<sp |
| 18b80 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f | an.class="t37_1">/home/andy/dev/ |
| 18ba0 | 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 37 3a 31 31 3c 2f 73 70 | zig/docgen_tmp/test.zig:7:11</sp |
| 18bc0 | 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 33 36 35 62 | an>:.<span.class="t2_0">0x20365b |
| 18be0 | 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 73 73 65 72 74 | .in.???.(test)</span>.....assert |
| 18c00 | 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 | (false);...........<span.class=" |
| 18c20 | 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 | t32_1">^</span>.<span.class="t37 |
| 18c40 | 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 | _1">/home/andy/dev/zig/build/lib |
| 18c60 | 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 | /zig/std/special/test_runner.zig |
| 18c80 | 3a 31 31 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 | :11:25</span>:.<span.class="t2_0 |
| 18ca0 | 22 3e 30 78 32 31 64 34 38 38 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a | ">0x21d488.in.???.(test)</span>. |
| 18cc0 | 20 20 20 20 20 20 20 20 74 72 79 20 74 65 73 74 5f 66 6e 2e 66 75 6e 63 28 29 3b 0a 20 20 20 20 | ........try.test_fn.func();..... |
| 18ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d | ....................<span.class= |
| 18d00 | 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 | "t32_1">^</span>.<span.class="t3 |
| 18d20 | 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 | 7_1">/home/andy/dev/zig/build/li |
| 18d40 | 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a | b/zig/std/special/bootstrap.zig: |
| 18d60 | 38 35 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 | 85:22</span>:.<span.class="t2_0" |
| 18d80 | 3e 30 78 32 31 64 32 38 62 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 | >0x21d28b.in.???.(test)</span>.. |
| 18da0 | 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 | ...........root.main().catch.|er |
| 18dc0 | 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 | r|.{......................<span. |
| 18de0 | 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 | class="t32_1">^</span>.<span.cla |
| 18e00 | 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 | ss="t37_1">/home/andy/dev/zig/bu |
| 18e20 | 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 | ild/lib/zig/std/special/bootstra |
| 18e40 | 70 2e 7a 69 67 3a 36 32 3a 32 30 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d | p.zig:62:20</span>:.<span.class= |
| 18e60 | 22 74 32 5f 30 22 3e 30 78 32 31 64 31 65 62 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 | "t2_0">0x21d1eb.in.???.(test)</s |
| 18e80 | 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 4d 61 69 6e 28 29 3b 0a 20 20 20 20 | pan>.....return.callMain();..... |
| 18ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f | ...............<span.class="t32_ |
| 18ec0 | 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e | 1">^</span>.<span.class="t37_1"> |
| 18ee0 | 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 | /home/andy/dev/zig/build/lib/zig |
| 18f00 | 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 35 32 3a 33 39 | /std/special/bootstrap.zig:52:39 |
| 18f20 | 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 | </span>:.<span.class="t2_0">0x21 |
| 18f40 | 64 30 37 63 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 74 | d07c.in.???.(test)</span>.....st |
| 18f60 | 64 2e 6f 73 2e 70 6f 73 69 78 2e 65 78 69 74 28 63 61 6c 6c 4d 61 69 6e 57 69 74 68 41 72 67 73 | d.os.posix.exit(callMainWithArgs |
| 18f80 | 28 61 72 67 63 2c 20 61 72 67 76 2c 20 65 6e 76 70 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 | (argc,.argv,.envp));............ |
| 18fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e | ...........................<span |
| 18fc0 | 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c | .class="t32_1">^</span>.<span.cl |
| 18fe0 | 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 | ass="t37_1">/home/andy/dev/zig/b |
| 19000 | 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 | uild/lib/zig/std/special/bootstr |
| 19020 | 61 70 2e 7a 69 67 3a 33 39 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d | ap.zig:39:5</span>:.<span.class= |
| 19040 | 22 74 32 5f 30 22 3e 30 78 32 31 64 30 30 30 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 | "t2_0">0x21d000.in.???.(test)</s |
| 19060 | 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c | pan>.....@noInlineCall(posixCall |
| 19080 | 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | MainAndExit);.....<span.class="t |
| 190a0 | 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 65 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 | 32_1">^</span>..Tests.failed..Us |
| 190c0 | 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f | e.the.following.command.to.repro |
| 190e0 | 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a 2e 2f 7a 69 67 2d 63 61 63 68 65 2f 74 65 | duce.the.failure:../zig-cache/te |
| 19100 | 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | st.</code></pre>...............< |
| 19120 | 68 32 20 69 64 3d 22 41 74 2d 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 22 3e 41 74 20 43 6f 6d 70 69 | h2.id="At-Compile-Time">At.Compi |
| 19140 | 6c 65 2d 54 69 6d 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 | le-Time</h2>........<p.class="fi |
| 19160 | 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | le">test.zig</p><pre><code.class |
| 19180 | 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 | ="zig">const.assert.=.@import(&q |
| 191a0 | 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 | uot;std").debug.assert;..te |
| 191c0 | 73 74 20 26 71 75 6f 74 3b 74 79 70 65 20 6f 66 20 75 6e 72 65 61 63 68 61 62 6c 65 26 71 75 6f | st."type.of.unreachable&quo |
| 191e0 | 74 3b 20 7b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 | t;.{.....comptime.{.........//.T |
| 19200 | 68 65 20 74 79 70 65 20 6f 66 20 75 6e 72 65 61 63 68 61 62 6c 65 20 69 73 20 6e 6f 72 65 74 75 | he.type.of.unreachable.is.noretu |
| 19220 | 72 6e 2e 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 48 6f 77 65 76 65 72 20 74 68 69 73 20 61 73 73 | rn...........//.However.this.ass |
| 19240 | 65 72 74 69 6f 6e 20 77 69 6c 6c 20 73 74 69 6c 6c 20 66 61 69 6c 20 62 65 63 61 75 73 65 0a 20 | ertion.will.still.fail.because.. |
| 19260 | 20 20 20 20 20 20 20 2f 2f 20 65 76 61 6c 75 61 74 69 6e 67 20 75 6e 72 65 61 63 68 61 62 6c 65 | .......//.evaluating.unreachable |
| 19280 | 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 | .at.compile-time.is.a.compile.er |
| 192a0 | 72 6f 72 2e 0a 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 75 6e 72 | ror...........assert(@typeOf(unr |
| 192c0 | 65 61 63 68 61 62 6c 65 29 20 3d 3d 20 6e 6f 72 65 74 75 72 6e 29 3b 0a 20 20 20 20 7d 0a 7d 3c | eachable).==.noreturn);.....}.}< |
| 192e0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 | /code></pre><pre><code.class="sh |
| 19300 | 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 | ell">$.zig.test.test.zig.<span.c |
| 19320 | 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 | lass="t0_1">/home/andy/dev/zig/d |
| 19340 | 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 31 36 3a 20 3c 2f 73 70 61 6e | ocgen_tmp/test.zig:10:16:.</span |
| 19360 | 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 | ><span.class="t31_1">error:</spa |
| 19380 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 6e 72 65 61 63 68 61 62 6c | n><span.class="t0_1">.unreachabl |
| 193a0 | 65 20 63 6f 64 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 40 74 79 | e.code</span>.........assert(@ty |
| 193c0 | 70 65 4f 66 28 75 6e 72 65 61 63 68 61 62 6c 65 29 20 3d 3d 20 6e 6f 72 65 74 75 72 6e 29 3b 0a | peOf(unreachable).==.noreturn);. |
| 193e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f | ...............<span.class="t32_ |
| 19400 | 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 | 1">^</span>.</code></pre>....... |
| 19420 | 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 | .<p>See.also:</p><ul>.<li><a.hre |
| 19440 | 66 3d 22 23 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a | f="#Zig-Test">Zig.Test</a></li>. |
| 19460 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 75 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 | <li><a.href="#Build-Mode">Build. |
| 19480 | 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 | Mode</a></li>.<li><a.href="#comp |
| 194a0 | 74 69 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 | time">comptime</a></li>.</ul>... |
| 194c0 | 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 6e 6f 72 65 74 | ...................<h1.id="noret |
| 194e0 | 75 72 6e 22 3e 6e 6f 72 65 74 75 72 6e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | urn">noreturn</h1>........<p>... |
| 19500 | 20 20 20 20 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 | ....<code>noreturn</code>.is.the |
| 19520 | 20 74 79 70 65 20 6f 66 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a | .type.of:.......</p>.......<ul>. |
| 19540 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 62 72 65 61 6b 3c 2f 63 6f 64 65 3e 3c 2f | ........<li><code>break</code></ |
| 19560 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 6f 6e 74 69 6e 75 65 3c 2f | li>.........<li><code>continue</ |
| 19580 | 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 72 65 74 | code></li>.........<li><code>ret |
| 195a0 | 75 72 6e 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 | urn</code></li>.........<li><cod |
| 195c0 | 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | e>unreachable</code></li>....... |
| 195e0 | 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 7d 3c 2f 63 6f 64 | ..<li><code>while.(true).{}</cod |
| 19600 | 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 57 68 65 | e></li>.......</ul>.......<p>Whe |
| 19620 | 6e 20 72 65 73 6f 6c 76 69 6e 67 20 74 79 70 65 73 20 74 6f 67 65 74 68 65 72 2c 20 73 75 63 68 | n.resolving.types.together,.such |
| 19640 | 20 61 73 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 63 6c 61 75 73 65 73 20 6f 72 20 3c | .as.<code>if</code>.clauses.or.< |
| 19660 | 63 6f 64 65 3e 73 77 69 74 63 68 3c 2f 63 6f 64 65 3e 20 70 72 6f 6e 67 73 2c 0a 20 20 20 20 20 | code>switch</code>.prongs,...... |
| 19680 | 20 74 68 65 20 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 20 74 79 70 65 20 | .the.<code>noreturn</code>.type. |
| 196a0 | 69 73 20 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 65 76 65 72 79 20 6f 74 68 65 72 20 74 | is.compatible.with.every.other.t |
| 196c0 | 79 70 65 2e 20 43 6f 6e 73 69 64 65 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | ype..Consider:.......</p>....... |
| 196e0 | 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 | <p.class="file">test.zig</p><pre |
| 19700 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 66 6f 6f 28 63 6f 6e 64 69 74 | ><code.class="zig">fn.foo(condit |
| 19720 | 69 6f 6e 3a 20 62 6f 6f 6c 2c 20 62 3a 20 75 33 32 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f | ion:.bool,.b:.u32).void.{.....co |
| 19740 | 6e 73 74 20 61 20 3d 20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 62 20 65 6c 73 65 20 72 65 | nst.a.=.if.(condition).b.else.re |
| 19760 | 74 75 72 6e 3b 0a 20 20 20 20 40 70 61 6e 69 63 28 26 71 75 6f 74 3b 64 6f 20 73 6f 6d 65 74 68 | turn;.....@panic("do.someth |
| 19780 | 69 6e 67 20 77 69 74 68 20 61 26 71 75 6f 74 3b 29 3b 0a 7d 0a 74 65 73 74 20 26 71 75 6f 74 3b | ing.with.a");.}.test." |
| 197a0 | 6e 6f 72 65 74 75 72 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 66 6f 6f 28 66 61 6c 73 65 2c 20 | noreturn".{.....foo(false,. |
| 197c0 | 31 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | 1);.}</code></pre><pre><code.cla |
| 197e0 | 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 | ss="shell">$.zig.test.test.zig.T |
| 19800 | 65 73 74 20 31 2f 31 20 6e 6f 72 65 74 75 72 6e 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 | est.1/1.noreturn...OK.</code></p |
| 19820 | 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 6e 6f 74 68 65 72 20 75 73 65 20 63 61 73 65 20 66 | re>........<p>Another.use.case.f |
| 19840 | 6f 72 20 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 | or.<code>noreturn</code>.is.the. |
| 19860 | 3c 63 6f 64 65 3e 65 78 69 74 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 3a 3c 2f 70 3e 0a | <code>exit</code>.function:</p>. |
| 19880 | 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f | ......<p.class="file">test.zig</ |
| 198a0 | 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 75 62 20 65 78 74 | p><pre><code.class="zig">pub.ext |
| 198c0 | 65 72 6e 20 26 71 75 6f 74 3b 6b 65 72 6e 65 6c 33 32 26 71 75 6f 74 3b 20 73 74 64 63 61 6c 6c | ern."kernel32".stdcall |
| 198e0 | 63 63 20 66 6e 20 45 78 69 74 50 72 6f 63 65 73 73 28 65 78 69 74 5f 63 6f 64 65 3a 20 63 5f 75 | cc.fn.ExitProcess(exit_code:.c_u |
| 19900 | 69 6e 74 29 20 6e 6f 72 65 74 75 72 6e 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 6f 26 71 | int).noreturn;..test."foo&q |
| 19920 | 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 76 61 6c 75 65 20 3d 20 62 61 72 28 29 20 63 | uot;.{.....const.value.=.bar().c |
| 19940 | 61 74 63 68 20 45 78 69 74 50 72 6f 63 65 73 73 28 31 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 | atch.ExitProcess(1);.....assert( |
| 19960 | 76 61 6c 75 65 20 3d 3d 20 31 32 33 34 29 3b 0a 7d 0a 0a 66 6e 20 62 61 72 28 29 20 65 72 72 6f | value.==.1234);.}..fn.bar().erro |
| 19980 | 72 21 75 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 31 32 33 34 3b 0a 7d 0a 0a 63 6f 6e 73 | r!u32.{.....return.1234;.}..cons |
| 199a0 | 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f | t.assert.=.@import("std&quo |
| 199c0 | 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 | t;).debug.assert;</code></pre><p |
| 199e0 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 | re><code.class="shell">$.zig.tes |
| 19a00 | 74 20 74 65 73 74 2e 7a 69 67 0a 43 72 65 61 74 65 64 20 2e 2f 7a 69 67 2d 63 61 63 68 65 2f 74 | t.test.zig.Created../zig-cache/t |
| 19a20 | 65 73 74 2e 65 78 65 20 62 75 74 20 73 6b 69 70 70 69 6e 67 20 65 78 65 63 75 74 69 6f 6e 20 62 | est.exe.but.skipping.execution.b |
| 19a40 | 65 63 61 75 73 65 20 69 74 20 69 73 20 6e 6f 6e 2d 6e 61 74 69 76 65 2e 0a 3c 2f 63 6f 64 65 3e | ecause.it.is.non-native..</code> |
| 19a60 | 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 46 75 6e | </pre>...............<h1.id="Fun |
| 19a80 | 63 74 69 6f 6e 73 22 3e 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 | ctions">Functions</h1>........<p |
| 19aa0 | 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 66 75 6e 63 74 69 6f 6e 73 2e 7a 69 67 3c 2f 70 3e 3c | .class="file">functions.zig</p>< |
| 19ac0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 | pre><code.class="zig">const.asse |
| 19ae0 | 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 | rt.=.@import("std").de |
| 19b00 | 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 2f 2f 20 46 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 65 | bug.assert;..//.Functions.are.de |
| 19b20 | 63 6c 61 72 65 64 20 6c 69 6b 65 20 74 68 69 73 0a 66 6e 20 61 64 64 28 61 3a 20 69 38 2c 20 62 | clared.like.this.fn.add(a:.i8,.b |
| 19b40 | 3a 20 69 38 29 20 69 38 20 7b 0a 20 20 20 20 69 66 20 28 61 20 3d 3d 20 30 29 20 7b 0a 20 20 20 | :.i8).i8.{.....if.(a.==.0).{.... |
| 19b60 | 20 20 20 20 20 2f 2f 20 59 6f 75 20 63 61 6e 20 73 74 69 6c 6c 20 72 65 74 75 72 6e 20 6d 61 6e | .....//.You.can.still.return.man |
| 19b80 | 75 61 6c 6c 79 20 69 66 20 6e 65 65 64 65 64 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 | ually.if.needed..........return. |
| 19ba0 | 62 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 61 20 2b 20 62 3b 0a 7d 0a 0a 2f | b;.....}......return.a.+.b;.}../ |
| 19bc0 | 2f 20 54 68 65 20 65 78 70 6f 72 74 20 73 70 65 63 69 66 69 65 72 20 6d 61 6b 65 73 20 61 20 66 | /.The.export.specifier.makes.a.f |
| 19be0 | 75 6e 63 74 69 6f 6e 20 65 78 74 65 72 6e 61 6c 6c 79 20 76 69 73 69 62 6c 65 20 69 6e 20 74 68 | unction.externally.visible.in.th |
| 19c00 | 65 20 67 65 6e 65 72 61 74 65 64 0a 2f 2f 20 6f 62 6a 65 63 74 20 66 69 6c 65 2c 20 61 6e 64 20 | e.generated.//.object.file,.and. |
| 19c20 | 6d 61 6b 65 73 20 69 74 20 75 73 65 20 74 68 65 20 43 20 41 42 49 2e 0a 65 78 70 6f 72 74 20 66 | makes.it.use.the.C.ABI..export.f |
| 19c40 | 6e 20 73 75 62 28 61 3a 20 69 38 2c 20 62 3a 20 69 38 29 20 69 38 20 7b 20 72 65 74 75 72 6e 20 | n.sub(a:.i8,.b:.i8).i8.{.return. |
| 19c60 | 61 20 2d 20 62 3b 20 7d 0a 0a 2f 2f 20 54 68 65 20 65 78 74 65 72 6e 20 73 70 65 63 69 66 69 65 | a.-.b;.}..//.The.extern.specifie |
| 19c80 | 72 20 69 73 20 75 73 65 64 20 74 6f 20 64 65 63 6c 61 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 | r.is.used.to.declare.a.function. |
| 19ca0 | 74 68 61 74 20 77 69 6c 6c 20 62 65 20 72 65 73 6f 6c 76 65 64 0a 2f 2f 20 61 74 20 6c 69 6e 6b | that.will.be.resolved.//.at.link |
| 19cc0 | 20 74 69 6d 65 2c 20 77 68 65 6e 20 6c 69 6e 6b 69 6e 67 20 73 74 61 74 69 63 61 6c 6c 79 2c 20 | .time,.when.linking.statically,. |
| 19ce0 | 6f 72 20 61 74 20 72 75 6e 74 69 6d 65 2c 20 77 68 65 6e 20 6c 69 6e 6b 69 6e 67 0a 2f 2f 20 64 | or.at.runtime,.when.linking.//.d |
| 19d00 | 79 6e 61 6d 69 63 61 6c 6c 79 2e 0a 2f 2f 20 54 68 65 20 73 74 64 63 61 6c 6c 63 63 20 73 70 65 | ynamically..//.The.stdcallcc.spe |
| 19d20 | 63 69 66 69 65 72 20 63 68 61 6e 67 65 73 20 74 68 65 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 | cifier.changes.the.calling.conve |
| 19d40 | 6e 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 65 78 74 65 72 6e 20 26 71 | ntion.of.the.function..extern.&q |
| 19d60 | 75 6f 74 3b 6b 65 72 6e 65 6c 33 32 26 71 75 6f 74 3b 20 73 74 64 63 61 6c 6c 63 63 20 66 6e 20 | uot;kernel32".stdcallcc.fn. |
| 19d80 | 45 78 69 74 50 72 6f 63 65 73 73 28 65 78 69 74 5f 63 6f 64 65 3a 20 75 33 32 29 20 6e 6f 72 65 | ExitProcess(exit_code:.u32).nore |
| 19da0 | 74 75 72 6e 3b 0a 65 78 74 65 72 6e 20 26 71 75 6f 74 3b 63 26 71 75 6f 74 3b 20 66 6e 20 61 74 | turn;.extern."c".fn.at |
| 19dc0 | 61 6e 32 28 61 3a 20 66 36 34 2c 20 62 3a 20 66 36 34 29 20 66 36 34 3b 0a 0a 2f 2f 20 54 68 65 | an2(a:.f64,.b:.f64).f64;..//.The |
| 19de0 | 20 40 73 65 74 43 6f 6c 64 20 62 75 69 6c 74 69 6e 20 74 65 6c 6c 73 20 74 68 65 20 6f 70 74 69 | .@setCold.builtin.tells.the.opti |
| 19e00 | 6d 69 7a 65 72 20 74 68 61 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 72 61 72 65 6c 79 20 | mizer.that.a.function.is.rarely. |
| 19e20 | 63 61 6c 6c 65 64 2e 0a 66 6e 20 61 62 6f 72 74 28 29 20 6e 6f 72 65 74 75 72 6e 20 7b 0a 20 20 | called..fn.abort().noreturn.{... |
| 19e40 | 20 20 40 73 65 74 43 6f 6c 64 28 74 72 75 65 29 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 74 72 75 | ..@setCold(true);.....while.(tru |
| 19e60 | 65 29 20 7b 7d 0a 7d 0a 0a 2f 2f 20 6e 61 6b 65 64 63 63 20 6d 61 6b 65 73 20 61 20 66 75 6e 63 | e).{}.}..//.nakedcc.makes.a.func |
| 19e80 | 74 69 6f 6e 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6c 6f | tion.not.have.any.function.prolo |
| 19ea0 | 67 75 65 20 6f 72 20 65 70 69 6c 6f 67 75 65 2e 0a 2f 2f 20 54 68 69 73 20 63 61 6e 20 62 65 20 | gue.or.epilogue..//.This.can.be. |
| 19ec0 | 75 73 65 66 75 6c 20 77 68 65 6e 20 69 6e 74 65 67 72 61 74 69 6e 67 20 77 69 74 68 20 61 73 73 | useful.when.integrating.with.ass |
| 19ee0 | 65 6d 62 6c 79 2e 0a 6e 61 6b 65 64 63 63 20 66 6e 20 5f 73 74 61 72 74 28 29 20 6e 6f 72 65 74 | embly..nakedcc.fn._start().noret |
| 19f00 | 75 72 6e 20 7b 0a 20 20 20 20 61 62 6f 72 74 28 29 3b 0a 7d 0a 0a 2f 2f 20 54 68 65 20 70 75 62 | urn.{.....abort();.}..//.The.pub |
| 19f20 | 20 73 70 65 63 69 66 69 65 72 20 61 6c 6c 6f 77 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 | .specifier.allows.the.function.t |
| 19f40 | 6f 20 62 65 20 76 69 73 69 62 6c 65 20 77 68 65 6e 20 69 6d 70 6f 72 74 69 6e 67 2e 0a 2f 2f 20 | o.be.visible.when.importing..//. |
| 19f60 | 41 6e 6f 74 68 65 72 20 66 69 6c 65 20 63 61 6e 20 75 73 65 20 40 69 6d 70 6f 72 74 20 61 6e 64 | Another.file.can.use.@import.and |
| 19f80 | 20 63 61 6c 6c 20 73 75 62 32 0a 70 75 62 20 66 6e 20 73 75 62 32 28 61 3a 20 69 38 2c 20 62 3a | .call.sub2.pub.fn.sub2(a:.i8,.b: |
| 19fa0 | 20 69 38 29 20 69 38 20 7b 20 72 65 74 75 72 6e 20 61 20 2d 20 62 3b 20 7d 0a 0a 2f 2f 20 46 75 | .i8).i8.{.return.a.-.b;.}..//.Fu |
| 19fc0 | 6e 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 76 61 6c 75 65 73 20 61 6e | nctions.can.be.used.as.values.an |
| 19fe0 | 64 20 61 72 65 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 70 6f 69 6e 74 65 72 73 2e 0a 63 6f | d.are.equivalent.to.pointers..co |
| 1a000 | 6e 73 74 20 63 61 6c 6c 32 5f 6f 70 20 3d 20 66 6e 20 28 61 3a 20 69 38 2c 20 62 3a 20 69 38 29 | nst.call2_op.=.fn.(a:.i8,.b:.i8) |
| 1a020 | 20 69 38 3b 0a 66 6e 20 64 6f 5f 6f 70 28 66 6e 5f 63 61 6c 6c 3a 20 63 61 6c 6c 32 5f 6f 70 2c | .i8;.fn.do_op(fn_call:.call2_op, |
| 1a040 | 20 6f 70 31 3a 20 69 38 2c 20 6f 70 32 3a 20 69 38 29 20 69 38 20 7b 0a 20 20 20 20 72 65 74 75 | .op1:.i8,.op2:.i8).i8.{.....retu |
| 1a060 | 72 6e 20 66 6e 5f 63 61 6c 6c 28 6f 70 31 2c 20 6f 70 32 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 | rn.fn_call(op1,.op2);.}..test.&q |
| 1a080 | 75 6f 74 3b 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 | uot;function".{.....assert( |
| 1a0a0 | 64 6f 5f 6f 70 28 61 64 64 2c 20 35 2c 20 36 29 20 3d 3d 20 31 31 29 3b 0a 20 20 20 20 61 73 73 | do_op(add,.5,.6).==.11);.....ass |
| 1a0c0 | 65 72 74 28 64 6f 5f 6f 70 28 73 75 62 32 2c 20 35 2c 20 36 29 20 3d 3d 20 2d 31 29 3b 0a 7d 3c | ert(do_op(sub2,.5,.6).==.-1);.}< |
| 1a0e0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 | /code></pre><pre><code.class="sh |
| 1a100 | 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 73 2e 7a 69 67 0a 54 65 | ell">$.zig.test.functions.zig.Te |
| 1a120 | 73 74 20 31 2f 31 20 66 75 6e 63 74 69 6f 6e 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | st.1/1.function...OK.</code></pr |
| 1a140 | 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 46 75 6e 63 74 69 6f 6e 20 76 61 6c 75 65 73 20 61 72 65 | e>........<p>Function.values.are |
| 1a160 | 20 6c 69 6b 65 20 70 6f 69 6e 74 65 72 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 | .like.pointers:</p>.......<p.cla |
| 1a180 | 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 | ss="file">test.zig</p><pre><code |
| 1a1a0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 | .class="zig">const.assert.=.@imp |
| 1a1c0 | 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 | ort("std").debug.asser |
| 1a1e0 | 74 3b 0a 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f | t;..comptime.{.....assert(@typeO |
| 1a200 | 66 28 66 6f 6f 29 20 3d 3d 20 66 6e 28 29 76 6f 69 64 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 | f(foo).==.fn()void);.....assert( |
| 1a220 | 40 73 69 7a 65 4f 66 28 66 6e 28 29 76 6f 69 64 29 20 3d 3d 20 40 73 69 7a 65 4f 66 28 3f 66 6e | @sizeOf(fn()void).==.@sizeOf(?fn |
| 1a240 | 28 29 76 6f 69 64 29 29 3b 0a 7d 0a 0a 66 6e 20 66 6f 6f 28 29 20 76 6f 69 64 20 7b 20 7d 3c 2f | ()void));.}..fn.foo().void.{.}</ |
| 1a260 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 | code></pre><pre><code.class="she |
| 1a280 | 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 6f 62 6a 20 74 65 73 74 2e 7a 69 67 3c 2f 63 6f | ll">$.zig.build-obj.test.zig</co |
| 1a2a0 | 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 50 61 73 73 2d 62 79 | de></pre>........<h2.id="Pass-by |
| 1a2c0 | 2d 76 61 6c 75 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 50 61 73 73 2d 62 79 2d 76 61 6c 75 65 | -value-Parameters">Pass-by-value |
| 1a2e0 | 20 50 61 72 61 6d 65 74 65 72 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | .Parameters</h2>........<p>..... |
| 1a300 | 20 20 49 6e 20 5a 69 67 2c 20 73 74 72 75 63 74 73 2c 20 75 6e 69 6f 6e 73 2c 20 61 6e 64 20 65 | ..In.Zig,.structs,.unions,.and.e |
| 1a320 | 6e 75 6d 73 20 77 69 74 68 20 70 61 79 6c 6f 61 64 73 20 63 61 6e 6e 6f 74 20 62 65 20 70 61 73 | nums.with.payloads.cannot.be.pas |
| 1a340 | 73 65 64 20 62 79 20 76 61 6c 75 65 0a 20 20 20 20 20 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e | sed.by.value.......to.a.function |
| 1a360 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c | ........</p>.......<p.class="fil |
| 1a380 | 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | e">test.zig</p><pre><code.class= |
| 1a3a0 | 22 7a 69 67 22 3e 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 | "zig">const.Foo.=.struct.{.....x |
| 1a3c0 | 3a 20 69 33 32 2c 0a 7d 3b 0a 0a 66 6e 20 62 61 72 28 66 6f 6f 3a 20 46 6f 6f 29 20 76 6f 69 64 | :.i32,.};..fn.bar(foo:.Foo).void |
| 1a3e0 | 20 7b 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 70 61 73 73 20 61 67 67 72 65 67 61 74 65 20 74 | .{}..test."pass.aggregate.t |
| 1a400 | 79 70 65 20 62 79 20 76 61 6c 75 65 20 74 6f 20 66 75 6e 63 74 69 6f 6e 26 71 75 6f 74 3b 20 7b | ype.by.value.to.function".{ |
| 1a420 | 0a 20 20 20 20 62 61 72 28 46 6f 6f 20 7b 2e 78 20 3d 20 31 32 2c 7d 29 3b 0a 7d 3c 2f 63 6f 64 | .....bar(Foo.{.x.=.12,});.}</cod |
| 1a440 | 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 | e></pre><pre><code.class="shell" |
| 1a460 | 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 | >$.zig.test.test.zig.<span.class |
| 1a480 | 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 | ="t0_1">/home/andy/dev/zig/docge |
| 1a4a0 | 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 | n_tmp/test.zig:5:13:.</span><spa |
| 1a4c0 | 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 | n.class="t31_1">error:</span><sp |
| 1a4e0 | 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 74 79 70 65 20 27 46 6f 6f 27 20 69 73 20 6e | an.class="t0_1">.type.'Foo'.is.n |
| 1a500 | 6f 74 20 63 6f 70 79 61 62 6c 65 3b 20 63 61 6e 6e 6f 74 20 70 61 73 73 20 62 79 20 76 61 6c 75 | ot.copyable;.cannot.pass.by.valu |
| 1a520 | 65 3c 2f 73 70 61 6e 3e 0a 66 6e 20 62 61 72 28 66 6f 6f 3a 20 46 6f 6f 29 20 76 6f 69 64 20 7b | e</span>.fn.bar(foo:.Foo).void.{ |
| 1a540 | 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 | }.............<span.class="t32_1 |
| 1a560 | 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 | ">^</span>.</code></pre>........ |
| 1a580 | 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 2c 20 6f 6e 65 20 6d 75 73 74 20 75 73 65 20 | <p>.......Instead,.one.must.use. |
| 1a5a0 | 3c 63 6f 64 65 3e 26 61 6d 70 3b 63 6f 6e 73 74 3c 2f 63 6f 64 65 3e 2e 20 5a 69 67 20 61 6c 6c | <code>&const</code>..Zig.all |
| 1a5c0 | 6f 77 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 69 6e 67 20 73 6f 6d 65 74 68 69 6e 67 | ows.implicitly.casting.something |
| 1a5e0 | 0a 20 20 20 20 20 20 74 6f 20 61 20 63 6f 6e 73 74 20 70 6f 69 6e 74 65 72 20 74 6f 20 69 74 3a | .......to.a.const.pointer.to.it: |
| 1a600 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 | .......</p>.......<p.class="file |
| 1a620 | 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ">test.zig</p><pre><code.class=" |
| 1a640 | 7a 69 67 22 3e 63 6f 6e 73 74 20 46 6f 6f 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 78 3a | zig">const.Foo.=.struct.{.....x: |
| 1a660 | 20 69 33 32 2c 0a 7d 3b 0a 0a 66 6e 20 62 61 72 28 66 6f 6f 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 | .i32,.};..fn.bar(foo:.&const |
| 1a680 | 20 46 6f 6f 29 20 76 6f 69 64 20 7b 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 | .Foo).void.{}..test."implic |
| 1a6a0 | 69 74 6c 79 20 63 61 73 74 20 74 6f 20 63 6f 6e 73 74 20 70 6f 69 6e 74 65 72 26 71 75 6f 74 3b | itly.cast.to.const.pointer" |
| 1a6c0 | 20 7b 0a 20 20 20 20 62 61 72 28 46 6f 6f 20 7b 2e 78 20 3d 20 31 32 2c 7d 29 3b 0a 7d 3c 2f 63 | .{.....bar(Foo.{.x.=.12,});.}</c |
| 1a6e0 | 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c | ode></pre><pre><code.class="shel |
| 1a700 | 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 | l">$.zig.test.test.zig.Test.1/1. |
| 1a720 | 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 74 6f 20 63 6f 6e 73 74 20 70 6f 69 6e 74 65 72 | implicitly.cast.to.const.pointer |
| 1a740 | 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | ...OK.</code></pre>........<p>.. |
| 1a760 | 20 20 20 20 20 48 6f 77 65 76 65 72 2c 0a 20 20 20 20 20 20 74 68 65 20 43 20 41 42 49 20 64 6f | .....However,.......the.C.ABI.do |
| 1a780 | 65 73 20 61 6c 6c 6f 77 20 70 61 73 73 69 6e 67 20 73 74 72 75 63 74 73 20 61 6e 64 20 75 6e 69 | es.allow.passing.structs.and.uni |
| 1a7a0 | 6f 6e 73 20 62 79 20 76 61 6c 75 65 2e 20 53 6f 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 63 68 | ons.by.value..So.functions.which |
| 1a7c0 | 0a 20 20 20 20 20 20 75 73 65 20 74 68 65 20 43 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 | .......use.the.C.calling.convent |
| 1a7e0 | 69 6f 6e 20 6d 61 79 20 70 61 73 73 20 73 74 72 75 63 74 73 20 61 6e 64 20 75 6e 69 6f 6e 73 20 | ion.may.pass.structs.and.unions. |
| 1a800 | 62 79 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 | by.value........</p>............ |
| 1a820 | 20 20 3c 68 32 20 69 64 3d 22 46 75 6e 63 74 69 6f 6e 2d 52 65 66 6c 65 63 74 69 6f 6e 22 3e 46 | ..<h2.id="Function-Reflection">F |
| 1a840 | 75 6e 63 74 69 6f 6e 20 52 65 66 6c 65 63 74 69 6f 6e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | unction.Reflection</h2>........< |
| 1a860 | 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e | p.class="file">test.zig</p><pre> |
| 1a880 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d | <code.class="zig">const.assert.= |
| 1a8a0 | 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e | .@import("std").debug. |
| 1a8c0 | 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 6e 20 72 65 66 6c 65 63 74 69 6f | assert;..test."fn.reflectio |
| 1a8e0 | 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 61 73 73 | n".{.....assert(@typeOf(ass |
| 1a900 | 65 72 74 29 2e 52 65 74 75 72 6e 54 79 70 65 20 3d 3d 20 76 6f 69 64 29 3b 0a 20 20 20 20 61 73 | ert).ReturnType.==.void);.....as |
| 1a920 | 73 65 72 74 28 40 74 79 70 65 4f 66 28 61 73 73 65 72 74 29 2e 69 73 5f 76 61 72 5f 61 72 67 73 | sert(@typeOf(assert).is_var_args |
| 1a940 | 20 3d 3d 20 66 61 6c 73 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c | .==.false);.}</code></pre><pre>< |
| 1a960 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 | code.class="shell">$.zig.test.te |
| 1a980 | 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 66 6e 20 72 65 66 6c 65 63 74 69 6f 6e 2e 2e 2e | st.zig.Test.1/1.fn.reflection... |
| 1a9a0 | 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a | OK.</code></pre>................ |
| 1a9c0 | 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 45 72 72 6f 72 73 22 3e 45 72 72 6f 72 73 3c 2f 68 31 | ......<h1.id="Errors">Errors</h1 |
| 1a9e0 | 3e 0a 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 72 72 6f 72 2d 53 65 74 2d 54 79 70 65 22 | >........<h2.id="Error-Set-Type" |
| 1aa00 | 3e 45 72 72 6f 72 20 53 65 74 20 54 79 70 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a | >Error.Set.Type</h2>........<p>. |
| 1aa20 | 20 20 20 20 20 20 41 6e 20 65 72 72 6f 72 20 73 65 74 20 69 73 20 6c 69 6b 65 20 61 6e 20 3c 61 | ......An.error.set.is.like.an.<a |
| 1aa40 | 20 68 72 65 66 3d 22 23 65 6e 75 6d 22 3e 65 6e 75 6d 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 48 6f | .href="#enum">enum</a>........Ho |
| 1aa60 | 77 65 76 65 72 2c 20 65 61 63 68 20 65 72 72 6f 72 20 6e 61 6d 65 20 61 63 72 6f 73 73 20 74 68 | wever,.each.error.name.across.th |
| 1aa80 | 65 20 65 6e 74 69 72 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 67 65 74 73 20 61 73 73 69 67 6e | e.entire.compilation.gets.assign |
| 1aaa0 | 65 64 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 0a 20 20 20 20 20 20 67 72 65 | ed.an.unsigned.integer.......gre |
| 1aac0 | 61 74 65 72 20 74 68 61 6e 20 30 2e 20 59 6f 75 20 61 72 65 20 61 6c 6c 6f 77 65 64 20 74 6f 20 | ater.than.0..You.are.allowed.to. |
| 1aae0 | 64 65 63 6c 61 72 65 20 74 68 65 20 73 61 6d 65 20 65 72 72 6f 72 20 6e 61 6d 65 20 6d 6f 72 65 | declare.the.same.error.name.more |
| 1ab00 | 20 74 68 61 6e 20 6f 6e 63 65 2c 20 61 6e 64 20 69 66 20 79 6f 75 20 64 6f 2c 20 69 74 0a 20 20 | .than.once,.and.if.you.do,.it... |
| 1ab20 | 20 20 20 20 67 65 74 73 20 61 73 73 69 67 6e 65 64 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65 67 | ....gets.assigned.the.same.integ |
| 1ab40 | 65 72 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | er.value........</p>.......<p>.. |
| 1ab60 | 20 20 20 20 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 75 6e 69 71 75 65 20 65 72 72 6f 72 20 | .....The.number.of.unique.error. |
| 1ab80 | 76 61 6c 75 65 73 20 61 63 72 6f 73 73 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6d 70 69 6c 61 | values.across.the.entire.compila |
| 1aba0 | 74 69 6f 6e 20 73 68 6f 75 6c 64 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 73 69 7a 65 20 6f | tion.should.determine.the.size.o |
| 1abc0 | 66 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 20 74 79 70 65 2e 0a 20 20 20 20 20 20 48 6f 77 65 | f.the.error.set.type........Howe |
| 1abe0 | 76 65 72 20 72 69 67 68 74 20 6e 6f 77 20 69 74 20 69 73 20 68 61 72 64 20 63 6f 64 65 64 20 74 | ver.right.now.it.is.hard.coded.t |
| 1ac00 | 6f 20 62 65 20 61 20 3c 63 6f 64 65 3e 75 31 36 3c 2f 63 6f 64 65 3e 2e 20 53 65 65 20 3c 61 20 | o.be.a.<code>u16</code>..See.<a. |
| 1ac20 | 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 2d 6c 61 6e | href="https://github.com/zig-lan |
| 1ac40 | 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 37 38 36 22 3e 23 37 36 38 3c 2f 61 3e 2e 0a 20 20 20 20 | g/zig/issues/786">#768</a>...... |
| 1ac60 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 69 | ..</p>.......<p>.......You.can.i |
| 1ac80 | 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 61 6e 20 65 72 72 6f 72 20 66 72 6f 6d 20 61 20 73 | mplicitly.cast.an.error.from.a.s |
| 1aca0 | 75 62 73 65 74 20 74 6f 20 69 74 73 20 73 75 70 65 72 73 65 74 3a 0a 20 20 20 20 20 20 3c 2f 70 | ubset.to.its.superset:.......</p |
| 1acc0 | 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 | >.......<p.class="file">test.zig |
| 1ace0 | 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 | </p><pre><code.class="zig">const |
| 1ad00 | 20 73 74 64 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 3b | .std.=.@import("std"); |
| 1ad20 | 0a 0a 63 6f 6e 73 74 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 20 7b 0a | ..const.FileOpenError.=.error.{. |
| 1ad40 | 20 20 20 20 41 63 63 65 73 73 44 65 6e 69 65 64 2c 0a 20 20 20 20 4f 75 74 4f 66 4d 65 6d 6f 72 | ....AccessDenied,.....OutOfMemor |
| 1ad60 | 79 2c 0a 20 20 20 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 2c 0a 7d 3b 0a 0a 63 6f 6e 73 74 20 41 | y,.....FileNotFound,.};..const.A |
| 1ad80 | 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 20 7b 0a 20 20 20 20 4f 75 74 | llocationError.=.error.{.....Out |
| 1ada0 | 4f 66 4d 65 6d 6f 72 79 2c 0a 7d 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 | OfMemory,.};..test."implici |
| 1adc0 | 74 20 63 61 73 74 20 73 75 62 73 65 74 20 74 6f 20 73 75 70 65 72 73 65 74 26 71 75 6f 74 3b 20 | t.cast.subset.to.superset". |
| 1ade0 | 7b 0a 20 20 20 20 63 6f 6e 73 74 20 65 72 72 20 3d 20 66 6f 6f 28 41 6c 6c 6f 63 61 74 69 6f 6e | {.....const.err.=.foo(Allocation |
| 1ae00 | 45 72 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 29 3b 0a 20 20 20 20 73 74 64 2e 64 65 62 75 | Error.OutOfMemory);.....std.debu |
| 1ae20 | 67 2e 61 73 73 65 72 74 28 65 72 72 20 3d 3d 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 2e 4f 75 | g.assert(err.==.FileOpenError.Ou |
| 1ae40 | 74 4f 66 4d 65 6d 6f 72 79 29 3b 0a 7d 0a 0a 66 6e 20 66 6f 6f 28 65 72 72 3a 20 41 6c 6c 6f 63 | tOfMemory);.}..fn.foo(err:.Alloc |
| 1ae60 | 61 74 69 6f 6e 45 72 72 6f 72 29 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 20 7b 0a 20 20 20 20 | ationError).FileOpenError.{..... |
| 1ae80 | 72 65 74 75 72 6e 20 65 72 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c | return.err;.}</code></pre><pre>< |
| 1aea0 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 | code.class="shell">$.zig.test.te |
| 1aec0 | 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 69 6d 70 6c 69 63 69 74 20 63 61 73 74 20 73 75 | st.zig.Test.1/1.implicit.cast.su |
| 1aee0 | 62 73 65 74 20 74 6f 20 73 75 70 65 72 73 65 74 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 | bset.to.superset...OK.</code></p |
| 1af00 | 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 75 74 20 79 6f 75 20 63 61 6e | re>........<p>.......But.you.can |
| 1af20 | 6e 6f 74 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 61 6e 20 65 72 72 6f 72 20 66 72 6f | not.implicitly.cast.an.error.fro |
| 1af40 | 6d 20 61 20 73 75 70 65 72 73 65 74 20 74 6f 20 61 20 73 75 62 73 65 74 3a 0a 20 20 20 20 20 20 | m.a.superset.to.a.subset:....... |
| 1af60 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e | </p>.......<p.class="file">test. |
| 1af80 | 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f | zig</p><pre><code.class="zig">co |
| 1afa0 | 6e 73 74 20 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 20 7b 0a 20 20 20 20 | nst.FileOpenError.=.error.{..... |
| 1afc0 | 41 63 63 65 73 73 44 65 6e 69 65 64 2c 0a 20 20 20 20 4f 75 74 4f 66 4d 65 6d 6f 72 79 2c 0a 20 | AccessDenied,.....OutOfMemory,.. |
| 1afe0 | 20 20 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 2c 0a 7d 3b 0a 0a 63 6f 6e 73 74 20 41 6c 6c 6f 63 | ...FileNotFound,.};..const.Alloc |
| 1b000 | 61 74 69 6f 6e 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 20 7b 0a 20 20 20 20 4f 75 74 4f 66 4d 65 | ationError.=.error.{.....OutOfMe |
| 1b020 | 6d 6f 72 79 2c 0a 7d 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 6d 70 6c 69 63 69 74 20 63 61 | mory,.};..test."implicit.ca |
| 1b040 | 73 74 20 73 75 70 65 72 73 65 74 20 74 6f 20 73 75 62 73 65 74 26 71 75 6f 74 3b 20 7b 0a 20 20 | st.superset.to.subset".{... |
| 1b060 | 20 20 66 6f 6f 28 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 29 | ..foo(FileOpenError.OutOfMemory) |
| 1b080 | 20 63 61 74 63 68 20 7b 7d 3b 0a 7d 0a 0a 66 6e 20 66 6f 6f 28 65 72 72 3a 20 46 69 6c 65 4f 70 | .catch.{};.}..fn.foo(err:.FileOp |
| 1b0a0 | 65 6e 45 72 72 6f 72 29 20 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 20 7b 0a 20 20 20 20 72 | enError).AllocationError.{.....r |
| 1b0c0 | 65 74 75 72 6e 20 65 72 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 | eturn.err;.}</code></pre><pre><c |
| 1b0e0 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 | ode.class="shell">$.zig.test.tes |
| 1b100 | 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 | t.zig.<span.class="t0_1">/home/a |
| 1b120 | 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a | ndy/dev/zig/docgen_tmp/test.zig: |
| 1b140 | 31 36 3a 31 32 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 | 16:12:.</span><span.class="t31_1 |
| 1b160 | 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | ">error:</span><span.class="t0_1 |
| 1b180 | 22 3e 20 65 78 70 65 63 74 65 64 20 27 41 6c 6c 6f 63 61 74 69 6f 6e 45 72 72 6f 72 27 2c 20 66 | ">.expected.'AllocationError',.f |
| 1b1a0 | 6f 75 6e 64 20 27 46 69 6c 65 4f 70 65 6e 45 72 72 6f 72 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 | ound.'FileOpenError'</span>..... |
| 1b1c0 | 72 65 74 75 72 6e 20 65 72 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 | return.err;............<span.cla |
| 1b1e0 | 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d | ss="t32_1">^</span>.<span.class= |
| 1b200 | 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e | "t0_1">/home/andy/dev/zig/docgen |
| 1b220 | 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 | _tmp/test.zig:2:5:.</span><span. |
| 1b240 | 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 | class="t36_1">note:</span><span. |
| 1b260 | 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 27 65 72 72 6f 72 2e 41 63 63 65 73 73 44 65 6e 69 65 | class="t0_1">.'error.AccessDenie |
| 1b280 | 64 27 20 6e 6f 74 20 61 20 6d 65 6d 62 65 72 20 6f 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 65 | d'.not.a.member.of.destination.e |
| 1b2a0 | 72 72 6f 72 20 73 65 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 41 63 63 65 73 73 44 65 6e 69 65 64 | rror.set</span>.....AccessDenied |
| 1b2c0 | 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 | ,.....<span.class="t32_1">^</spa |
| 1b2e0 | 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 | n>.<span.class="t0_1">/home/andy |
| 1b300 | 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 35 | /dev/zig/docgen_tmp/test.zig:4:5 |
| 1b320 | 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 | :.</span><span.class="t36_1">not |
| 1b340 | 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 27 65 72 | e:</span><span.class="t0_1">.'er |
| 1b360 | 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 27 20 6e 6f 74 20 61 20 6d 65 6d 62 65 72 20 6f | ror.FileNotFound'.not.a.member.o |
| 1b380 | 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 65 72 72 6f 72 20 73 65 74 3c 2f 73 70 61 6e 3e 0a 20 | f.destination.error.set</span>.. |
| 1b3a0 | 20 20 20 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 2c 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 | ...FileNotFound,.....<span.class |
| 1b3c0 | 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | ="t32_1">^</span>.</code></pre>. |
| 1b3e0 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 61 20 73 68 6f 72 | .......<p>.......There.is.a.shor |
| 1b400 | 74 63 75 74 20 66 6f 72 20 64 65 63 6c 61 72 69 6e 67 20 61 6e 20 65 72 72 6f 72 20 73 65 74 20 | tcut.for.declaring.an.error.set. |
| 1b420 | 77 69 74 68 20 6f 6e 6c 79 20 31 20 76 61 6c 75 65 2c 20 61 6e 64 20 74 68 65 6e 20 67 65 74 74 | with.only.1.value,.and.then.gett |
| 1b440 | 69 6e 67 20 74 68 61 74 20 76 61 6c 75 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | ing.that.value:.......</p>...... |
| 1b460 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 65 72 | .<pre><code.class="zig">const.er |
| 1b480 | 72 20 3d 20 65 72 72 6f 72 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3b 3c 2f 63 6f 64 65 3e 3c 2f | r.=.error.FileNotFound;</code></ |
| 1b4a0 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 | pre>.......<p>This.is.equivalent |
| 1b4c0 | 20 74 6f 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | .to:</p>.......<pre><code.class= |
| 1b4e0 | 22 7a 69 67 22 3e 63 6f 6e 73 74 20 65 72 72 20 3d 20 28 65 72 72 6f 72 20 7b 46 69 6c 65 4e 6f | "zig">const.err.=.(error.{FileNo |
| 1b500 | 74 46 6f 75 6e 64 7d 29 2e 46 69 6c 65 4e 6f 74 46 6f 75 6e 64 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 | tFound}).FileNotFound;</code></p |
| 1b520 | 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 62 65 63 6f 6d 65 73 | re>.......<p>.......This.becomes |
| 1b540 | 20 75 73 65 66 75 6c 20 77 68 65 6e 20 75 73 69 6e 67 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 66 | .useful.when.using.<a.href="#Inf |
| 1b560 | 65 72 72 65 64 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 49 6e 66 65 72 72 65 64 20 45 72 72 6f 72 | erred-Error-Sets">Inferred.Error |
| 1b580 | 20 53 65 74 73 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 | .Sets</a>........</p>.......<h3. |
| 1b5a0 | 69 64 3d 22 54 68 65 2d 47 6c 6f 62 61 6c 2d 45 72 72 6f 72 2d 53 65 74 22 3e 54 68 65 20 47 6c | id="The-Global-Error-Set">The.Gl |
| 1b5c0 | 6f 62 61 6c 20 45 72 72 6f 72 20 53 65 74 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 3c 63 | obal.Error.Set</h3>........<p><c |
| 1b5e0 | 6f 64 65 3e 65 72 72 6f 72 3c 2f 63 6f 64 65 3e 20 72 65 66 65 72 73 20 74 6f 20 74 68 65 20 67 | ode>error</code>.refers.to.the.g |
| 1b600 | 6c 6f 62 61 6c 20 65 72 72 6f 72 20 73 65 74 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 | lobal.error.set........This.is.t |
| 1b620 | 68 65 20 65 72 72 6f 72 20 73 65 74 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20 65 | he.error.set.that.contains.all.e |
| 1b640 | 72 72 6f 72 73 20 69 6e 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 | rrors.in.the.entire.compilation. |
| 1b660 | 75 6e 69 74 2e 0a 20 20 20 20 20 20 49 74 20 69 73 20 61 20 73 75 70 65 72 73 65 74 20 6f 66 20 | unit........It.is.a.superset.of. |
| 1b680 | 61 6c 6c 20 6f 74 68 65 72 20 65 72 72 6f 72 20 73 65 74 73 20 61 6e 64 20 61 20 73 75 62 73 65 | all.other.error.sets.and.a.subse |
| 1b6a0 | 74 20 6f 66 20 6e 6f 6e 65 20 6f 66 20 74 68 65 6d 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | t.of.none.of.them........</p>... |
| 1b6c0 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 69 6d 70 6c 69 63 69 74 6c 79 | ....<p>.......You.can.implicitly |
| 1b6e0 | 20 63 61 73 74 20 61 6e 79 20 65 72 72 6f 72 20 73 65 74 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 | .cast.any.error.set.to.the.globa |
| 1b700 | 6c 20 6f 6e 65 2c 20 61 6e 64 20 79 6f 75 20 63 61 6e 20 65 78 70 6c 69 63 69 74 6c 79 0a 20 20 | l.one,.and.you.can.explicitly... |
| 1b720 | 20 20 20 20 63 61 73 74 20 61 6e 20 65 72 72 6f 72 20 6f 66 20 67 6c 6f 62 61 6c 20 65 72 72 6f | ....cast.an.error.of.global.erro |
| 1b740 | 72 20 73 65 74 20 74 6f 20 61 20 6e 6f 6e 2d 67 6c 6f 62 61 6c 20 6f 6e 65 2e 20 54 68 69 73 20 | r.set.to.a.non-global.one..This. |
| 1b760 | 69 6e 73 65 72 74 73 20 61 20 6c 61 6e 67 75 61 67 65 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 61 | inserts.a.language-level.......a |
| 1b780 | 73 73 65 72 74 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20 65 72 72 6f 72 20 76 61 6c | ssert.to.make.sure.the.error.val |
| 1b7a0 | 75 65 20 69 73 20 69 6e 20 66 61 63 74 20 69 6e 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e | ue.is.in.fact.in.the.destination |
| 1b7c0 | 20 65 72 72 6f 72 20 73 65 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | .error.set........</p>.......<p> |
| 1b7e0 | 0a 20 20 20 20 20 20 54 68 65 20 67 6c 6f 62 61 6c 20 65 72 72 6f 72 20 73 65 74 20 73 68 6f 75 | .......The.global.error.set.shou |
| 1b800 | 6c 64 20 67 65 6e 65 72 61 6c 6c 79 20 62 65 20 61 76 6f 69 64 65 64 20 77 68 65 6e 20 70 6f 73 | ld.generally.be.avoided.when.pos |
| 1b820 | 73 69 62 6c 65 2c 20 62 65 63 61 75 73 65 20 69 74 20 70 72 65 76 65 6e 74 73 0a 20 20 20 20 20 | sible,.because.it.prevents...... |
| 1b840 | 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 66 72 6f 6d 20 6b 6e 6f 77 69 6e 67 20 77 68 61 74 20 | .the.compiler.from.knowing.what. |
| 1b860 | 65 72 72 6f 72 73 20 61 72 65 20 70 6f 73 73 69 62 6c 65 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 | errors.are.possible.at.compile-t |
| 1b880 | 69 6d 65 2e 20 4b 6e 6f 77 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 | ime..Knowing.......the.error.set |
| 1b8a0 | 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 69 73 20 62 65 74 74 65 72 20 66 6f 72 20 67 | .at.compile-time.is.better.for.g |
| 1b8c0 | 65 6e 65 72 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 74 20 61 6e 64 20 66 6f 72 0a | enerated.documentationt.and.for. |
| 1b8e0 | 20 20 20 20 20 20 68 65 6c 70 66 75 6c 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 73 75 63 | ......helpful.error.messages.suc |
| 1b900 | 68 20 61 73 20 66 6f 72 67 65 74 74 69 6e 67 20 61 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 | h.as.forgetting.a.possible.error |
| 1b920 | 20 76 61 6c 75 65 20 69 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 3e 73 77 | .value.in.a.<a.href="#switch">sw |
| 1b940 | 69 74 63 68 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 | itch</a>........</p>............ |
| 1b960 | 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 72 72 6f 72 2d 55 6e 69 6f 6e 2d 54 79 70 | .........<h2.id="Error-Union-Typ |
| 1b980 | 65 22 3e 45 72 72 6f 72 20 55 6e 69 6f 6e 20 54 79 70 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 | e">Error.Union.Type</h2>........ |
| 1b9a0 | 3c 70 3e 0a 20 20 20 20 20 20 4d 6f 73 74 20 6f 66 20 74 68 65 20 74 69 6d 65 20 79 6f 75 20 77 | <p>.......Most.of.the.time.you.w |
| 1b9c0 | 69 6c 6c 20 6e 6f 74 20 66 69 6e 64 20 79 6f 75 72 73 65 6c 66 20 75 73 69 6e 67 20 61 6e 20 65 | ill.not.find.yourself.using.an.e |
| 1b9e0 | 72 72 6f 72 20 73 65 74 20 74 79 70 65 2e 20 49 6e 73 74 65 61 64 2c 0a 20 20 20 20 20 20 6c 69 | rror.set.type..Instead,.......li |
| 1ba00 | 6b 65 6c 79 20 79 6f 75 20 77 69 6c 6c 20 62 65 20 75 73 69 6e 67 20 74 68 65 20 65 72 72 6f 72 | kely.you.will.be.using.the.error |
| 1ba20 | 20 75 6e 69 6f 6e 20 74 79 70 65 2e 20 54 68 69 73 20 69 73 20 77 68 65 6e 20 79 6f 75 20 74 61 | .union.type..This.is.when.you.ta |
| 1ba40 | 6b 65 20 61 6e 20 65 72 72 6f 72 20 73 65 74 0a 20 20 20 20 20 20 61 6e 64 20 61 20 6e 6f 72 6d | ke.an.error.set.......and.a.norm |
| 1ba60 | 61 6c 20 74 79 70 65 2c 20 61 6e 64 20 63 72 65 61 74 65 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 | al.type,.and.create.an.error.uni |
| 1ba80 | 6f 6e 20 77 69 74 68 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f 63 6f 64 65 3e 20 62 69 6e 61 72 | on.with.the.<code>!</code>.binar |
| 1baa0 | 79 20 6f 70 65 72 61 74 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | y.operator........</p>.......<p> |
| 1bac0 | 0a 20 20 20 20 20 20 48 65 72 65 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 70 61 72 | .......Here.is.a.function.to.par |
| 1bae0 | 73 65 20 61 20 73 74 72 69 6e 67 20 69 6e 74 6f 20 61 20 36 34 2d 62 69 74 20 69 6e 74 65 67 65 | se.a.string.into.a.64-bit.intege |
| 1bb00 | 72 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 | r:.......</p>.......<p.class="fi |
| 1bb20 | 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | le">test.zig</p><pre><code.class |
| 1bb40 | 3d 22 7a 69 67 22 3e 70 75 62 20 66 6e 20 70 61 72 73 65 55 36 34 28 62 75 66 3a 20 5b 5d 63 6f | ="zig">pub.fn.parseU64(buf:.[]co |
| 1bb60 | 6e 73 74 20 75 38 2c 20 72 61 64 69 78 3a 20 75 38 29 20 21 75 36 34 20 7b 0a 20 20 20 20 76 61 | nst.u8,.radix:.u8).!u64.{.....va |
| 1bb80 | 72 20 78 3a 20 75 36 34 20 3d 20 30 3b 0a 0a 20 20 20 20 66 6f 72 20 28 62 75 66 29 20 7c 63 7c | r.x:.u64.=.0;......for.(buf).|c| |
| 1bba0 | 20 7b 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 64 69 67 69 74 20 3d 20 63 68 61 72 54 6f 44 | .{.........const.digit.=.charToD |
| 1bbc0 | 69 67 69 74 28 63 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 64 69 67 69 74 20 26 67 74 3b | igit(c);..........if.(digit.> |
| 1bbe0 | 3d 20 72 61 64 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 72 | =.radix).{.............return.er |
| 1bc00 | 72 6f 72 2e 49 6e 76 61 6c 69 64 43 68 61 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 | ror.InvalidChar;.........}...... |
| 1bc20 | 20 20 20 20 2f 2f 20 78 20 2a 3d 20 72 61 64 69 78 0a 20 20 20 20 20 20 20 20 69 66 20 28 40 6d | ....//.x.*=.radix.........if.(@m |
| 1bc40 | 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 75 36 34 2c 20 78 2c 20 72 61 64 69 78 2c 20 26 61 | ulWithOverflow(u64,.x,.radix,.&a |
| 1bc60 | 6d 70 3b 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f | mp;x)).{.............return.erro |
| 1bc80 | 72 2e 4f 76 65 72 66 6c 6f 77 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f | r.Overflow;.........}........../ |
| 1bca0 | 2f 20 78 20 2b 3d 20 64 69 67 69 74 0a 20 20 20 20 20 20 20 20 69 66 20 28 40 61 64 64 57 69 74 | /.x.+=.digit.........if.(@addWit |
| 1bcc0 | 68 4f 76 65 72 66 6c 6f 77 28 75 36 34 2c 20 78 2c 20 64 69 67 69 74 2c 20 26 61 6d 70 3b 78 29 | hOverflow(u64,.x,.digit,.&x) |
| 1bce0 | 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 4f 76 65 | ).{.............return.error.Ove |
| 1bd00 | 72 66 6c 6f 77 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 | rflow;.........}.....}......retu |
| 1bd20 | 72 6e 20 78 3b 0a 7d 0a 0a 66 6e 20 63 68 61 72 54 6f 44 69 67 69 74 28 63 3a 20 75 38 29 20 75 | rn.x;.}..fn.charToDigit(c:.u8).u |
| 1bd40 | 38 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 73 77 69 74 63 68 20 28 63 29 20 7b 0a 20 20 20 20 | 8.{.....return.switch.(c).{..... |
| 1bd60 | 20 20 20 20 27 30 27 20 2e 2e 2e 20 27 39 27 20 3d 26 67 74 3b 20 63 20 2d 20 27 30 27 2c 0a 20 | ....'0'.....'9'.=>.c.-.'0',.. |
| 1bd80 | 20 20 20 20 20 20 20 27 41 27 20 2e 2e 2e 20 27 5a 27 20 3d 26 67 74 3b 20 63 20 2d 20 27 41 27 | .......'A'.....'Z'.=>.c.-.'A' |
| 1bda0 | 20 2b 20 31 30 2c 0a 20 20 20 20 20 20 20 20 27 61 27 20 2e 2e 2e 20 27 7a 27 20 3d 26 67 74 3b | .+.10,.........'a'.....'z'.=> |
| 1bdc0 | 20 63 20 2d 20 27 61 27 20 2b 20 31 30 2c 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 | .c.-.'a'.+.10,.........else.=> |
| 1bde0 | 3b 20 40 6d 61 78 56 61 6c 75 65 28 75 38 29 2c 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 74 65 73 74 20 | ;.@maxValue(u8),.....};.}..test. |
| 1be00 | 26 71 75 6f 74 3b 70 61 72 73 65 20 75 36 34 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 | "parse.u64".{.....cons |
| 1be20 | 74 20 72 65 73 75 6c 74 20 3d 20 74 72 79 20 70 61 72 73 65 55 36 34 28 26 71 75 6f 74 3b 31 32 | t.result.=.try.parseU64("12 |
| 1be40 | 33 34 26 71 75 6f 74 3b 2c 20 31 30 29 3b 0a 20 20 20 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 | 34",.10);.....@import(" |
| 1be60 | 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 28 72 65 73 75 6c 74 20 | ;std").debug.assert(result. |
| 1be80 | 3d 3d 20 31 32 33 34 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f | ==.1234);.}</code></pre><pre><co |
| 1bea0 | 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 | de.class="shell">$.zig.test.test |
| 1bec0 | 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 70 61 72 73 65 20 75 36 34 2e 2e 2e 4f 4b 0a 3c 2f 63 | .zig.Test.1/1.parse.u64...OK.</c |
| 1bee0 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 69 | ode></pre>........<p>.......Noti |
| 1bf00 | 63 65 20 74 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 3e 21 75 36 34 | ce.the.return.type.is.<code>!u64 |
| 1bf20 | 3c 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 74 68 65 20 66 75 6e | </code>..This.means.that.the.fun |
| 1bf40 | 63 74 69 6f 6e 0a 20 20 20 20 20 20 65 69 74 68 65 72 20 72 65 74 75 72 6e 73 20 61 6e 20 75 6e | ction.......either.returns.an.un |
| 1bf60 | 73 69 67 6e 65 64 20 36 34 20 62 69 74 20 69 6e 74 65 67 65 72 2c 20 6f 72 20 61 6e 20 65 72 72 | signed.64.bit.integer,.or.an.err |
| 1bf80 | 6f 72 2e 20 57 65 20 6c 65 66 74 20 6f 66 66 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 0a 20 20 | or..We.left.off.the.error.set... |
| 1bfa0 | 20 20 20 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 66 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f | ....to.the.left.of.the.<code>!</ |
| 1bfc0 | 63 6f 64 65 3e 2c 20 73 6f 20 74 68 65 20 65 72 72 6f 72 20 73 65 74 20 69 73 20 69 6e 66 65 72 | code>,.so.the.error.set.is.infer |
| 1bfe0 | 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 | red........</p>.......<p>....... |
| 1c000 | 57 69 74 68 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 | Within.the.function.definition,. |
| 1c020 | 79 6f 75 20 63 61 6e 20 73 65 65 20 73 6f 6d 65 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e | you.can.see.some.return.statemen |
| 1c040 | 74 73 20 74 68 61 74 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 61 6e 20 65 72 72 6f 72 2c 20 61 | ts.that.return.......an.error,.a |
| 1c060 | 6e 64 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 61 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d | nd.at.the.bottom.a.return.statem |
| 1c080 | 65 6e 74 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 3c 63 6f 64 65 3e 75 36 34 3c 2f 63 6f | ent.that.returns.a.<code>u64</co |
| 1c0a0 | 64 65 3e 2e 0a 20 20 20 20 20 20 42 6f 74 68 20 74 79 70 65 73 20 69 6d 70 6c 69 63 69 74 6c 79 | de>........Both.types.implicitly |
| 1c0c0 | 20 63 61 73 74 20 74 6f 20 3c 63 6f 64 65 3e 65 72 72 6f 72 21 75 36 34 3c 2f 63 6f 64 65 3e 2e | .cast.to.<code>error!u64</code>. |
| 1c0e0 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 61 74 | .......</p>.......<p>.......What |
| 1c100 | 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 6f 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 | .it.looks.like.to.use.this.funct |
| 1c120 | 69 6f 6e 20 76 61 72 69 65 73 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 61 74 20 79 6f 75 | ion.varies.depending.on.what.you |
| 1c140 | 27 72 65 0a 20 20 20 20 20 20 74 72 79 69 6e 67 20 74 6f 20 64 6f 2e 20 4f 6e 65 20 6f 66 20 74 | 're.......trying.to.do..One.of.t |
| 1c160 | 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | he.following:.......</p>.......< |
| 1c180 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 59 6f 75 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 | ul>.........<li>You.want.to.prov |
| 1c1a0 | 69 64 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 69 66 20 69 74 20 72 65 74 75 72 6e | ide.a.default.value.if.it.return |
| 1c1c0 | 65 64 20 61 6e 20 65 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 66 | ed.an.error.</li>.........<li>If |
| 1c1e0 | 20 69 74 20 72 65 74 75 72 6e 65 64 20 61 6e 20 65 72 72 6f 72 20 74 68 65 6e 20 79 6f 75 20 77 | .it.returned.an.error.then.you.w |
| 1c200 | 61 6e 74 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 73 61 6d 65 20 65 72 72 6f 72 2e 3c 2f 6c | ant.to.return.the.same.error.</l |
| 1c220 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 59 6f 75 20 6b 6e 6f 77 20 77 69 74 68 20 63 6f 6d | i>.........<li>You.know.with.com |
| 1c240 | 70 6c 65 74 65 20 63 65 72 74 61 69 6e 74 79 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 72 65 74 75 | plete.certainty.it.will.not.retu |
| 1c260 | 72 6e 20 61 6e 20 65 72 72 6f 72 2c 20 73 6f 20 77 61 6e 74 20 74 6f 20 75 6e 63 6f 6e 64 69 74 | rn.an.error,.so.want.to.uncondit |
| 1c280 | 69 6f 6e 61 6c 6c 79 20 75 6e 77 72 61 70 20 69 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | ionally.unwrap.it.</li>......... |
| 1c2a0 | 3c 6c 69 3e 59 6f 75 20 77 61 6e 74 20 74 6f 20 74 61 6b 65 20 61 20 64 69 66 66 65 72 65 6e 74 | <li>You.want.to.take.a.different |
| 1c2c0 | 20 61 63 74 69 6f 6e 20 66 6f 72 20 65 61 63 68 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 2e | .action.for.each.possible.error. |
| 1c2e0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 49 66 20 79 6f | </li>.......</ul>.......<p>If.yo |
| 1c300 | 75 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 | u.want.to.provide.a.default.valu |
| 1c320 | 65 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 20 3c 63 6f 64 65 3e 63 61 74 63 68 3c 2f | e,.you.can.use.the.<code>catch</ |
| 1c340 | 63 6f 64 65 3e 20 62 69 6e 61 72 79 20 6f 70 65 72 61 74 6f 72 3a 3c 2f 70 3e 0a 20 20 20 20 20 | code>.binary.operator:</p>...... |
| 1c360 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 64 6f 41 54 68 | .<pre><code.class="zig">fn.doATh |
| 1c380 | 69 6e 67 28 73 74 72 3a 20 5b 5d 75 38 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 | ing(str:.[]u8).void.{.....const. |
| 1c3a0 | 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 31 30 29 20 63 61 74 63 68 | number.=.parseU64(str,.10).catch |
| 1c3c0 | 20 31 33 3b 0a 20 20 20 20 2f 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | .13;.....//.....}</code></pre>.. |
| 1c3e0 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 69 73 20 63 6f 64 65 2c 20 3c 63 6f | .....<p>.......In.this.code,.<co |
| 1c400 | 64 65 3e 6e 75 6d 62 65 72 3c 2f 63 6f 64 65 3e 20 77 69 6c 6c 20 62 65 20 65 71 75 61 6c 20 74 | de>number</code>.will.be.equal.t |
| 1c420 | 6f 20 74 68 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 70 61 72 73 65 64 20 73 74 72 69 6e 67 | o.the.successfully.parsed.string |
| 1c440 | 2c 20 6f 72 0a 20 20 20 20 20 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 31 33 | ,.or.......a.default.value.of.13 |
| 1c460 | 2e 20 54 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 20 68 61 6e 64 20 73 69 64 | ..The.type.of.the.right.hand.sid |
| 1c480 | 65 20 6f 66 20 74 68 65 20 62 69 6e 61 72 79 20 3c 63 6f 64 65 3e 63 61 74 63 68 3c 2f 63 6f 64 | e.of.the.binary.<code>catch</cod |
| 1c4a0 | 65 3e 20 6f 70 65 72 61 74 6f 72 20 6d 75 73 74 0a 20 20 20 20 20 20 6d 61 74 63 68 20 74 68 65 | e>.operator.must.......match.the |
| 1c4c0 | 20 75 6e 77 72 61 70 70 65 64 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 2c 20 6f 72 20 | .unwrapped.error.union.type,.or. |
| 1c4e0 | 62 65 20 6f 66 20 74 79 70 65 20 3c 63 6f 64 65 3e 6e 6f 72 65 74 75 72 6e 3c 2f 63 6f 64 65 3e | be.of.type.<code>noreturn</code> |
| 1c500 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 4c 65 74 27 73 20 73 61 79 20 | ........</p>.......<p>Let's.say. |
| 1c520 | 79 6f 75 20 77 61 6e 74 65 64 20 74 6f 20 72 65 74 75 72 6e 20 74 68 65 20 65 72 72 6f 72 20 69 | you.wanted.to.return.the.error.i |
| 1c540 | 66 20 79 6f 75 20 67 6f 74 20 6f 6e 65 2c 20 6f 74 68 65 72 77 69 73 65 20 63 6f 6e 74 69 6e 75 | f.you.got.one,.otherwise.continu |
| 1c560 | 65 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 67 69 63 3a | e.with.the.......function.logic: |
| 1c580 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 1c5a0 | 22 3e 66 6e 20 64 6f 41 54 68 69 6e 67 28 73 74 72 3a 20 5b 5d 75 38 29 20 21 76 6f 69 64 20 7b | ">fn.doAThing(str:.[]u8).!void.{ |
| 1c5c0 | 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 34 28 73 74 72 | .....const.number.=.parseU64(str |
| 1c5e0 | 2c 20 31 30 29 20 63 61 74 63 68 20 7c 65 72 72 7c 20 72 65 74 75 72 6e 20 65 72 72 3b 0a 20 20 | ,.10).catch.|err|.return.err;... |
| 1c600 | 20 20 2f 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | ..//.....}</code></pre>.......<p |
| 1c620 | 3e 0a 20 20 20 20 20 20 20 20 54 68 65 72 65 20 69 73 20 61 20 73 68 6f 72 74 63 75 74 20 66 6f | >.........There.is.a.shortcut.fo |
| 1c640 | 72 20 74 68 69 73 2e 20 54 68 65 20 3c 63 6f 64 65 3e 74 72 79 3c 2f 63 6f 64 65 3e 20 65 78 70 | r.this..The.<code>try</code>.exp |
| 1c660 | 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | ression:.......</p>.......<pre>< |
| 1c680 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 64 6f 41 54 68 69 6e 67 28 73 74 72 | code.class="zig">fn.doAThing(str |
| 1c6a0 | 3a 20 5b 5d 75 38 29 20 21 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 | :.[]u8).!void.{.....const.number |
| 1c6c0 | 20 3d 20 74 72 79 20 70 61 72 73 65 55 36 34 28 73 74 72 2c 20 31 30 29 3b 0a 20 20 20 20 2f 2f | .=.try.parseU64(str,.10);.....// |
| 1c6e0 | 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | .....}</code></pre>.......<p>... |
| 1c700 | 20 20 20 20 3c 63 6f 64 65 3e 74 72 79 3c 2f 63 6f 64 65 3e 20 65 76 61 6c 75 61 74 65 73 20 61 | ....<code>try</code>.evaluates.a |
| 1c720 | 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 49 66 20 69 74 20 | n.error.union.expression..If.it. |
| 1c740 | 69 73 20 61 6e 20 65 72 72 6f 72 2c 20 69 74 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 20 66 72 | is.an.error,.it.returns.......fr |
| 1c760 | 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 | om.the.current.function.with.the |
| 1c780 | 20 73 61 6d 65 20 65 72 72 6f 72 2e 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 65 78 70 72 | .same.error..Otherwise,.the.expr |
| 1c7a0 | 65 73 73 69 6f 6e 20 72 65 73 75 6c 74 73 20 69 6e 0a 20 20 20 20 20 20 74 68 65 20 75 6e 77 72 | ession.results.in.......the.unwr |
| 1c7c0 | 61 70 70 65 64 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | apped.value........</p>.......<p |
| 1c7e0 | 3e 0a 20 20 20 20 20 20 20 20 4d 61 79 62 65 20 79 6f 75 20 6b 6e 6f 77 20 77 69 74 68 20 63 6f | >.........Maybe.you.know.with.co |
| 1c800 | 6d 70 6c 65 74 65 20 63 65 72 74 61 69 6e 74 79 20 74 68 61 74 20 61 6e 20 65 78 70 72 65 73 73 | mplete.certainty.that.an.express |
| 1c820 | 69 6f 6e 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 61 6e 20 65 72 72 6f 72 2e 0a 20 20 20 20 | ion.will.never.be.an.error...... |
| 1c840 | 20 20 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 69 73 | ....In.this.case.you.can.do.this |
| 1c860 | 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | :.......</p>.......<pre><code.cl |
| 1c880 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d 20 70 61 72 73 65 55 36 | ass="zig">const.number.=.parseU6 |
| 1c8a0 | 34 28 26 71 75 6f 74 3b 31 32 33 34 26 71 75 6f 74 3b 2c 20 31 30 29 20 63 61 74 63 68 20 75 6e | 4("1234",.10).catch.un |
| 1c8c0 | 72 65 61 63 68 61 62 6c 65 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | reachable;</code></pre>.......<p |
| 1c8e0 | 3e 0a 20 20 20 20 20 20 48 65 72 65 20 77 65 20 6b 6e 6f 77 20 66 6f 72 20 73 75 72 65 20 74 68 | >.......Here.we.know.for.sure.th |
| 1c900 | 61 74 20 22 31 32 33 34 22 20 77 69 6c 6c 20 70 61 72 73 65 20 73 75 63 63 65 73 73 66 75 6c 6c | at."1234".will.parse.successfull |
| 1c920 | 79 2e 20 53 6f 20 77 65 20 70 75 74 20 74 68 65 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 75 6e 72 | y..So.we.put.the.......<code>unr |
| 1c940 | 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e 20 76 61 6c 75 65 20 6f 6e 20 74 68 65 20 72 69 67 | eachable</code>.value.on.the.rig |
| 1c960 | 68 74 20 68 61 6e 64 20 73 69 64 65 2e 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c | ht.hand.side..<code>unreachable< |
| 1c980 | 2f 63 6f 64 65 3e 20 67 65 6e 65 72 61 74 65 73 0a 20 20 20 20 20 20 61 20 70 61 6e 69 63 20 69 | /code>.generates.......a.panic.i |
| 1c9a0 | 6e 20 44 65 62 75 67 20 61 6e 64 20 52 65 6c 65 61 73 65 53 61 66 65 20 6d 6f 64 65 73 20 61 6e | n.Debug.and.ReleaseSafe.modes.an |
| 1c9c0 | 64 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 69 6e 20 52 65 6c 65 61 73 65 46 | d.undefined.behavior.in.ReleaseF |
| 1c9e0 | 61 73 74 20 6d 6f 64 65 2e 20 53 6f 2c 20 77 68 69 6c 65 20 77 65 27 72 65 20 64 65 62 75 67 67 | ast.mode..So,.while.we're.debugg |
| 1ca00 | 69 6e 67 20 74 68 65 0a 20 20 20 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 69 66 20 74 68 | ing.the.......application,.if.th |
| 1ca20 | 65 72 65 20 3c 65 6d 3e 77 61 73 3c 2f 65 6d 3e 20 61 20 73 75 72 70 72 69 73 65 20 65 72 72 6f | ere.<em>was</em>.a.surprise.erro |
| 1ca40 | 72 20 68 65 72 65 2c 20 74 68 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 77 6f 75 6c 64 20 63 72 | r.here,.the.application.would.cr |
| 1ca60 | 61 73 68 0a 20 20 20 20 20 20 61 70 70 72 6f 70 72 69 61 74 65 6c 79 2e 0a 20 20 20 20 20 20 3c | ash.......appropriately........< |
| 1ca80 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 69 6e 61 6c 6c 79 2c 20 79 6f 75 | /p>.......<p>.......Finally,.you |
| 1caa0 | 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 74 61 6b 65 20 61 20 64 69 66 66 65 72 65 6e 74 20 61 63 | .may.want.to.take.a.different.ac |
| 1cac0 | 74 69 6f 6e 20 66 6f 72 20 65 76 65 72 79 20 73 69 74 75 61 74 69 6f 6e 2e 20 46 6f 72 20 74 68 | tion.for.every.situation..For.th |
| 1cae0 | 61 74 2c 20 77 65 20 63 6f 6d 62 69 6e 65 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 3e 69 | at,.we.combine.......the.<code>i |
| 1cb00 | 66 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 3c 63 6f 64 65 3e 73 77 69 74 63 68 3c 2f 63 6f 64 65 3e | f</code>.and.<code>switch</code> |
| 1cb20 | 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | .expression:.......</p>.......<p |
| 1cb40 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 64 6f 41 54 68 69 6e 67 | re><code.class="zig">fn.doAThing |
| 1cb60 | 28 73 74 72 3a 20 5b 5d 75 38 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 69 66 20 28 70 61 72 73 65 | (str:.[]u8).void.{.....if.(parse |
| 1cb80 | 55 36 34 28 73 74 72 2c 20 31 30 29 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 | U64(str,.10)).|number|.{........ |
| 1cba0 | 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 4e 75 6d 62 65 72 28 6e 75 6d 62 65 72 29 3b 0a | .doSomethingWithNumber(number);. |
| 1cbc0 | 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 73 77 69 74 63 68 20 28 65 72 72 29 20 7b 0a | ....}.else.|err|.switch.(err).{. |
| 1cbe0 | 20 20 20 20 20 20 20 20 65 72 72 6f 72 2e 4f 76 65 72 66 6c 6f 77 20 3d 26 67 74 3b 20 7b 0a 20 | ........error.Overflow.=>.{.. |
| 1cc00 | 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61 6e 64 6c 65 20 6f 76 65 72 66 6c 6f 77 2e 2e 2e | ...........//.handle.overflow... |
| 1cc20 | 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 70 72 6f 6d 69 73 | .........},.........//.we.promis |
| 1cc40 | 65 20 74 68 61 74 20 49 6e 76 61 6c 69 64 43 68 61 72 20 77 6f 6e 27 74 20 68 61 70 70 65 6e 20 | e.that.InvalidChar.won't.happen. |
| 1cc60 | 28 6f 72 20 63 72 61 73 68 20 69 6e 20 64 65 62 75 67 20 6d 6f 64 65 20 69 66 20 69 74 20 64 6f | (or.crash.in.debug.mode.if.it.do |
| 1cc80 | 65 73 29 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 2e 49 6e 76 61 6c 69 64 43 68 61 72 20 3d 26 | es).........error.InvalidChar.=& |
| 1cca0 | 67 74 3b 20 75 6e 72 65 61 63 68 61 62 6c 65 2c 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c | gt;.unreachable,.....}.}</code>< |
| 1ccc0 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6f 74 68 65 72 20 | /pre>.......<p>.......The.other. |
| 1cce0 | 63 6f 6d 70 6f 6e 65 6e 74 20 74 6f 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 69 73 20 64 | component.to.error.handling.is.d |
| 1cd00 | 65 66 65 72 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 20 20 20 20 20 20 49 6e 20 61 64 64 69 74 69 | efer.statements........In.additi |
| 1cd20 | 6f 6e 20 74 6f 20 61 6e 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 3c 63 6f 64 65 3e 64 65 66 | on.to.an.unconditional.<code>def |
| 1cd40 | 65 72 3c 2f 63 6f 64 65 3e 2c 20 5a 69 67 20 68 61 73 20 3c 63 6f 64 65 3e 65 72 72 64 65 66 65 | er</code>,.Zig.has.<code>errdefe |
| 1cd60 | 72 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 65 76 61 6c 75 61 74 65 73 20 | r</code>,.......which.evaluates. |
| 1cd80 | 74 68 65 20 64 65 66 65 72 72 65 64 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 6e 20 62 6c 6f 63 6b | the.deferred.expression.on.block |
| 1cda0 | 20 65 78 69 74 20 70 61 74 68 20 69 66 20 61 6e 64 20 6f 6e 6c 79 20 69 66 0a 20 20 20 20 20 20 | .exit.path.if.and.only.if....... |
| 1cdc0 | 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 65 64 20 77 69 74 68 20 61 6e 20 65 72 | the.function.returned.with.an.er |
| 1cde0 | 72 6f 72 20 66 72 6f 6d 20 74 68 65 20 62 6c 6f 63 6b 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | ror.from.the.block........</p>.. |
| 1ce00 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f | .....<p>.......Example:.......</ |
| 1ce20 | 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | p>.......<pre><code.class="zig"> |
| 1ce40 | 66 6e 20 63 72 65 61 74 65 46 6f 6f 28 70 61 72 61 6d 3a 20 69 33 32 29 20 21 46 6f 6f 20 7b 0a | fn.createFoo(param:.i32).!Foo.{. |
| 1ce60 | 20 20 20 20 63 6f 6e 73 74 20 66 6f 6f 20 3d 20 74 72 79 20 74 72 79 54 6f 41 6c 6c 6f 63 61 74 | ....const.foo.=.try.tryToAllocat |
| 1ce80 | 65 46 6f 6f 28 29 3b 0a 20 20 20 20 2f 2f 20 6e 6f 77 20 77 65 20 68 61 76 65 20 61 6c 6c 6f 63 | eFoo();.....//.now.we.have.alloc |
| 1cea0 | 61 74 65 64 20 66 6f 6f 2e 20 77 65 20 6e 65 65 64 20 74 6f 20 66 72 65 65 20 69 74 20 69 66 20 | ated.foo..we.need.to.free.it.if. |
| 1cec0 | 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 66 61 69 6c 73 2e 0a 20 20 20 20 2f 2f 20 62 75 74 20 77 | the.function.fails......//.but.w |
| 1cee0 | 65 20 77 61 6e 74 20 74 6f 20 72 65 74 75 72 6e 20 69 74 20 69 66 20 74 68 65 20 66 75 6e 63 74 | e.want.to.return.it.if.the.funct |
| 1cf00 | 69 6f 6e 20 73 75 63 63 65 65 64 73 2e 0a 20 20 20 20 65 72 72 64 65 66 65 72 20 64 65 61 6c 6c | ion.succeeds......errdefer.deall |
| 1cf20 | 6f 63 61 74 65 46 6f 6f 28 66 6f 6f 29 3b 0a 0a 20 20 20 20 63 6f 6e 73 74 20 74 6d 70 5f 62 75 | ocateFoo(foo);......const.tmp_bu |
| 1cf40 | 66 20 3d 20 61 6c 6c 6f 63 61 74 65 54 6d 70 42 75 66 66 65 72 28 29 20 3f 3f 20 72 65 74 75 72 | f.=.allocateTmpBuffer().??.retur |
| 1cf60 | 6e 20 65 72 72 6f 72 2e 4f 75 74 4f 66 4d 65 6d 6f 72 79 3b 0a 20 20 20 20 2f 2f 20 74 6d 70 5f | n.error.OutOfMemory;.....//.tmp_ |
| 1cf80 | 62 75 66 20 69 73 20 74 72 75 6c 79 20 61 20 74 65 6d 70 6f 72 61 72 79 20 72 65 73 6f 75 72 63 | buf.is.truly.a.temporary.resourc |
| 1cfa0 | 65 2c 20 61 6e 64 20 77 65 20 66 6f 72 20 73 75 72 65 20 77 61 6e 74 20 74 6f 20 63 6c 65 61 6e | e,.and.we.for.sure.want.to.clean |
| 1cfc0 | 20 69 74 20 75 70 0a 20 20 20 20 2f 2f 20 62 65 66 6f 72 65 20 74 68 69 73 20 62 6c 6f 63 6b 20 | .it.up.....//.before.this.block. |
| 1cfe0 | 6c 65 61 76 65 73 20 73 63 6f 70 65 0a 20 20 20 20 64 65 66 65 72 20 64 65 61 6c 6c 6f 63 61 74 | leaves.scope.....defer.deallocat |
| 1d000 | 65 54 6d 70 42 75 66 66 65 72 28 74 6d 70 5f 62 75 66 29 3b 0a 0a 20 20 20 20 69 66 20 28 70 61 | eTmpBuffer(tmp_buf);......if.(pa |
| 1d020 | 72 61 6d 20 26 67 74 3b 20 31 33 33 37 29 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 49 6e 76 61 | ram.>.1337).return.error.Inva |
| 1d040 | 6c 69 64 50 61 72 61 6d 3b 0a 0a 20 20 20 20 2f 2f 20 68 65 72 65 20 74 68 65 20 65 72 72 64 65 | lidParam;......//.here.the.errde |
| 1d060 | 66 65 72 20 77 69 6c 6c 20 6e 6f 74 20 72 75 6e 20 73 69 6e 63 65 20 77 65 27 72 65 20 72 65 74 | fer.will.not.run.since.we're.ret |
| 1d080 | 75 72 6e 69 6e 67 20 73 75 63 63 65 73 73 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e | urning.success.from.the.function |
| 1d0a0 | 2e 0a 20 20 20 20 2f 2f 20 62 75 74 20 74 68 65 20 64 65 66 65 72 20 77 69 6c 6c 20 72 75 6e 21 | ......//.but.the.defer.will.run! |
| 1d0c0 | 0a 20 20 20 20 72 65 74 75 72 6e 20 66 6f 6f 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | .....return.foo;.}</code></pre>. |
| 1d0e0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6e 65 61 74 20 74 68 69 6e 67 20 61 | ......<p>.......The.neat.thing.a |
| 1d100 | 62 6f 75 74 20 74 68 69 73 20 69 73 20 74 68 61 74 20 79 6f 75 20 67 65 74 20 72 6f 62 75 73 74 | bout.this.is.that.you.get.robust |
| 1d120 | 20 65 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 20 77 69 74 68 6f 75 74 0a 20 20 20 20 20 20 74 68 | .error.handling.without.......th |
| 1d140 | 65 20 76 65 72 62 6f 73 69 74 79 20 61 6e 64 20 63 6f 67 6e 69 74 69 76 65 20 6f 76 65 72 68 65 | e.verbosity.and.cognitive.overhe |
| 1d160 | 61 64 20 6f 66 20 74 72 79 69 6e 67 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 65 76 65 72 79 20 | ad.of.trying.to.make.sure.every. |
| 1d180 | 65 78 69 74 20 70 61 74 68 0a 20 20 20 20 20 20 69 73 20 63 6f 76 65 72 65 64 2e 20 54 68 65 20 | exit.path.......is.covered..The. |
| 1d1a0 | 64 65 61 6c 6c 6f 63 61 74 69 6f 6e 20 63 6f 64 65 20 69 73 20 61 6c 77 61 79 73 20 64 69 72 65 | deallocation.code.is.always.dire |
| 1d1c0 | 63 74 6c 79 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 63 6f | ctly.following.the.allocation.co |
| 1d1e0 | 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 | de........</p>.......<p>.......A |
| 1d200 | 20 63 6f 75 70 6c 65 20 6f 66 20 6f 74 68 65 72 20 74 69 64 62 69 74 73 20 61 62 6f 75 74 20 65 | .couple.of.other.tidbits.about.e |
| 1d220 | 72 72 6f 72 20 68 61 6e 64 6c 69 6e 67 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | rror.handling:.......</p>....... |
| 1d240 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 68 65 73 65 20 70 72 69 6d 69 74 69 76 65 | <ul>.........<li>These.primitive |
| 1d260 | 73 20 67 69 76 65 20 65 6e 6f 75 67 68 20 65 78 70 72 65 73 73 69 76 65 6e 65 73 73 20 74 68 61 | s.give.enough.expressiveness.tha |
| 1d280 | 74 20 69 74 27 73 20 63 6f 6d 70 6c 65 74 65 6c 79 20 70 72 61 63 74 69 63 61 6c 0a 20 20 20 20 | t.it's.completely.practical..... |
| 1d2a0 | 20 20 20 20 20 20 20 20 74 6f 20 68 61 76 65 20 66 61 69 6c 69 6e 67 20 74 6f 20 63 68 65 63 6b | ........to.have.failing.to.check |
| 1d2c0 | 20 66 6f 72 20 61 6e 20 65 72 72 6f 72 20 62 65 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 | .for.an.error.be.a.compile.error |
| 1d2e0 | 2e 20 49 66 20 79 6f 75 20 72 65 61 6c 6c 79 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ..If.you.really.want............ |
| 1d300 | 20 74 6f 20 69 67 6e 6f 72 65 20 74 68 65 20 65 72 72 6f 72 2c 20 79 6f 75 20 63 61 6e 20 61 64 | .to.ignore.the.error,.you.can.ad |
| 1d320 | 64 20 3c 63 6f 64 65 3e 63 61 74 63 68 20 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 65 3e | d.<code>catch.unreachable</code> |
| 1d340 | 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 20 74 68 65 20 61 64 64 65 64 20 62 | .and.............get.the.added.b |
| 1d360 | 65 6e 65 66 69 74 20 6f 66 20 63 72 61 73 68 69 6e 67 20 69 6e 20 44 65 62 75 67 20 61 6e 64 20 | enefit.of.crashing.in.Debug.and. |
| 1d380 | 52 65 6c 65 61 73 65 53 61 66 65 20 6d 6f 64 65 73 20 69 66 20 79 6f 75 72 20 61 73 73 75 6d 70 | ReleaseSafe.modes.if.your.assump |
| 1d3a0 | 74 69 6f 6e 20 77 61 73 20 77 72 6f 6e 67 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 | tion.was.wrong..........</li>... |
| 1d3c0 | 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 53 69 6e 63 65 20 5a 69 67 20 75 | ......<li>...........Since.Zig.u |
| 1d3e0 | 6e 64 65 72 73 74 61 6e 64 73 20 65 72 72 6f 72 20 74 79 70 65 73 2c 20 69 74 20 63 61 6e 20 70 | nderstands.error.types,.it.can.p |
| 1d400 | 72 65 2d 77 65 69 67 68 74 20 62 72 61 6e 63 68 65 73 20 69 6e 20 66 61 76 6f 72 20 6f 66 0a 20 | re-weight.branches.in.favor.of.. |
| 1d420 | 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 73 20 6e 6f 74 20 6f 63 63 75 72 69 6e 67 2e 20 4a 75 | .........errors.not.occuring..Ju |
| 1d440 | 73 74 20 61 20 73 6d 61 6c 6c 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 62 65 6e 65 66 69 74 20 | st.a.small.optimization.benefit. |
| 1d460 | 74 68 61 74 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 | that.is.not.available........... |
| 1d480 | 69 6e 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 73 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 | in.other.languages..........</li |
| 1d4a0 | 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a | >.......</ul>.......<p>See.also: |
| 1d4c0 | 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 65 66 65 72 22 3e 64 65 | </p><ul>.<li><a.href="#defer">de |
| 1d4e0 | 66 65 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 66 22 3e 69 | fer</a></li>.<li><a.href="#if">i |
| 1d500 | 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 77 69 74 63 68 22 | f</a></li>.<li><a.href="#switch" |
| 1d520 | 3e 73 77 69 74 63 68 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 3c | >switch</a></li>.</ul>.........< |
| 1d540 | 70 3e 41 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 69 73 20 63 72 65 61 74 65 64 20 77 69 74 68 | p>An.error.union.is.created.with |
| 1d560 | 20 74 68 65 20 3c 63 6f 64 65 3e 21 3c 2f 63 6f 64 65 3e 20 62 69 6e 61 72 79 20 6f 70 65 72 61 | .the.<code>!</code>.binary.opera |
| 1d580 | 74 6f 72 2e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 75 73 65 20 63 6f 6d 70 69 6c 65 2d 74 | tor........You.can.use.compile-t |
| 1d5a0 | 69 6d 65 20 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 63 68 69 | ime.reflection.to.access.the.chi |
| 1d5c0 | 6c 64 20 74 79 70 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 3c 2f 70 3e 0a 20 | ld.type.of.an.error.union:</p>.. |
| 1d5e0 | 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 | .....<p.class="file">test.zig</p |
| 1d600 | 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 | ><pre><code.class="zig">const.as |
| 1d620 | 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e | sert.=.@import("std"). |
| 1d640 | 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 65 72 72 6f 72 20 | debug.assert;..test."error. |
| 1d660 | 75 6e 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 76 61 72 20 66 6f 6f 3a 20 65 72 72 6f 72 | union".{.....var.foo:.error |
| 1d680 | 21 69 33 32 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 0a 20 20 20 20 2f 2f 20 49 6d 70 6c 69 63 | !i32.=.undefined;......//.Implic |
| 1d6a0 | 69 74 6c 79 20 63 61 73 74 20 66 72 6f 6d 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 6e 20 | itly.cast.from.child.type.of.an. |
| 1d6c0 | 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 0a 20 20 20 20 66 6f 6f 20 3d 20 31 32 33 34 3b 0a 0a 20 20 | error.union:.....foo.=.1234;.... |
| 1d6e0 | 20 20 2f 2f 20 49 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 20 66 72 6f 6d 20 61 6e 20 65 72 72 | ..//.Implicitly.cast.from.an.err |
| 1d700 | 6f 72 20 73 65 74 3a 0a 20 20 20 20 66 6f 6f 20 3d 20 65 72 72 6f 72 2e 53 6f 6d 65 45 72 72 6f | or.set:.....foo.=.error.SomeErro |
| 1d720 | 72 3b 0a 0a 20 20 20 20 2f 2f 20 55 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 72 65 66 6c | r;......//.Use.compile-time.refl |
| 1d740 | 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 70 61 79 6c 6f 61 64 20 74 79 70 | ection.to.access.the.payload.typ |
| 1d760 | 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 0a 20 20 20 20 63 6f 6d 70 74 69 6d | e.of.an.error.union:.....comptim |
| 1d780 | 65 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 66 6f 6f 29 2e 50 61 79 6c 6f 61 64 20 3d 3d | e.assert(@typeOf(foo).Payload.== |
| 1d7a0 | 20 69 33 32 29 3b 0a 0a 20 20 20 20 2f 2f 20 55 73 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 | .i32);......//.Use.compile-time. |
| 1d7c0 | 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 65 72 72 6f 72 20 73 | reflection.to.access.the.error.s |
| 1d7e0 | 65 74 20 74 79 70 65 20 6f 66 20 61 6e 20 65 72 72 6f 72 20 75 6e 69 6f 6e 3a 0a 20 20 20 20 63 | et.type.of.an.error.union:.....c |
| 1d800 | 6f 6d 70 74 69 6d 65 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 66 6f 6f 29 2e 45 72 72 6f | omptime.assert(@typeOf(foo).Erro |
| 1d820 | 72 53 65 74 20 3d 3d 20 65 72 72 6f 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 | rSet.==.error);.}</code></pre><p |
| 1d840 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 | re><code.class="shell">$.zig.tes |
| 1d860 | 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 65 72 72 6f 72 20 75 6e 69 6f 6e 2e | t.test.zig.Test.1/1.error.union. |
| 1d880 | 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 | ..OK.</code></pre>........<p>TOD |
| 1d8a0 | 4f 20 74 68 65 20 3c 63 6f 64 65 3e 7c 7c 3c 2f 63 6f 64 65 3e 20 6f 70 65 72 61 74 6f 72 20 66 | O.the.<code>||</code>.operator.f |
| 1d8c0 | 6f 72 20 65 72 72 6f 72 20 73 65 74 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 | or.error.sets</p>.......<h3.id=" |
| 1d8e0 | 49 6e 66 65 72 72 65 64 2d 45 72 72 6f 72 2d 53 65 74 73 22 3e 49 6e 66 65 72 72 65 64 20 45 72 | Inferred-Error-Sets">Inferred.Er |
| 1d900 | 72 6f 72 20 53 65 74 73 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3c 2f 70 3e | ror.Sets</h3>........<p>TODO</p> |
| 1d920 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 72 72 | .....................<h2.id="Err |
| 1d940 | 6f 72 2d 52 65 74 75 72 6e 2d 54 72 61 63 65 73 22 3e 45 72 72 6f 72 20 52 65 74 75 72 6e 20 54 | or-Return-Traces">Error.Return.T |
| 1d960 | 72 61 63 65 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3c 2f 70 3e 0a 20 20 | races</h2>........<p>TODO</p>... |
| 1d980 | 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 4e 75 6c 6c 61 62 | ..................<h1.id="Nullab |
| 1d9a0 | 6c 65 73 22 3e 4e 75 6c 6c 61 62 6c 65 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | les">Nullables</h1>........<p>.. |
| 1d9c0 | 20 20 20 20 20 4f 6e 65 20 61 72 65 61 20 74 68 61 74 20 5a 69 67 20 70 72 6f 76 69 64 65 73 20 | .....One.area.that.Zig.provides. |
| 1d9e0 | 73 61 66 65 74 79 20 77 69 74 68 6f 75 74 20 63 6f 6d 70 72 6f 6d 69 73 69 6e 67 20 65 66 66 69 | safety.without.compromising.effi |
| 1da00 | 63 69 65 6e 63 79 20 6f 72 0a 20 20 20 20 20 20 72 65 61 64 61 62 69 6c 69 74 79 20 69 73 20 77 | ciency.or.......readability.is.w |
| 1da20 | 69 74 68 20 74 68 65 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | ith.the.nullable.type........</p |
| 1da40 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 71 75 65 73 74 69 6f 6e 20 6d | >.......<p>.......The.question.m |
| 1da60 | 61 72 6b 20 73 79 6d 62 6f 6c 69 7a 65 73 20 74 68 65 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 | ark.symbolizes.the.nullable.type |
| 1da80 | 2e 20 59 6f 75 20 63 61 6e 20 63 6f 6e 76 65 72 74 20 61 20 74 79 70 65 20 74 6f 20 61 20 6e 75 | ..You.can.convert.a.type.to.a.nu |
| 1daa0 | 6c 6c 61 62 6c 65 0a 20 20 20 20 20 20 74 79 70 65 20 62 79 20 70 75 74 74 69 6e 67 20 61 20 71 | llable.......type.by.putting.a.q |
| 1dac0 | 75 65 73 74 69 6f 6e 20 6d 61 72 6b 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 69 74 2c 20 6c 69 6b | uestion.mark.in.front.of.it,.lik |
| 1dae0 | 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | e.this:.......</p>.......<pre><c |
| 1db00 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 20 6e 6f 72 6d 61 6c 20 69 6e 74 65 67 65 | ode.class="zig">//.normal.intege |
| 1db20 | 72 0a 63 6f 6e 73 74 20 6e 6f 72 6d 61 6c 5f 69 6e 74 3a 20 69 33 32 20 3d 20 31 32 33 34 3b 0a | r.const.normal_int:.i32.=.1234;. |
| 1db40 | 0a 2f 2f 20 6e 75 6c 6c 61 62 6c 65 20 69 6e 74 65 67 65 72 0a 63 6f 6e 73 74 20 6e 75 6c 6c 61 | .//.nullable.integer.const.nulla |
| 1db60 | 62 6c 65 5f 69 6e 74 3a 20 3f 69 33 32 20 3d 20 35 36 37 38 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | ble_int:.?i32.=.5678;</code></pr |
| 1db80 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 77 20 74 68 65 20 76 61 72 69 61 | e>.......<p>.......Now.the.varia |
| 1dba0 | 62 6c 65 20 3c 63 6f 64 65 3e 6e 75 6c 6c 61 62 6c 65 5f 69 6e 74 3c 2f 63 6f 64 65 3e 20 63 6f | ble.<code>nullable_int</code>.co |
| 1dbc0 | 75 6c 64 20 62 65 20 61 6e 20 3c 63 6f 64 65 3e 69 33 32 3c 2f 63 6f 64 65 3e 2c 20 6f 72 20 3c | uld.be.an.<code>i32</code>,.or.< |
| 1dbe0 | 63 6f 64 65 3e 6e 75 6c 6c 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | code>null</code>........</p>.... |
| 1dc00 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 20 6f 66 20 69 6e 74 65 67 65 72 73 | ...<p>.......Instead.of.integers |
| 1dc20 | 2c 20 6c 65 74 27 73 20 74 61 6c 6b 20 61 62 6f 75 74 20 70 6f 69 6e 74 65 72 73 2e 20 4e 75 6c | ,.let's.talk.about.pointers..Nul |
| 1dc40 | 6c 20 72 65 66 65 72 65 6e 63 65 73 20 61 72 65 20 74 68 65 20 73 6f 75 72 63 65 20 6f 66 20 6d | l.references.are.the.source.of.m |
| 1dc60 | 61 6e 79 20 72 75 6e 74 69 6d 65 0a 20 20 20 20 20 20 65 78 63 65 70 74 69 6f 6e 73 2c 20 61 6e | any.runtime.......exceptions,.an |
| 1dc80 | 64 20 65 76 65 6e 20 73 74 61 6e 64 20 61 63 63 75 73 65 64 20 6f 66 20 62 65 69 6e 67 0a 20 20 | d.even.stand.accused.of.being... |
| 1dca0 | 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 6c 75 63 69 64 63 68 | ....<a.href="https://www.lucidch |
| 1dcc0 | 61 72 74 2e 63 6f 6d 2f 74 65 63 68 62 6c 6f 67 2f 32 30 31 35 2f 30 38 2f 33 31 2f 74 68 65 2d | art.com/techblog/2015/08/31/the- |
| 1dce0 | 77 6f 72 73 74 2d 6d 69 73 74 61 6b 65 2d 6f 66 2d 63 6f 6d 70 75 74 65 72 2d 73 63 69 65 6e 63 | worst-mistake-of-computer-scienc |
| 1dd00 | 65 2f 22 3e 74 68 65 20 77 6f 72 73 74 20 6d 69 73 74 61 6b 65 20 6f 66 20 63 6f 6d 70 75 74 65 | e/">the.worst.mistake.of.compute |
| 1dd20 | 72 20 73 63 69 65 6e 63 65 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | r.science</a>........</p>....... |
| 1dd40 | 3c 70 3e 5a 69 67 20 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 74 68 65 6d 2e 3c 2f 70 3e 0a 20 | <p>Zig.does.not.have.them.</p>.. |
| 1dd60 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 73 74 65 61 64 2c 20 79 6f 75 20 63 61 6e 20 | .....<p>.......Instead,.you.can. |
| 1dd80 | 75 73 65 20 61 20 6e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e 74 65 72 2e 20 54 68 69 73 20 73 65 63 | use.a.nullable.pointer..This.sec |
| 1dda0 | 72 65 74 6c 79 20 63 6f 6d 70 69 6c 65 73 20 64 6f 77 6e 20 74 6f 20 61 20 6e 6f 72 6d 61 6c 20 | retly.compiles.down.to.a.normal. |
| 1ddc0 | 70 6f 69 6e 74 65 72 2c 0a 20 20 20 20 20 20 73 69 6e 63 65 20 77 65 20 6b 6e 6f 77 20 77 65 20 | pointer,.......since.we.know.we. |
| 1dde0 | 63 61 6e 20 75 73 65 20 30 20 61 73 20 74 68 65 20 6e 75 6c 6c 20 76 61 6c 75 65 20 66 6f 72 20 | can.use.0.as.the.null.value.for. |
| 1de00 | 74 68 65 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 2e 20 42 75 74 20 74 68 65 20 63 6f 6d 70 69 | the.nullable.type..But.the.compi |
| 1de20 | 6c 65 72 0a 20 20 20 20 20 20 63 61 6e 20 63 68 65 63 6b 20 79 6f 75 72 20 77 6f 72 6b 20 61 6e | ler.......can.check.your.work.an |
| 1de40 | 64 20 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 64 6f 6e 27 74 20 61 73 73 69 67 6e 20 6e 75 6c | d.make.sure.you.don't.assign.nul |
| 1de60 | 6c 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 63 61 6e 27 74 20 62 65 20 6e 75 6c | l.to.something.that.can't.be.nul |
| 1de80 | 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 79 | l........</p>.......<p>.......Ty |
| 1dea0 | 70 69 63 61 6c 6c 79 20 74 68 65 20 64 6f 77 6e 73 69 64 65 20 6f 66 20 6e 6f 74 20 68 61 76 69 | pically.the.downside.of.not.havi |
| 1dec0 | 6e 67 20 6e 75 6c 6c 20 69 73 20 74 68 61 74 20 69 74 20 6d 61 6b 65 73 20 74 68 65 20 63 6f 64 | ng.null.is.that.it.makes.the.cod |
| 1dee0 | 65 20 6d 6f 72 65 20 76 65 72 62 6f 73 65 20 74 6f 0a 20 20 20 20 20 20 77 72 69 74 65 2e 20 42 | e.more.verbose.to.......write..B |
| 1df00 | 75 74 2c 20 6c 65 74 27 73 20 63 6f 6d 70 61 72 65 20 73 6f 6d 65 20 65 71 75 69 76 61 6c 65 6e | ut,.let's.compare.some.equivalen |
| 1df20 | 74 20 43 20 63 6f 64 65 20 61 6e 64 20 5a 69 67 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | t.C.code.and.Zig.code........</p |
| 1df40 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 61 73 6b 3a 20 63 61 6c 6c 20 6d 61 6c | >.......<p>.......Task:.call.mal |
| 1df60 | 6c 6f 63 2c 20 69 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 6e 75 6c 6c 2c 20 72 65 74 75 | loc,.if.the.result.is.null,.retu |
| 1df80 | 72 6e 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 43 20 63 | rn.null........</p>.......<p>C.c |
| 1dfa0 | 6f 64 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ode</p>.......<pre><code.class=" |
| 1dfc0 | 63 70 70 22 3e 2f 2f 20 6d 61 6c 6c 6f 63 20 70 72 6f 74 6f 74 79 70 65 20 69 6e 63 6c 75 64 65 | cpp">//.malloc.prototype.include |
| 1dfe0 | 64 20 66 6f 72 20 72 65 66 65 72 65 6e 63 65 0a 76 6f 69 64 20 2a 6d 61 6c 6c 6f 63 28 73 69 7a | d.for.reference.void.*malloc(siz |
| 1e000 | 65 5f 74 20 73 69 7a 65 29 3b 0a 0a 73 74 72 75 63 74 20 46 6f 6f 20 2a 64 6f 5f 61 5f 74 68 69 | e_t.size);..struct.Foo.*do_a_thi |
| 1e020 | 6e 67 28 76 6f 69 64 29 20 7b 0a 20 20 20 20 63 68 61 72 20 2a 70 74 72 20 3d 20 6d 61 6c 6c 6f | ng(void).{.....char.*ptr.=.mallo |
| 1e040 | 63 28 31 32 33 34 29 3b 0a 20 20 20 20 69 66 20 28 21 70 74 72 29 20 72 65 74 75 72 6e 20 4e 55 | c(1234);.....if.(!ptr).return.NU |
| 1e060 | 4c 4c 3b 0a 20 20 20 20 2f 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | LL;.....//.....}</code></pre>... |
| 1e080 | 20 20 20 20 3c 70 3e 5a 69 67 20 63 6f 64 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | ....<p>Zig.code</p>.......<pre>< |
| 1e0a0 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 20 6d 61 6c 6c 6f 63 20 70 72 6f 74 6f | code.class="zig">//.malloc.proto |
| 1e0c0 | 74 79 70 65 20 69 6e 63 6c 75 64 65 64 20 66 6f 72 20 72 65 66 65 72 65 6e 63 65 0a 65 78 74 65 | type.included.for.reference.exte |
| 1e0e0 | 72 6e 20 66 6e 20 6d 61 6c 6c 6f 63 28 73 69 7a 65 3a 20 73 69 7a 65 5f 74 29 20 3f 26 61 6d 70 | rn.fn.malloc(size:.size_t).?& |
| 1e100 | 3b 75 38 3b 0a 0a 66 6e 20 64 6f 41 54 68 69 6e 67 28 29 20 3f 26 61 6d 70 3b 46 6f 6f 20 7b 0a | ;u8;..fn.doAThing().?&Foo.{. |
| 1e120 | 20 20 20 20 63 6f 6e 73 74 20 70 74 72 20 3d 20 6d 61 6c 6c 6f 63 28 31 32 33 34 29 20 3f 3f 20 | ....const.ptr.=.malloc(1234).??. |
| 1e140 | 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 20 20 20 20 2f 2f 20 2e 2e 2e 0a 7d 3c 2f 63 6f 64 65 3e | return.null;.....//.....}</code> |
| 1e160 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 48 65 72 65 2c 20 5a | </pre>.......<p>.........Here,.Z |
| 1e180 | 69 67 20 69 73 20 61 74 20 6c 65 61 73 74 20 61 73 20 63 6f 6e 76 65 6e 69 65 6e 74 2c 20 69 66 | ig.is.at.least.as.convenient,.if |
| 1e1a0 | 20 6e 6f 74 20 6d 6f 72 65 2c 20 74 68 61 6e 20 43 2e 20 41 6e 64 2c 20 74 68 65 20 74 79 70 65 | .not.more,.than.C..And,.the.type |
| 1e1c0 | 20 6f 66 20 22 70 74 72 22 0a 20 20 20 20 20 20 20 20 69 73 20 3c 63 6f 64 65 3e 26 61 6d 70 3b | .of."ptr".........is.<code>& |
| 1e1e0 | 75 38 3c 2f 63 6f 64 65 3e 20 3c 65 6d 3e 6e 6f 74 3c 2f 65 6d 3e 20 3c 63 6f 64 65 3e 3f 26 61 | u8</code>.<em>not</em>.<code>?&a |
| 1e200 | 6d 70 3b 75 38 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 3c 63 6f 64 65 3e 3f 3f 3c 2f 63 6f 64 65 | mp;u8</code>..The.<code>??</code |
| 1e220 | 3e 20 6f 70 65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 75 6e 77 72 61 70 70 65 64 20 74 68 65 | >.operator.........unwrapped.the |
| 1e240 | 20 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 3c 63 6f | .nullable.type.and.therefore.<co |
| 1e260 | 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 | de>ptr</code>.is.guaranteed.to.b |
| 1e280 | 65 20 6e 6f 6e 2d 6e 75 6c 6c 20 65 76 65 72 79 77 68 65 72 65 0a 20 20 20 20 20 20 20 20 69 74 | e.non-null.everywhere.........it |
| 1e2a0 | 20 69 73 20 75 73 65 64 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 | .is.used.in.the.function........ |
| 1e2c0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 54 68 65 20 6f 74 68 65 72 | </p>.......<p>.........The.other |
| 1e2e0 | 20 66 6f 72 6d 20 6f 66 20 63 68 65 63 6b 69 6e 67 20 61 67 61 69 6e 73 74 20 4e 55 4c 4c 20 79 | .form.of.checking.against.NULL.y |
| 1e300 | 6f 75 20 6d 69 67 68 74 20 73 65 65 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 | ou.might.see.looks.like.this:... |
| 1e320 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | ....</p>.......<pre><code.class= |
| 1e340 | 22 63 70 70 22 3e 76 6f 69 64 20 64 6f 5f 61 5f 74 68 69 6e 67 28 73 74 72 75 63 74 20 46 6f 6f | "cpp">void.do_a_thing(struct.Foo |
| 1e360 | 20 2a 66 6f 6f 29 20 7b 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 0a 0a 20 | .*foo).{.....//.do.some.stuff... |
| 1e380 | 20 20 20 69 66 20 28 66 6f 6f 29 20 7b 0a 20 20 20 20 20 20 20 20 64 6f 5f 73 6f 6d 65 74 68 69 | ...if.(foo).{.........do_somethi |
| 1e3a0 | 6e 67 5f 77 69 74 68 5f 66 6f 6f 28 66 6f 6f 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 | ng_with_foo(foo);.....}......//. |
| 1e3c0 | 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | do.some.stuff.}</code></pre>.... |
| 1e3e0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 20 20 49 6e 20 5a 69 67 20 79 6f 75 20 63 61 6e 20 61 63 | ...<p>.........In.Zig.you.can.ac |
| 1e400 | 63 6f 6d 70 6c 69 73 68 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 3a 0a 20 20 20 20 20 20 3c | complish.the.same.thing:.......< |
| 1e420 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | /p>.......<pre><code.class="zig" |
| 1e440 | 3e 66 6e 20 64 6f 41 54 68 69 6e 67 28 6e 75 6c 6c 61 62 6c 65 5f 66 6f 6f 3a 20 3f 26 61 6d 70 | >fn.doAThing(nullable_foo:.?& |
| 1e460 | 3b 46 6f 6f 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 | ;Foo).void.{.....//.do.some.stuf |
| 1e480 | 66 0a 0a 20 20 20 20 69 66 20 28 6e 75 6c 6c 61 62 6c 65 5f 66 6f 6f 29 20 7c 66 6f 6f 7c 20 7b | f......if.(nullable_foo).|foo|.{ |
| 1e4a0 | 0a 20 20 20 20 20 20 64 6f 53 6f 6d 65 74 68 69 6e 67 57 69 74 68 46 6f 6f 28 66 6f 6f 29 3b 0a | .......doSomethingWithFoo(foo);. |
| 1e4c0 | 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 64 6f 20 73 6f 6d 65 20 73 74 75 66 66 0a 7d 3c 2f 63 | ....}......//.do.some.stuff.}</c |
| 1e4e0 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 6e 63 65 20 | ode></pre>.......<p>.......Once. |
| 1e500 | 61 67 61 69 6e 2c 20 74 68 65 20 6e 6f 74 61 62 6c 65 20 74 68 69 6e 67 20 68 65 72 65 20 69 73 | again,.the.notable.thing.here.is |
| 1e520 | 20 74 68 61 74 20 69 6e 73 69 64 65 20 74 68 65 20 69 66 20 62 6c 6f 63 6b 2c 0a 20 20 20 20 20 | .that.inside.the.if.block,...... |
| 1e540 | 20 3c 63 6f 64 65 3e 66 6f 6f 3c 2f 63 6f 64 65 3e 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 | .<code>foo</code>.is.no.longer.a |
| 1e560 | 20 6e 75 6c 6c 61 62 6c 65 20 70 6f 69 6e 74 65 72 2c 20 69 74 20 69 73 20 61 20 70 6f 69 6e 74 | .nullable.pointer,.it.is.a.point |
| 1e580 | 65 72 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 6e 75 6c 6c 2e 0a | er,.which.......cannot.be.null.. |
| 1e5a0 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 6e 65 20 62 | ......</p>.......<p>.......One.b |
| 1e5c0 | 65 6e 65 66 69 74 20 74 6f 20 74 68 69 73 20 69 73 20 74 68 61 74 20 66 75 6e 63 74 69 6f 6e 73 | enefit.to.this.is.that.functions |
| 1e5e0 | 20 77 68 69 63 68 20 74 61 6b 65 20 70 6f 69 6e 74 65 72 73 20 61 73 20 61 72 67 75 6d 65 6e 74 | .which.take.pointers.as.argument |
| 1e600 | 73 20 63 61 6e 0a 20 20 20 20 20 20 62 65 20 61 6e 6e 6f 74 61 74 65 64 20 77 69 74 68 20 74 68 | s.can.......be.annotated.with.th |
| 1e620 | 65 20 22 6e 6f 6e 6e 75 6c 6c 22 20 61 74 74 72 69 62 75 74 65 20 2d 20 3c 63 6f 64 65 3e 5f 5f | e."nonnull".attribute.-.<code>__ |
| 1e640 | 61 74 74 72 69 62 75 74 65 5f 5f 28 28 6e 6f 6e 6e 75 6c 6c 29 29 3c 2f 63 6f 64 65 3e 20 69 6e | attribute__((nonnull))</code>.in |
| 1e660 | 0a 20 20 20 20 20 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 63 63 2e 67 6e 75 2e | .......<a.href="https://gcc.gnu. |
| 1e680 | 6f 72 67 2f 6f 6e 6c 69 6e 65 64 6f 63 73 2f 67 63 63 2d 34 2e 30 2e 30 2f 67 63 63 2f 46 75 6e | org/onlinedocs/gcc-4.0.0/gcc/Fun |
| 1e6a0 | 63 74 69 6f 6e 2d 41 74 74 72 69 62 75 74 65 73 2e 68 74 6d 6c 22 3e 47 43 43 3c 2f 61 3e 2e 0a | ction-Attributes.html">GCC</a>.. |
| 1e6c0 | 20 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 63 61 6e 20 73 6f 6d 65 74 69 6d 65 | ......The.optimizer.can.sometime |
| 1e6e0 | 73 20 6d 61 6b 65 20 62 65 74 74 65 72 20 64 65 63 69 73 69 6f 6e 73 20 6b 6e 6f 77 69 6e 67 20 | s.make.better.decisions.knowing. |
| 1e700 | 74 68 61 74 20 70 6f 69 6e 74 65 72 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 20 20 20 63 61 6e | that.pointer.arguments.......can |
| 1e720 | 6e 6f 74 20 62 65 20 6e 75 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 | not.be.null........</p>.......<h |
| 1e740 | 32 20 69 64 3d 22 4e 75 6c 6c 61 62 6c 65 2d 54 79 70 65 22 3e 4e 75 6c 6c 61 62 6c 65 20 54 79 | 2.id="Nullable-Type">Nullable.Ty |
| 1e760 | 70 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 20 6e 75 6c 6c 61 62 6c 65 20 69 73 20 | pe</h2>........<p>A.nullable.is. |
| 1e780 | 63 72 65 61 74 65 64 20 62 79 20 70 75 74 74 69 6e 67 20 3c 63 6f 64 65 3e 3f 3c 2f 63 6f 64 65 | created.by.putting.<code>?</code |
| 1e7a0 | 3e 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 61 20 74 79 70 65 2e 20 59 6f 75 20 63 61 6e 20 75 73 | >.in.front.of.a.type..You.can.us |
| 1e7c0 | 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 20 20 20 20 20 72 65 66 6c 65 63 74 69 6f 6e 20 | e.compile-time.......reflection. |
| 1e7e0 | 74 6f 20 61 63 63 65 73 73 20 74 68 65 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 20 6e 75 | to.access.the.child.type.of.a.nu |
| 1e800 | 6c 6c 61 62 6c 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 | llable:</p>.......<p.class="file |
| 1e820 | 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | ">test.zig</p><pre><code.class=" |
| 1e840 | 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f | zig">const.assert.=.@import(&quo |
| 1e860 | 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 | t;std").debug.assert;..test |
| 1e880 | 20 26 71 75 6f 74 3b 6e 75 6c 6c 61 62 6c 65 20 74 79 70 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 | ."nullable.type".{.... |
| 1e8a0 | 20 2f 2f 20 44 65 63 6c 61 72 65 20 61 20 6e 75 6c 6c 61 62 6c 65 20 61 6e 64 20 69 6d 70 6c 69 | .//.Declare.a.nullable.and.impli |
| 1e8c0 | 63 69 74 6c 79 20 63 61 73 74 20 66 72 6f 6d 20 6e 75 6c 6c 3a 0a 20 20 20 20 76 61 72 20 66 6f | citly.cast.from.null:.....var.fo |
| 1e8e0 | 6f 3a 20 3f 69 33 32 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 2f 2f 20 49 6d 70 6c 69 63 69 74 | o:.?i32.=.null;......//.Implicit |
| 1e900 | 6c 79 20 63 61 73 74 20 66 72 6f 6d 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 20 6e 75 6c | ly.cast.from.child.type.of.a.nul |
| 1e920 | 6c 61 62 6c 65 0a 20 20 20 20 66 6f 6f 20 3d 20 31 32 33 34 3b 0a 0a 20 20 20 20 2f 2f 20 55 73 | lable.....foo.=.1234;......//.Us |
| 1e940 | 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 72 65 66 6c 65 63 74 69 6f 6e 20 74 6f 20 61 63 63 | e.compile-time.reflection.to.acc |
| 1e960 | 65 73 73 20 74 68 65 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 74 68 65 20 6e 75 6c 6c 61 62 | ess.the.child.type.of.the.nullab |
| 1e980 | 6c 65 3a 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 61 73 73 65 72 74 28 40 74 79 70 65 4f 66 28 | le:.....comptime.assert(@typeOf( |
| 1e9a0 | 66 6f 6f 29 2e 43 68 69 6c 64 20 3d 3d 20 69 33 32 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | foo).Child.==.i32);.}</code></pr |
| 1e9c0 | 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 | e><pre><code.class="shell">$.zig |
| 1e9e0 | 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 6e 75 6c 6c 61 62 6c 65 | .test.test.zig.Test.1/1.nullable |
| 1ea00 | 20 74 79 70 65 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 | .type...OK.</code></pre>........ |
| 1ea20 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 43 61 73 74 69 6e 67 22 3e 43 | ..............<h1.id="Casting">C |
| 1ea40 | 61 73 74 69 6e 67 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c | asting</h1>........<p>TODO:.expl |
| 1ea60 | 61 69 6e 20 69 6d 70 6c 69 63 69 74 20 76 73 20 65 78 70 6c 69 63 69 74 20 63 61 73 74 69 6e 67 | ain.implicit.vs.explicit.casting |
| 1ea80 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 72 65 73 6f 6c 76 65 20 70 65 65 72 | </p>.......<p>TODO:.resolve.peer |
| 1eaa0 | 20 74 79 70 65 73 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f | .types.builtin</p>.......<p>TODO |
| 1eac0 | 3a 20 74 72 75 6e 63 61 74 65 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | :.truncate.builtin</p>.......<p> |
| 1eae0 | 54 4f 44 4f 3a 20 62 69 74 63 61 73 74 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 | TODO:.bitcast.builtin</p>....... |
| 1eb00 | 3c 70 3e 54 4f 44 4f 3a 20 69 6e 74 20 74 6f 20 70 74 72 20 62 75 69 6c 74 69 6e 3c 2f 70 3e 0a | <p>TODO:.int.to.ptr.builtin</p>. |
| 1eb20 | 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 74 72 20 74 6f 20 69 6e 74 20 62 75 69 6c 74 69 | ......<p>TODO:.ptr.to.int.builti |
| 1eb40 | 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 74 72 63 61 73 74 20 62 75 69 | n</p>.......<p>TODO:.ptrcast.bui |
| 1eb60 | 6c 74 69 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 | ltin</p>.......<p>TODO:.explain. |
| 1eb80 | 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c 73 20 76 73 20 63 6f 6e 63 72 65 74 65 20 74 79 70 65 | number.literals.vs.concrete.type |
| 1eba0 | 73 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 76 6f 69 64 22 | s</p>..............<h1.id="void" |
| 1ebc0 | 3e 76 6f 69 64 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 61 73 73 69 67 | >void</h1>........<p>TODO:.assig |
| 1ebe0 | 6e 69 6e 67 20 76 6f 69 64 20 68 61 73 20 6e 6f 20 63 6f 64 65 67 65 6e 3c 2f 70 3e 0a 20 20 20 | ning.void.has.no.codegen</p>.... |
| 1ec00 | 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 68 61 73 68 6d 61 70 20 77 69 74 68 20 76 6f 69 64 20 62 65 | ...<p>TODO:.hashmap.with.void.be |
| 1ec20 | 63 6f 6d 65 73 20 61 20 73 65 74 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 64 | comes.a.set</p>.......<p>TODO:.d |
| 1ec40 | 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 63 5f 76 6f 69 64 20 61 6e 64 20 76 6f 69 | ifference.between.c_void.and.voi |
| 1ec60 | 64 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 76 6f 69 64 20 69 73 20 74 68 65 | d</p>.......<p>TODO:.void.is.the |
| 1ec80 | 20 64 65 66 61 75 6c 74 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 66 75 6e 63 74 69 6f | .default.return.value.of.functio |
| 1eca0 | 6e 73 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 66 75 6e 63 74 69 6f 6e 73 20 | ns</p>.......<p>TODO:.functions. |
| 1ecc0 | 72 65 71 75 69 72 65 20 61 73 73 69 67 6e 69 6e 67 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c | require.assigning.the.return.val |
| 1ece0 | 75 65 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 74 68 69 73 | ue</p>..............<h1.id="this |
| 1ed00 | 22 3e 74 68 69 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d | ">this</h1>........<p>TODO:.exam |
| 1ed20 | 70 6c 65 20 6f 66 20 74 68 69 73 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 53 65 6c 66 20 73 74 | ple.of.this.referring.to.Self.st |
| 1ed40 | 72 75 63 74 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 | ruct</p>.......<p>TODO:.example. |
| 1ed60 | 6f 66 20 74 68 69 73 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 72 65 63 75 72 73 69 6f 6e 20 66 | of.this.referring.to.recursion.f |
| 1ed80 | 75 6e 63 74 69 6f 6e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 | unction</p>.......<p>TODO:.examp |
| 1eda0 | 6c 65 20 6f 66 20 74 68 69 73 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 62 61 73 69 63 20 62 6c | le.of.this.referring.to.basic.bl |
| 1edc0 | 6f 63 6b 20 66 6f 72 20 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 70 3e 0a 20 20 | ock.for.@setRuntimeSafety</p>... |
| 1ede0 | 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 63 6f 6d 70 74 69 6d 65 22 3e 63 6f 6d | ...........<h1.id="comptime">com |
| 1ee00 | 70 74 69 6d 65 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 | ptime</h1>........<p>.......Zig. |
| 1ee20 | 70 6c 61 63 65 73 20 69 6d 70 6f 72 74 61 6e 63 65 20 6f 6e 20 74 68 65 20 63 6f 6e 63 65 70 74 | places.importance.on.the.concept |
| 1ee40 | 20 6f 66 20 77 68 65 74 68 65 72 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6b 6e 6f | .of.whether.an.expression.is.kno |
| 1ee60 | 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 54 68 65 72 65 20 | wn.at.compile-time........There. |
| 1ee80 | 61 72 65 20 61 20 66 65 77 20 64 69 66 66 65 72 65 6e 74 20 70 6c 61 63 65 73 20 74 68 69 73 20 | are.a.few.different.places.this. |
| 1eea0 | 63 6f 6e 63 65 70 74 20 69 73 20 75 73 65 64 2c 20 61 6e 64 20 74 68 65 73 65 20 62 75 69 6c 64 | concept.is.used,.and.these.build |
| 1eec0 | 69 6e 67 20 62 6c 6f 63 6b 73 20 61 72 65 20 75 73 65 64 0a 20 20 20 20 20 20 74 6f 20 6b 65 65 | ing.blocks.are.used.......to.kee |
| 1eee0 | 70 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 73 6d 61 6c 6c 2c 20 72 65 61 64 61 62 6c 65 2c 20 | p.the.language.small,.readable,. |
| 1ef00 | 61 6e 64 20 70 6f 77 65 72 66 75 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | and.powerful........</p>.......< |
| 1ef20 | 68 32 20 69 64 3d 22 49 6e 74 72 6f 64 75 63 69 6e 67 2d 74 68 65 2d 43 6f 6d 70 69 6c 65 2d 54 | h2.id="Introducing-the-Compile-T |
| 1ef40 | 69 6d 65 2d 43 6f 6e 63 65 70 74 22 3e 49 6e 74 72 6f 64 75 63 69 6e 67 20 74 68 65 20 43 6f 6d | ime-Concept">Introducing.the.Com |
| 1ef60 | 70 69 6c 65 2d 54 69 6d 65 20 43 6f 6e 63 65 70 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 68 | pile-Time.Concept</h2>........<h |
| 1ef80 | 33 20 69 64 3d 22 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 50 61 72 61 6d 65 74 65 72 73 22 3e 43 | 3.id="Compile-Time-Parameters">C |
| 1efa0 | 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 50 61 72 61 6d 65 74 65 72 73 3c 2f 68 33 3e 0a 0a 20 20 20 | ompile-Time.Parameters</h3>..... |
| 1efc0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 70 61 72 61 6d 65 | ...<p>.......Compile-time.parame |
| 1efe0 | 74 65 72 73 20 69 73 20 68 6f 77 20 5a 69 67 20 69 6d 70 6c 65 6d 65 6e 74 73 20 67 65 6e 65 72 | ters.is.how.Zig.implements.gener |
| 1f000 | 69 63 73 2e 20 49 74 20 69 73 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 64 75 63 6b 20 74 79 70 | ics..It.is.compile-time.duck.typ |
| 1f020 | 69 6e 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | ing........</p>.......<pre><code |
| 1f040 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 6d 61 78 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 | .class="zig">fn.max(comptime.T:. |
| 1f060 | 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 54 20 7b 0a 20 20 20 20 72 65 74 75 72 6e | type,.a:.T,.b:.T).T.{.....return |
| 1f080 | 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 61 20 65 6c 73 65 20 62 3b 0a 7d 0a 66 6e 20 67 69 | .if.(a.>.b).a.else.b;.}.fn.gi |
| 1f0a0 | 6d 6d 65 54 68 65 42 69 67 67 65 72 46 6c 6f 61 74 28 61 3a 20 66 33 32 2c 20 62 3a 20 66 33 32 | mmeTheBiggerFloat(a:.f32,.b:.f32 |
| 1f0c0 | 29 20 66 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 6d 61 78 28 66 33 32 2c 20 61 2c 20 62 | ).f32.{.....return.max(f32,.a,.b |
| 1f0e0 | 29 3b 0a 7d 0a 66 6e 20 67 69 6d 6d 65 54 68 65 42 69 67 67 65 72 49 6e 74 65 67 65 72 28 61 3a | );.}.fn.gimmeTheBiggerInteger(a: |
| 1f100 | 20 75 36 34 2c 20 62 3a 20 75 36 34 29 20 75 36 34 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 6d | .u64,.b:.u64).u64.{.....return.m |
| 1f120 | 61 78 28 75 36 34 2c 20 61 2c 20 62 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | ax(u64,.a,.b);.}</code></pre>... |
| 1f140 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 67 2c 20 74 79 70 65 73 20 61 72 65 20 | ....<p>.......In.Zig,.types.are. |
| 1f160 | 66 69 72 73 74 2d 63 6c 61 73 73 20 63 69 74 69 7a 65 6e 73 2e 20 54 68 65 79 20 63 61 6e 20 62 | first-class.citizens..They.can.b |
| 1f180 | 65 20 61 73 73 69 67 6e 65 64 20 74 6f 20 76 61 72 69 61 62 6c 65 73 2c 20 70 61 73 73 65 64 20 | e.assigned.to.variables,.passed. |
| 1f1a0 | 61 73 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 66 75 6e 63 74 69 6f 6e 73 2c 0a 20 20 20 20 | as.parameters.to.functions,..... |
| 1f1c0 | 20 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 66 75 6e 63 74 69 6f 6e 73 2e 20 48 | ..and.returned.from.functions..H |
| 1f1e0 | 6f 77 65 76 65 72 2c 20 74 68 65 79 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 69 6e | owever,.they.can.only.be.used.in |
| 1f200 | 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 68 69 63 68 20 61 72 65 20 6b 6e 6f 77 6e 20 61 74 20 | .expressions.which.are.known.at. |
| 1f220 | 3c 65 6d 3e 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3c 2f 65 6d 3e 2c 0a 20 20 20 20 20 20 77 68 69 | <em>compile-time</em>,.......whi |
| 1f240 | 63 68 20 69 73 20 77 68 79 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 3c 63 6f 64 65 3e 54 3c | ch.is.why.the.parameter.<code>T< |
| 1f260 | 2f 63 6f 64 65 3e 20 69 6e 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 74 20 6d 75 73 74 | /code>.in.the.above.snippet.must |
| 1f280 | 20 62 65 20 6d 61 72 6b 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f | .be.marked.with.<code>comptime</ |
| 1f2a0 | 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | code>........</p>.......<p>..... |
| 1f2c0 | 20 20 41 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 70 61 72 61 6d 65 | ..A.<code>comptime</code>.parame |
| 1f2e0 | 74 65 72 20 6d 65 61 6e 73 20 74 68 61 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | ter.means.that:.......</p>...... |
| 1f300 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 74 20 74 68 65 20 63 61 6c 6c 73 69 74 | .<ul>.........<li>At.the.callsit |
| 1f320 | 65 2c 20 74 68 65 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 6b 6e 6f 77 6e 20 61 74 20 63 6f | e,.the.value.must.be.known.at.co |
| 1f340 | 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 6f 72 20 69 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 | mpile-time,.or.it.is.a.compile.e |
| 1f360 | 72 72 6f 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 49 6e 20 74 68 65 20 66 75 | rror.</li>.........<li>In.the.fu |
| 1f380 | 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 | nction.definition,.the.value.is. |
| 1f3a0 | 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 | known.at.compile-time.</li>..... |
| 1f3c0 | 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | ..</ul>.......<p>.......</p>.... |
| 1f3e0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 77 65 20 | ...<p>.......For.example,.if.we. |
| 1f400 | 77 65 72 65 20 74 6f 20 69 6e 74 72 6f 64 75 63 65 20 61 6e 6f 74 68 65 72 20 66 75 6e 63 74 69 | were.to.introduce.another.functi |
| 1f420 | 6f 6e 20 74 6f 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 74 3a 0a 20 20 20 20 20 20 3c | on.to.the.above.snippet:.......< |
| 1f440 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a | /p>.......<p.class="file">test.z |
| 1f460 | 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 | ig</p><pre><code.class="zig">fn. |
| 1f480 | 6d 61 78 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 | max(comptime.T:.type,.a:.T,.b:.T |
| 1f4a0 | 29 20 54 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 61 | ).T.{.....return.if.(a.>.b).a |
| 1f4c0 | 20 65 6c 73 65 20 62 3b 0a 7d 0a 74 65 73 74 20 26 71 75 6f 74 3b 74 72 79 20 74 6f 20 70 61 73 | .else.b;.}.test."try.to.pas |
| 1f4e0 | 73 20 61 20 72 75 6e 74 69 6d 65 20 74 79 70 65 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 66 6f 6f | s.a.runtime.type".{.....foo |
| 1f500 | 28 66 61 6c 73 65 29 3b 0a 7d 0a 66 6e 20 66 6f 6f 28 63 6f 6e 64 69 74 69 6f 6e 3a 20 62 6f 6f | (false);.}.fn.foo(condition:.boo |
| 1f520 | 6c 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 6d 61 78 | l).void.{.....const.result.=.max |
| 1f540 | 28 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 66 33 32 20 65 6c 73 | (.........if.(condition).f32.els |
| 1f560 | 65 20 75 36 34 2c 0a 20 20 20 20 20 20 20 20 31 32 33 34 2c 0a 20 20 20 20 20 20 20 20 35 36 37 | e.u64,.........1234,.........567 |
| 1f580 | 38 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | 8);.}</code></pre><pre><code.cla |
| 1f5a0 | 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c | ss="shell">$.zig.test.test.zig.< |
| 1f5c0 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 | span.class="t0_1">/home/andy/dev |
| 1f5e0 | 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 39 3a 39 3a 20 3c 2f | /zig/docgen_tmp/test.zig:9:9:.</ |
| 1f600 | 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c | span><span.class="t31_1">error:< |
| 1f620 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 6e 61 62 6c 65 | /span><span.class="t0_1">.unable |
| 1f640 | 20 74 6f 20 65 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e | .to.evaluate.constant.expression |
| 1f660 | 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20 66 | </span>.........if.(condition).f |
| 1f680 | 33 32 20 65 6c 73 65 20 75 36 34 2c 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 | 32.else.u64,.........<span.class |
| 1f6a0 | 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | ="t32_1">^</span>.</code></pre>. |
| 1f6c0 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 61 6e 20 65 72 72 6f | .......<p>.......This.is.an.erro |
| 1f6e0 | 72 20 62 65 63 61 75 73 65 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 61 74 74 65 6d 70 74 | r.because.the.programmer.attempt |
| 1f700 | 65 64 20 74 6f 20 70 61 73 73 20 61 20 76 61 6c 75 65 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 61 74 | ed.to.pass.a.value.only.known.at |
| 1f720 | 20 72 75 6e 2d 74 69 6d 65 0a 20 20 20 20 20 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 | .run-time.......to.a.function.wh |
| 1f740 | 69 63 68 20 65 78 70 65 63 74 73 20 61 20 76 61 6c 75 65 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d | ich.expects.a.value.known.at.com |
| 1f760 | 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | pile-time........</p>.......<p>. |
| 1f780 | 20 20 20 20 20 20 41 6e 6f 74 68 65 72 20 77 61 79 20 74 6f 20 67 65 74 20 61 6e 20 65 72 72 6f | ......Another.way.to.get.an.erro |
| 1f7a0 | 72 20 69 73 20 69 66 20 77 65 20 70 61 73 73 20 61 20 74 79 70 65 20 74 68 61 74 20 76 69 6f 6c | r.is.if.we.pass.a.type.that.viol |
| 1f7c0 | 61 74 65 73 20 74 68 65 20 74 79 70 65 20 63 68 65 63 6b 65 72 20 77 68 65 6e 20 74 68 65 0a 20 | ates.the.type.checker.when.the.. |
| 1f7e0 | 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 6e 61 6c 79 7a 65 64 2e 20 54 68 69 73 20 | .....function.is.analyzed..This. |
| 1f800 | 69 73 20 77 68 61 74 20 69 74 20 6d 65 61 6e 73 20 74 6f 20 68 61 76 65 20 3c 65 6d 3e 63 6f 6d | is.what.it.means.to.have.<em>com |
| 1f820 | 70 69 6c 65 2d 74 69 6d 65 20 64 75 63 6b 20 74 79 70 69 6e 67 3c 2f 65 6d 3e 2e 0a 20 20 20 20 | pile-time.duck.typing</em>...... |
| 1f840 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 | ..</p>.......<p>.......For.examp |
| 1f860 | 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 | le:.......</p>.......<p.class="f |
| 1f880 | 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ile">test.zig</p><pre><code.clas |
| 1f8a0 | 73 3d 22 7a 69 67 22 3e 66 6e 20 6d 61 78 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c | s="zig">fn.max(comptime.T:.type, |
| 1f8c0 | 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 54 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 | .a:.T,.b:.T).T.{.....return.if.( |
| 1f8e0 | 61 20 26 67 74 3b 20 62 29 20 61 20 65 6c 73 65 20 62 3b 0a 7d 0a 74 65 73 74 20 26 71 75 6f 74 | a.>.b).a.else.b;.}.test." |
| 1f900 | 3b 74 72 79 20 74 6f 20 63 6f 6d 70 61 72 65 20 62 6f 6f 6c 73 26 71 75 6f 74 3b 20 7b 0a 20 20 | ;try.to.compare.bools".{... |
| 1f920 | 20 20 5f 20 3d 20 6d 61 78 28 62 6f 6f 6c 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 3c | .._.=.max(bool,.true,.false);.}< |
| 1f940 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 | /code></pre><pre><code.class="sh |
| 1f960 | 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 | ell">$.zig.test.test.zig.<span.c |
| 1f980 | 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 | lass="t0_1">/home/andy/dev/zig/d |
| 1f9a0 | 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 31 38 3a 20 3c 2f 73 70 61 6e 3e | ocgen_tmp/test.zig:2:18:.</span> |
| 1f9c0 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e | <span.class="t31_1">error:</span |
| 1f9e0 | 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 6f 70 65 72 61 74 6f 72 20 6e 6f | ><span.class="t0_1">.operator.no |
| 1fa00 | 74 20 61 6c 6c 6f 77 65 64 20 66 6f 72 20 74 79 70 65 20 27 62 6f 6f 6c 27 3c 2f 73 70 61 6e 3e | t.allowed.for.type.'bool'</span> |
| 1fa20 | 0a 20 20 20 20 72 65 74 75 72 6e 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 61 20 65 6c 73 65 | .....return.if.(a.>.b).a.else |
| 1fa40 | 20 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 | .b;..................<span.class |
| 1fa60 | 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | ="t32_1">^</span>.<span.class="t |
| 1fa80 | 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 | 0_1">/home/andy/dev/zig/docgen_t |
| 1faa0 | 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 31 32 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 | mp/test.zig:5:12:.</span><span.c |
| 1fac0 | 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 | lass="t36_1">note:</span><span.c |
| 1fae0 | 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 | lass="t0_1">.called.from.here</s |
| 1fb00 | 70 61 6e 3e 0a 20 20 20 20 5f 20 3d 20 6d 61 78 28 62 6f 6f 6c 2c 20 74 72 75 65 2c 20 66 61 6c | pan>....._.=.max(bool,.true,.fal |
| 1fb20 | 73 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 | se);............<span.class="t32 |
| 1fb40 | 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 | _1">^</span>.</code></pre>...... |
| 1fb60 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 4f 6e 20 74 68 65 20 66 6c 69 70 20 73 69 64 65 2c 20 69 6e | ..<p>.......On.the.flip.side,.in |
| 1fb80 | 73 69 64 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e 69 74 69 6f 6e 20 77 69 74 | side.the.function.definition.wit |
| 1fba0 | 68 20 74 68 65 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 70 61 72 61 | h.the.<code>comptime</code>.para |
| 1fbc0 | 6d 65 74 65 72 2c 20 74 68 65 0a 20 20 20 20 20 20 76 61 6c 75 65 20 69 73 20 6b 6e 6f 77 6e 20 | meter,.the.......value.is.known. |
| 1fbe0 | 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 | at.compile-time..This.means.that |
| 1fc00 | 20 77 65 20 61 63 74 75 61 6c 6c 79 20 63 6f 75 6c 64 20 6d 61 6b 65 20 74 68 69 73 20 77 6f 72 | .we.actually.could.make.this.wor |
| 1fc20 | 6b 20 66 6f 72 20 74 68 65 20 62 6f 6f 6c 20 74 79 70 65 0a 20 20 20 20 20 20 69 66 20 77 65 20 | k.for.the.bool.type.......if.we. |
| 1fc40 | 77 61 6e 74 65 64 20 74 6f 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 | wanted.to:.......</p>.......<p.c |
| 1fc60 | 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f | lass="file">test.zig</p><pre><co |
| 1fc80 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 6d 61 78 28 63 6f 6d 70 74 69 6d 65 20 54 | de.class="zig">fn.max(comptime.T |
| 1fca0 | 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 29 20 54 20 7b 0a 20 20 20 20 69 66 20 28 | :.type,.a:.T,.b:.T).T.{.....if.( |
| 1fcc0 | 54 20 3d 3d 20 62 6f 6f 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 20 6f 72 | T.==.bool).{.........return.a.or |
| 1fce0 | 20 62 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 61 20 26 67 74 3b 20 62 29 20 7b 0a 20 | .b;.....}.else.if.(a.>.b).{.. |
| 1fd00 | 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 | .......return.a;.....}.else.{... |
| 1fd20 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 62 3b 0a 20 20 20 20 7d 0a 7d 0a 74 65 73 74 20 26 71 75 | ......return.b;.....}.}.test.&qu |
| 1fd40 | 6f 74 3b 74 72 79 20 74 6f 20 63 6f 6d 70 61 72 65 20 62 6f 6f 6c 73 26 71 75 6f 74 3b 20 7b 0a | ot;try.to.compare.bools".{. |
| 1fd60 | 20 20 20 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 | ....@import("std").deb |
| 1fd80 | 75 67 2e 61 73 73 65 72 74 28 6d 61 78 28 62 6f 6f 6c 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29 | ug.assert(max(bool,.false,.true) |
| 1fda0 | 20 3d 3d 20 74 72 75 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 | .==.true);.}</code></pre><pre><c |
| 1fdc0 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 | ode.class="shell">$.zig.test.tes |
| 1fde0 | 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 74 72 79 20 74 6f 20 63 6f 6d 70 61 72 65 20 62 6f | t.zig.Test.1/1.try.to.compare.bo |
| 1fe00 | 6f 6c 73 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 | ols...OK.</code></pre>........<p |
| 1fe20 | 3e 0a 20 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 62 65 63 61 75 73 65 20 5a 69 67 20 69 | >.......This.works.because.Zig.i |
| 1fe40 | 6d 70 6c 69 63 69 74 6c 79 20 69 6e 6c 69 6e 65 73 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 | mplicitly.inlines.<code>if</code |
| 1fe60 | 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 68 65 6e 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e | >.expressions.when.the.condition |
| 1fe80 | 0a 20 20 20 20 20 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c | .......is.known.at.compile-time, |
| 1fea0 | 20 61 6e 64 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 74 68 61 | .and.the.compiler.guarantees.tha |
| 1fec0 | 74 20 69 74 20 77 69 6c 6c 20 73 6b 69 70 20 61 6e 61 6c 79 73 69 73 20 6f 66 0a 20 20 20 20 20 | t.it.will.skip.analysis.of...... |
| 1fee0 | 20 74 68 65 20 62 72 61 6e 63 68 20 6e 6f 74 20 74 61 6b 65 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 | .the.branch.not.taken........</p |
| 1ff00 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 | >.......<p>.......This.means.tha |
| 1ff20 | 74 20 74 68 65 20 61 63 74 75 61 6c 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 64 20 | t.the.actual.function.generated. |
| 1ff40 | 66 6f 72 20 3c 63 6f 64 65 3e 6d 61 78 3c 2f 63 6f 64 65 3e 20 69 6e 20 74 68 69 73 20 73 69 74 | for.<code>max</code>.in.this.sit |
| 1ff60 | 75 61 74 69 6f 6e 20 6c 6f 6f 6b 73 20 6c 69 6b 65 0a 20 20 20 20 20 20 74 68 69 73 3a 0a 20 20 | uation.looks.like.......this:... |
| 1ff80 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | ....</p>.......<pre><code.class= |
| 1ffa0 | 22 7a 69 67 22 3e 66 6e 20 6d 61 78 28 61 3a 20 62 6f 6f 6c 2c 20 62 3a 20 62 6f 6f 6c 29 20 62 | "zig">fn.max(a:.bool,.b:.bool).b |
| 1ffc0 | 6f 6f 6c 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 61 20 6f 72 20 62 3b 0a 7d 3c 2f 63 6f 64 65 | ool.{.....return.a.or.b;.}</code |
| 1ffe0 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 6c 6c 20 74 68 65 20 | ></pre>.......<p>.......All.the. |
| 20000 | 63 6f 64 65 20 74 68 61 74 20 64 65 61 6c 74 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 2d 74 69 6d | code.that.dealt.with.compile-tim |
| 20020 | 65 20 6b 6e 6f 77 6e 20 76 61 6c 75 65 73 20 69 73 20 65 6c 69 6d 69 6e 61 74 65 64 20 61 6e 64 | e.known.values.is.eliminated.and |
| 20040 | 20 77 65 20 61 72 65 20 6c 65 66 74 20 77 69 74 68 20 6f 6e 6c 79 0a 20 20 20 20 20 20 74 68 65 | .we.are.left.with.only.......the |
| 20060 | 20 6e 65 63 65 73 73 61 72 79 20 72 75 6e 2d 74 69 6d 65 20 63 6f 64 65 20 74 6f 20 61 63 63 6f | .necessary.run-time.code.to.acco |
| 20080 | 6d 70 6c 69 73 68 20 74 68 65 20 74 61 73 6b 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | mplish.the.task........</p>..... |
| 200a0 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 74 68 65 20 73 61 6d 65 20 | ..<p>.......This.works.the.same. |
| 200c0 | 77 61 79 20 66 6f 72 20 3c 63 6f 64 65 3e 73 77 69 74 63 68 3c 2f 63 6f 64 65 3e 20 65 78 70 72 | way.for.<code>switch</code>.expr |
| 200e0 | 65 73 73 69 6f 6e 73 20 2d 20 74 68 65 79 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 69 6e | essions.-.they.are.implicitly.in |
| 20100 | 6c 69 6e 65 64 0a 20 20 20 20 20 20 77 68 65 6e 20 74 68 65 20 74 61 72 67 65 74 20 65 78 70 72 | lined.......when.the.target.expr |
| 20120 | 65 73 73 69 6f 6e 20 69 73 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 2e 0a 20 20 | ession.is.compile-time.known.... |
| 20140 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 6f | ....</p>..............<h3.id="Co |
| 20160 | 6d 70 69 6c 65 2d 54 69 6d 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 | mpile-Time-Variables">Compile-Ti |
| 20180 | 6d 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | me.Variables</h3>........<p>.... |
| 201a0 | 20 20 20 49 6e 20 5a 69 67 2c 20 74 68 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 20 6c 61 | ...In.Zig,.the.programmer.can.la |
| 201c0 | 62 65 6c 20 76 61 72 69 61 62 6c 65 73 20 61 73 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c | bel.variables.as.<code>comptime< |
| 201e0 | 2f 63 6f 64 65 3e 2e 20 54 68 69 73 20 67 75 61 72 61 6e 74 65 65 73 20 74 6f 20 74 68 65 20 63 | /code>..This.guarantees.to.the.c |
| 20200 | 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 74 68 61 74 20 65 76 65 72 79 20 6c 6f 61 64 20 61 6e | ompiler.......that.every.load.an |
| 20220 | 64 20 73 74 6f 72 65 20 6f 66 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 70 65 72 66 6f | d.store.of.the.variable.is.perfo |
| 20240 | 72 6d 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 41 6e 79 20 76 69 6f 6c 61 74 | rmed.at.compile-time..Any.violat |
| 20260 | 69 6f 6e 20 6f 66 20 74 68 69 73 20 72 65 73 75 6c 74 73 20 69 6e 20 61 0a 20 20 20 20 20 20 63 | ion.of.this.results.in.a.......c |
| 20280 | 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | ompile.error........</p>.......< |
| 202a0 | 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 74 68 65 20 | p>.......This.combined.with.the. |
| 202c0 | 66 61 63 74 20 74 68 61 74 20 77 65 20 63 61 6e 20 3c 63 6f 64 65 3e 69 6e 6c 69 6e 65 3c 2f 63 | fact.that.we.can.<code>inline</c |
| 202e0 | 6f 64 65 3e 20 6c 6f 6f 70 73 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 77 72 69 74 65 0a 20 20 | ode>.loops.allows.us.to.write... |
| 20300 | 20 20 20 20 61 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 69 73 20 70 61 72 74 69 61 6c 6c | ....a.function.which.is.partiall |
| 20320 | 79 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64 20 | y.evaluated.at.compile-time.and. |
| 20340 | 70 61 72 74 69 61 6c 6c 79 20 61 74 20 72 75 6e 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | partially.at.run-time........</p |
| 20360 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 20 | >.......<p>.......For.example:.. |
| 20380 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e | .....</p>.......<p.class="file"> |
| 203a0 | 63 6f 6d 70 74 69 6d 65 5f 76 61 72 73 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 | comptime_vars.zig</p><pre><code. |
| 203c0 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f | class="zig">const.assert.=.@impo |
| 203e0 | 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 | rt("std").debug.assert |
| 20400 | 3b 0a 0a 63 6f 6e 73 74 20 43 6d 64 46 6e 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 6e 61 | ;..const.CmdFn.=.struct.{.....na |
| 20420 | 6d 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 0a 20 20 20 20 66 75 6e 63 3a 20 66 6e 28 69 33 32 | me:.[]const.u8,.....func:.fn(i32 |
| 20440 | 29 20 69 33 32 2c 0a 7d 3b 0a 0a 63 6f 6e 73 74 20 63 6d 64 5f 66 6e 73 20 3d 20 5b 5d 43 6d 64 | ).i32,.};..const.cmd_fns.=.[]Cmd |
| 20460 | 46 6e 7b 0a 20 20 20 20 43 6d 64 46 6e 20 7b 2e 6e 61 6d 65 20 3d 20 26 71 75 6f 74 3b 6f 6e 65 | Fn{.....CmdFn.{.name.=."one |
| 20480 | 26 71 75 6f 74 3b 2c 20 2e 66 75 6e 63 20 3d 20 6f 6e 65 7d 2c 0a 20 20 20 20 43 6d 64 46 6e 20 | ",..func.=.one},.....CmdFn. |
| 204a0 | 7b 2e 6e 61 6d 65 20 3d 20 26 71 75 6f 74 3b 74 77 6f 26 71 75 6f 74 3b 2c 20 2e 66 75 6e 63 20 | {.name.=."two",..func. |
| 204c0 | 3d 20 74 77 6f 7d 2c 0a 20 20 20 20 43 6d 64 46 6e 20 7b 2e 6e 61 6d 65 20 3d 20 26 71 75 6f 74 | =.two},.....CmdFn.{.name.=." |
| 204e0 | 3b 74 68 72 65 65 26 71 75 6f 74 3b 2c 20 2e 66 75 6e 63 20 3d 20 74 68 72 65 65 7d 2c 0a 7d 3b | ;three",..func.=.three},.}; |
| 20500 | 0a 66 6e 20 6f 6e 65 28 76 61 6c 75 65 3a 20 69 33 32 29 20 69 33 32 20 7b 20 72 65 74 75 72 6e | .fn.one(value:.i32).i32.{.return |
| 20520 | 20 76 61 6c 75 65 20 2b 20 31 3b 20 7d 0a 66 6e 20 74 77 6f 28 76 61 6c 75 65 3a 20 69 33 32 29 | .value.+.1;.}.fn.two(value:.i32) |
| 20540 | 20 69 33 32 20 7b 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 2b 20 32 3b 20 7d 0a 66 6e 20 74 68 | .i32.{.return.value.+.2;.}.fn.th |
| 20560 | 72 65 65 28 76 61 6c 75 65 3a 20 69 33 32 29 20 69 33 32 20 7b 20 72 65 74 75 72 6e 20 76 61 6c | ree(value:.i32).i32.{.return.val |
| 20580 | 75 65 20 2b 20 33 3b 20 7d 0a 0a 66 6e 20 70 65 72 66 6f 72 6d 46 6e 28 63 6f 6d 70 74 69 6d 65 | ue.+.3;.}..fn.performFn(comptime |
| 205a0 | 20 70 72 65 66 69 78 5f 63 68 61 72 3a 20 75 38 2c 20 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 69 | .prefix_char:.u8,.start_value:.i |
| 205c0 | 33 32 29 20 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a 20 69 33 32 20 3d 20 | 32).i32.{.....var.result:.i32.=. |
| 205e0 | 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 20 69 20 | start_value;.....comptime.var.i. |
| 20600 | 3d 20 30 3b 0a 20 20 20 20 69 6e 6c 69 6e 65 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 63 6d | =.0;.....inline.while.(i.<.cm |
| 20620 | 64 5f 66 6e 73 2e 6c 65 6e 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 20 20 | d_fns.len).:.(i.+=.1).{......... |
| 20640 | 69 66 20 28 63 6d 64 5f 66 6e 73 5b 69 5d 2e 6e 61 6d 65 5b 30 5d 20 3d 3d 20 70 72 65 66 69 78 | if.(cmd_fns[i].name[0].==.prefix |
| 20660 | 5f 63 68 61 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 63 6d | _char).{.............result.=.cm |
| 20680 | 64 5f 66 6e 73 5b 69 5d 2e 66 75 6e 63 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 20 20 20 20 7d | d_fns[i].func(result);.........} |
| 206a0 | 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 74 65 73 | .....}.....return.result;.}..tes |
| 206c0 | 74 20 26 71 75 6f 74 3b 70 65 72 66 6f 72 6d 20 66 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 | t."perform.fn".{.....a |
| 206e0 | 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 74 27 2c 20 31 29 20 3d 3d 20 36 29 3b 0a 20 | ssert(performFn('t',.1).==.6);.. |
| 20700 | 20 20 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 6f 27 2c 20 30 29 20 3d 3d 20 31 | ...assert(performFn('o',.0).==.1 |
| 20720 | 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 77 27 2c 20 39 39 29 | );.....assert(performFn('w',.99) |
| 20740 | 20 3d 3d 20 39 39 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 | .==.99);.}</code></pre><pre><cod |
| 20760 | 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 63 6f 6d 70 74 | e.class="shell">$.zig.test.compt |
| 20780 | 69 6d 65 5f 76 61 72 73 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 70 65 72 66 6f 72 6d 20 66 6e | ime_vars.zig.Test.1/1.perform.fn |
| 207a0 | 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | ...OK.</code></pre>........<p>.. |
| 207c0 | 20 20 20 20 20 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 61 20 62 69 74 20 63 6f 6e 74 72 | .....This.example.is.a.bit.contr |
| 207e0 | 69 76 65 64 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 65 | ived,.because.the.compile-time.e |
| 20800 | 76 61 6c 75 61 74 69 6f 6e 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 75 6e 6e 65 63 65 73 73 61 | valuation.component.is.unnecessa |
| 20820 | 72 79 3b 0a 20 20 20 20 20 20 74 68 69 73 20 63 6f 64 65 20 77 6f 75 6c 64 20 77 6f 72 6b 20 66 | ry;.......this.code.would.work.f |
| 20840 | 69 6e 65 20 69 66 20 69 74 20 77 61 73 20 61 6c 6c 20 64 6f 6e 65 20 61 74 20 72 75 6e 2d 74 69 | ine.if.it.was.all.done.at.run-ti |
| 20860 | 6d 65 2e 20 42 75 74 20 69 74 20 64 6f 65 73 20 65 6e 64 20 75 70 20 67 65 6e 65 72 61 74 69 6e | me..But.it.does.end.up.generatin |
| 20880 | 67 0a 20 20 20 20 20 20 64 69 66 66 65 72 65 6e 74 20 63 6f 64 65 2e 20 49 6e 20 74 68 69 73 20 | g.......different.code..In.this. |
| 208a0 | 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 3c 63 6f 64 65 3e 70 65 72 66 | example,.the.function.<code>perf |
| 208c0 | 6f 72 6d 46 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 74 68 72 65 65 20 | ormFn</code>.is.generated.three. |
| 208e0 | 64 69 66 66 65 72 65 6e 74 20 74 69 6d 65 73 2c 0a 20 20 20 20 20 20 66 6f 72 20 74 68 65 20 64 | different.times,.......for.the.d |
| 20900 | 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 73 20 6f 66 20 3c 63 6f 64 65 3e 70 72 65 66 69 78 5f | ifferent.values.of.<code>prefix_ |
| 20920 | 63 68 61 72 3c 2f 63 6f 64 65 3e 20 70 72 6f 76 69 64 65 64 3a 0a 20 20 20 20 20 20 3c 2f 70 3e | char</code>.provided:.......</p> |
| 20940 | 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f | .......<pre><code.class="zig">// |
| 20960 | 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 0a 2f 2f 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 | .From.the.line:.//.assert(perfor |
| 20980 | 6d 46 6e 28 27 74 27 2c 20 31 29 20 3d 3d 20 36 29 3b 0a 66 6e 20 70 65 72 66 6f 72 6d 46 6e 28 | mFn('t',.1).==.6);.fn.performFn( |
| 209a0 | 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 69 33 32 29 20 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 | start_value:.i32).i32.{.....var. |
| 209c0 | 72 65 73 75 6c 74 3a 20 69 33 32 20 3d 20 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 72 | result:.i32.=.start_value;.....r |
| 209e0 | 65 73 75 6c 74 20 3d 20 74 77 6f 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 | esult.=.two(result);.....result. |
| 20a00 | 3d 20 74 68 72 65 65 28 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 | =.three(result);.....return.resu |
| 20a20 | 6c 74 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | lt;.}</code></pre>.......<pre><c |
| 20a40 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 | ode.class="zig">//.From.the.line |
| 20a60 | 3a 0a 2f 2f 20 61 73 73 65 72 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 6f 27 2c 20 30 29 20 3d 3d | :.//.assert(performFn('o',.0).== |
| 20a80 | 20 31 29 3b 0a 66 6e 20 70 65 72 66 6f 72 6d 46 6e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 69 | .1);.fn.performFn(start_value:.i |
| 20aa0 | 33 32 29 20 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a 20 69 33 32 20 3d 20 | 32).i32.{.....var.result:.i32.=. |
| 20ac0 | 73 74 61 72 74 5f 76 61 6c 75 65 3b 0a 20 20 20 20 72 65 73 75 6c 74 20 3d 20 6f 6e 65 28 72 65 | start_value;.....result.=.one(re |
| 20ae0 | 73 75 6c 74 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 3c 2f 63 6f 64 | sult);.....return.result;.}</cod |
| 20b00 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | e></pre>.......<pre><code.class= |
| 20b20 | 22 7a 69 67 22 3e 2f 2f 20 46 72 6f 6d 20 74 68 65 20 6c 69 6e 65 3a 0a 2f 2f 20 61 73 73 65 72 | "zig">//.From.the.line:.//.asser |
| 20b40 | 74 28 70 65 72 66 6f 72 6d 46 6e 28 27 77 27 2c 20 39 39 29 20 3d 3d 20 39 39 29 3b 0a 66 6e 20 | t(performFn('w',.99).==.99);.fn. |
| 20b60 | 70 65 72 66 6f 72 6d 46 6e 28 73 74 61 72 74 5f 76 61 6c 75 65 3a 20 69 33 32 29 20 69 33 32 20 | performFn(start_value:.i32).i32. |
| 20b80 | 7b 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 3a 20 69 33 32 20 3d 20 73 74 61 72 74 5f 76 61 | {.....var.result:.i32.=.start_va |
| 20ba0 | 6c 75 65 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 3c 2f 63 6f 64 65 3e | lue;.....return.result;.}</code> |
| 20bc0 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 | </pre>.......<p>.......Note.that |
| 20be0 | 20 74 68 69 73 20 68 61 70 70 65 6e 73 20 65 76 65 6e 20 69 6e 20 61 20 64 65 62 75 67 20 62 75 | .this.happens.even.in.a.debug.bu |
| 20c00 | 69 6c 64 3b 20 69 6e 20 61 20 72 65 6c 65 61 73 65 20 62 75 69 6c 64 20 74 68 65 73 65 20 67 65 | ild;.in.a.release.build.these.ge |
| 20c20 | 6e 65 72 61 74 65 64 20 66 75 6e 63 74 69 6f 6e 73 20 73 74 69 6c 6c 0a 20 20 20 20 20 20 70 61 | nerated.functions.still.......pa |
| 20c40 | 73 73 20 74 68 72 6f 75 67 68 20 72 69 67 6f 72 6f 75 73 20 4c 4c 56 4d 20 6f 70 74 69 6d 69 7a | ss.through.rigorous.LLVM.optimiz |
| 20c60 | 61 74 69 6f 6e 73 2e 20 54 68 65 20 69 6d 70 6f 72 74 61 6e 74 20 74 68 69 6e 67 20 74 6f 20 6e | ations..The.important.thing.to.n |
| 20c80 | 6f 74 65 2c 20 68 6f 77 65 76 65 72 2c 20 69 73 20 6e 6f 74 20 74 68 61 74 20 74 68 69 73 0a 20 | ote,.however,.is.not.that.this.. |
| 20ca0 | 20 20 20 20 20 69 73 20 61 20 77 61 79 20 74 6f 20 77 72 69 74 65 20 6d 6f 72 65 20 6f 70 74 69 | .....is.a.way.to.write.more.opti |
| 20cc0 | 6d 69 7a 65 64 20 63 6f 64 65 2c 20 62 75 74 20 74 68 61 74 20 69 74 20 69 73 20 61 20 77 61 79 | mized.code,.but.that.it.is.a.way |
| 20ce0 | 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 77 68 61 74 20 3c 65 6d 3e 73 68 6f 75 | .to.make.sure.that.what.<em>shou |
| 20d00 | 6c 64 3c 2f 65 6d 3e 20 68 61 70 70 65 6e 0a 20 20 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 2d | ld</em>.happen.......at.compile- |
| 20d20 | 74 69 6d 65 2c 20 3c 65 6d 3e 64 6f 65 73 3c 2f 65 6d 3e 20 68 61 70 70 65 6e 20 61 74 20 63 6f | time,.<em>does</em>.happen.at.co |
| 20d40 | 6d 70 69 6c 65 2d 74 69 6d 65 2e 20 54 68 69 73 20 63 61 74 63 68 65 73 20 6d 6f 72 65 20 65 72 | mpile-time..This.catches.more.er |
| 20d60 | 72 6f 72 73 20 61 6e 64 20 61 73 20 64 65 6d 6f 6e 73 74 72 61 74 65 64 0a 20 20 20 20 20 20 6c | rors.and.as.demonstrated.......l |
| 20d80 | 61 74 65 72 20 69 6e 20 74 68 69 73 20 61 72 74 69 63 6c 65 2c 20 61 6c 6c 6f 77 73 20 65 78 70 | ater.in.this.article,.allows.exp |
| 20da0 | 72 65 73 73 69 76 65 6e 65 73 73 20 74 68 61 74 20 69 6e 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 | ressiveness.that.in.other.langua |
| 20dc0 | 67 65 73 20 72 65 71 75 69 72 65 73 20 75 73 69 6e 67 20 6d 61 63 72 6f 73 2c 0a 20 20 20 20 20 | ges.requires.using.macros,...... |
| 20de0 | 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 2c 20 6f 72 20 61 20 70 72 65 70 72 6f 63 65 73 73 | .generated.code,.or.a.preprocess |
| 20e00 | 6f 72 20 74 6f 20 61 63 63 6f 6d 70 6c 69 73 68 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | or.to.accomplish........</p>.... |
| 20e20 | 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 2d 45 | ..........<h3.id="Compile-Time-E |
| 20e40 | 78 70 72 65 73 73 69 6f 6e 73 22 3e 43 6f 6d 70 69 6c 65 2d 54 69 6d 65 20 45 78 70 72 65 73 73 | xpressions">Compile-Time.Express |
| 20e60 | 69 6f 6e 73 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 5a 69 | ions</h3>........<p>.......In.Zi |
| 20e80 | 67 2c 20 69 74 20 6d 61 74 74 65 72 73 20 77 68 65 74 68 65 72 20 61 20 67 69 76 65 6e 20 65 78 | g,.it.matters.whether.a.given.ex |
| 20ea0 | 70 72 65 73 73 69 6f 6e 20 69 73 20 6b 6e 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d | pression.is.known.at.compile-tim |
| 20ec0 | 65 20 6f 72 20 72 75 6e 2d 74 69 6d 65 2e 20 41 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 0a | e.or.run-time..A.programmer.can. |
| 20ee0 | 20 20 20 20 20 20 75 73 65 20 61 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 | ......use.a.<code>comptime</code |
| 20f00 | 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 74 68 61 74 20 74 | >.expression.to.guarantee.that.t |
| 20f20 | 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 6c 6c 20 62 65 20 65 76 61 6c 75 61 74 65 64 20 | he.expression.will.be.evaluated. |
| 20f40 | 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 49 66 20 74 68 69 73 20 63 | at.compile-time........If.this.c |
| 20f60 | 61 6e 6e 6f 74 20 62 65 20 61 63 63 6f 6d 70 6c 69 73 68 65 64 2c 20 74 68 65 20 63 6f 6d 70 69 | annot.be.accomplished,.the.compi |
| 20f80 | 6c 65 72 20 77 69 6c 6c 20 65 6d 69 74 20 61 6e 20 65 72 72 6f 72 2e 20 46 6f 72 20 65 78 61 6d | ler.will.emit.an.error..For.exam |
| 20fa0 | 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 | ple:.......</p>.......<p.class=" |
| 20fc0 | 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | file">test.zig</p><pre><code.cla |
| 20fe0 | 73 73 3d 22 7a 69 67 22 3e 65 78 74 65 72 6e 20 66 6e 20 65 78 69 74 28 29 20 6e 6f 72 65 74 75 | ss="zig">extern.fn.exit().noretu |
| 21000 | 72 6e 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 | rn;..test."foo".{..... |
| 21020 | 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 65 78 69 74 28 29 3b 0a 20 20 20 20 7d | comptime.{.........exit();.....} |
| 21040 | 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | .}</code></pre><pre><code.class= |
| 21060 | 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 | "shell">$.zig.test.test.zig.<spa |
| 21080 | 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 | n.class="t0_1">/home/andy/dev/zi |
| 210a0 | 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 39 3a 20 3c 2f 73 70 61 | g/docgen_tmp/test.zig:5:9:.</spa |
| 210c0 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 | n><span.class="t31_1">error:</sp |
| 210e0 | 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 6e 61 62 6c 65 20 74 6f | an><span.class="t0_1">.unable.to |
| 21100 | 20 65 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 3c 2f 73 | .evaluate.constant.expression</s |
| 21120 | 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 65 78 69 74 28 29 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 | pan>.........exit();.........<sp |
| 21140 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 | an.class="t32_1">^</span>.</code |
| 21160 | 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 73 | ></pre>........<p>.......It.does |
| 21180 | 6e 27 74 20 6d 61 6b 65 20 73 65 6e 73 65 20 74 68 61 74 20 61 20 70 72 6f 67 72 61 6d 20 63 6f | n't.make.sense.that.a.program.co |
| 211a0 | 75 6c 64 20 63 61 6c 6c 20 3c 63 6f 64 65 3e 65 78 69 74 28 29 3c 2f 63 6f 64 65 3e 20 28 6f 72 | uld.call.<code>exit()</code>.(or |
| 211c0 | 20 61 6e 79 20 6f 74 68 65 72 20 65 78 74 65 72 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 29 0a 20 20 | .any.other.external.function)... |
| 211e0 | 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 73 6f 20 74 68 69 73 20 69 73 20 | ....at.compile-time,.so.this.is. |
| 21200 | 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 20 48 6f 77 65 76 65 72 2c 20 61 20 3c 63 6f 64 | a.compile.error..However,.a.<cod |
| 21220 | 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 20 64 6f 65 | e>comptime</code>.expression.doe |
| 21240 | 73 20 6d 75 63 68 0a 20 20 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 73 6f 6d 65 74 69 6d 65 73 | s.much.......more.than.sometimes |
| 21260 | 20 63 61 75 73 65 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f | .cause.a.compile.error........</ |
| 21280 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 69 74 68 69 6e 20 61 20 3c 63 6f 64 | p>.......<p>.......Within.a.<cod |
| 212a0 | 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 | e>comptime</code>.expression:... |
| 212c0 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | ....</p>.......<ul>.........<li> |
| 212e0 | 41 6c 6c 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 | All.variables.are.<code>comptime |
| 21300 | 3c 2f 63 6f 64 65 3e 20 76 61 72 69 61 62 6c 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 | </code>.variables.</li>......... |
| 21320 | 3c 6c 69 3e 41 6c 6c 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 77 | <li>All.<code>if</code>,.<code>w |
| 21340 | 68 69 6c 65 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 66 6f 72 3c 2f 63 6f 64 65 3e 2c 20 61 | hile</code>,.<code>for</code>,.a |
| 21360 | 6e 64 20 3c 63 6f 64 65 3e 73 77 69 74 63 68 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 20 20 20 | nd.<code>switch</code>.......... |
| 21380 | 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 61 74 20 63 6f | .expressions.are.evaluated.at.co |
| 213a0 | 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 6f 72 20 65 6d 69 74 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 | mpile-time,.or.emit.a.compile.er |
| 213c0 | 72 6f 72 20 69 66 20 74 68 69 73 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2e 3c 2f 6c 69 | ror.if.this.is.not.possible.</li |
| 213e0 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 | >.........<li>All.function.calls |
| 21400 | 20 63 61 75 73 65 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 74 6f 20 69 6e 74 65 72 70 72 65 74 | .cause.the.compiler.to.interpret |
| 21420 | 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 65 | .the.function.at.compile-time,.e |
| 21440 | 6d 69 74 74 69 6e 67 20 61 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f | mitting.a...........compile.erro |
| 21460 | 72 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 72 69 65 73 20 74 6f 20 64 6f 20 73 6f | r.if.the.function.tries.to.do.so |
| 21480 | 6d 65 74 68 69 6e 67 20 74 68 61 74 20 68 61 73 20 67 6c 6f 62 61 6c 20 72 75 6e 2d 74 69 6d 65 | mething.that.has.global.run-time |
| 214a0 | 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | .side.effects.</li>.......</ul>. |
| 214c0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 | ......<p>.......This.means.that. |
| 214e0 | 61 20 70 72 6f 67 72 61 6d 6d 65 72 20 63 61 6e 20 63 72 65 61 74 65 20 61 20 66 75 6e 63 74 69 | a.programmer.can.create.a.functi |
| 21500 | 6f 6e 20 77 68 69 63 68 20 69 73 20 63 61 6c 6c 65 64 20 62 6f 74 68 20 61 74 20 63 6f 6d 70 69 | on.which.is.called.both.at.compi |
| 21520 | 6c 65 2d 74 69 6d 65 20 61 6e 64 20 72 75 6e 2d 74 69 6d 65 2c 20 77 69 74 68 0a 20 20 20 20 20 | le-time.and.run-time,.with...... |
| 21540 | 20 6e 6f 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e | .no.modification.to.the.function |
| 21560 | 20 72 65 71 75 69 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | .required........</p>.......<p>. |
| 21580 | 20 20 20 20 20 20 4c 65 74 27 73 20 6c 6f 6f 6b 20 61 74 20 61 6e 20 65 78 61 6d 70 6c 65 3a 0a | ......Let's.look.at.an.example:. |
| 215a0 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 | ......</p>.......<p.class="file" |
| 215c0 | 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | >test.zig</p><pre><code.class="z |
| 215e0 | 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 | ig">const.assert.=.@import(" |
| 21600 | 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 66 6e 20 66 69 | ;std").debug.assert;..fn.fi |
| 21620 | 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 3a 20 75 33 32 29 20 75 33 32 20 7b 0a 20 20 20 20 69 66 | bonacci(index:.u32).u32.{.....if |
| 21640 | 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 32 29 20 72 65 74 75 72 6e 20 69 6e 64 65 78 3b 0a 20 20 | .(index.<.2).return.index;... |
| 21660 | 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 | ..return.fibonacci(index.-.1).+. |
| 21680 | 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 | fibonacci(index.-.2);.}..test.&q |
| 216a0 | 75 6f 74 3b 66 69 62 6f 6e 61 63 63 69 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 2f 2f 20 74 65 73 | uot;fibonacci".{.....//.tes |
| 216c0 | 74 20 66 69 62 6f 6e 61 63 63 69 20 61 74 20 72 75 6e 2d 74 69 6d 65 0a 20 20 20 20 61 73 73 65 | t.fibonacci.at.run-time.....asse |
| 216e0 | 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 0a 20 20 20 20 2f 2f 20 | rt(fibonacci(7).==.13);......//. |
| 21700 | 74 65 73 74 20 66 69 62 6f 6e 61 63 63 69 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 | test.fibonacci.at.compile-time.. |
| 21720 | 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 | ...comptime.{.........assert(fib |
| 21740 | 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e | onacci(7).==.13);.....}.}</code> |
| 21760 | 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 | </pre><pre><code.class="shell">$ |
| 21780 | 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 66 69 62 6f | .zig.test.test.zig.Test.1/1.fibo |
| 217a0 | 6e 61 63 63 69 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 | nacci...OK.</code></pre>........ |
| 217c0 | 3c 70 3e 0a 20 20 20 20 20 20 49 6d 61 67 69 6e 65 20 69 66 20 77 65 20 68 61 64 20 66 6f 72 67 | <p>.......Imagine.if.we.had.forg |
| 217e0 | 6f 74 74 65 6e 20 74 68 65 20 62 61 73 65 20 63 61 73 65 20 6f 66 20 74 68 65 20 72 65 63 75 72 | otten.the.base.case.of.the.recur |
| 21800 | 73 69 76 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 72 69 65 64 20 74 6f 20 72 75 6e 20 74 | sive.function.and.tried.to.run.t |
| 21820 | 68 65 20 74 65 73 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c | he.tests:.......</p>.......<p.cl |
| 21840 | 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 | ass="file">test.zig</p><pre><cod |
| 21860 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d | e.class="zig">const.assert.=.@im |
| 21880 | 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 | port("std").debug.asse |
| 218a0 | 72 74 3b 0a 0a 66 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 3a 20 75 33 32 29 20 75 33 | rt;..fn.fibonacci(index:.u32).u3 |
| 218c0 | 32 20 7b 0a 20 20 20 20 2f 2f 69 66 20 28 69 6e 64 65 78 20 26 6c 74 3b 20 32 29 20 72 65 74 75 | 2.{.....//if.(index.<.2).retu |
| 218e0 | 72 6e 20 69 6e 64 65 78 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 | rn.index;.....return.fibonacci(i |
| 21900 | 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 | ndex.-.1).+.fibonacci(index.-.2) |
| 21920 | 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 69 62 6f 6e 61 63 63 69 26 71 75 6f 74 3b 20 | ;.}..test."fibonacci". |
| 21940 | 7b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 | {.....comptime.{.........assert( |
| 21960 | 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f | fibonacci(7).==.13);.....}.}</co |
| 21980 | 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c | de></pre><pre><code.class="shell |
| 219a0 | 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 | ">$.zig.test.test.zig.<span.clas |
| 219c0 | 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 | s="t0_1">/home/andy/dev/zig/docg |
| 219e0 | 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 | en_tmp/test.zig:5:28:.</span><sp |
| 21a00 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 | an.class="t31_1">error:</span><s |
| 21a20 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 75 73 | pan.class="t0_1">.operation.caus |
| 21a40 | 65 64 20 6f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 | ed.overflow</span>.....return.fi |
| 21a60 | 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 | bonacci(index.-.1).+.fibonacci(i |
| 21a80 | 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ndex.-.2);...................... |
| 21aa0 | 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 | ......<span.class="t32_1">^</spa |
| 21ac0 | 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 | n>.<span.class="t0_1">/home/andy |
| 21ae0 | 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 | /dev/zig/docgen_tmp/test.zig:5:2 |
| 21b00 | 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f | 1:.</span><span.class="t36_1">no |
| 21b20 | 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 | te:</span><span.class="t0_1">.ca |
| 21b40 | 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e | lled.from.here</span>.....return |
| 21b60 | 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 | .fibonacci(index.-.1).+.fibonacc |
| 21b80 | 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | i(index.-.2);................... |
| 21ba0 | 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c | ..<span.class="t32_1">^</span>.< |
| 21bc0 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 | span.class="t0_1">/home/andy/dev |
| 21be0 | 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c | /zig/docgen_tmp/test.zig:5:21:.< |
| 21c00 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c | /span><span.class="t36_1">note:< |
| 21c20 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 | /span><span.class="t0_1">.called |
| 21c40 | 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 | .from.here</span>.....return.fib |
| 21c60 | 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e | onacci(index.-.1).+.fibonacci(in |
| 21c80 | 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 | dex.-.2);.....................<s |
| 21ca0 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e | pan.class="t32_1">^</span>.<span |
| 21cc0 | 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 | .class="t0_1">/home/andy/dev/zig |
| 21ce0 | 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 | /docgen_tmp/test.zig:5:21:.</spa |
| 21d00 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 | n><span.class="t36_1">note:</spa |
| 21d20 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f | n><span.class="t0_1">.called.fro |
| 21d40 | 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 | m.here</span>.....return.fibonac |
| 21d60 | 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 | ci(index.-.1).+.fibonacci(index. |
| 21d80 | 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 | -.2);.....................<span. |
| 21da0 | 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 | class="t32_1">^</span>.<span.cla |
| 21dc0 | 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 | ss="t0_1">/home/andy/dev/zig/doc |
| 21de0 | 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 | gen_tmp/test.zig:5:21:.</span><s |
| 21e00 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 | pan.class="t36_1">note:</span><s |
| 21e20 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 | pan.class="t0_1">.called.from.he |
| 21e40 | 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 | re</span>.....return.fibonacci(i |
| 21e60 | 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 | ndex.-.1).+.fibonacci(index.-.2) |
| 21e80 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 | ;.....................<span.clas |
| 21ea0 | 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 | s="t32_1">^</span>.<span.class=" |
| 21ec0 | 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f | t0_1">/home/andy/dev/zig/docgen_ |
| 21ee0 | 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 | tmp/test.zig:5:21:.</span><span. |
| 21f00 | 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 | class="t36_1">note:</span><span. |
| 21f20 | 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f | class="t0_1">.called.from.here</ |
| 21f40 | 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 | span>.....return.fibonacci(index |
| 21f60 | 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 | .-.1).+.fibonacci(index.-.2);... |
| 21f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | ..................<span.class="t |
| 21fa0 | 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | 32_1">^</span>.<span.class="t0_1 |
| 21fc0 | 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f | ">/home/andy/dev/zig/docgen_tmp/ |
| 21fe0 | 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 | test.zig:5:21:.</span><span.clas |
| 22000 | 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 | s="t36_1">note:</span><span.clas |
| 22020 | 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e | s="t0_1">.called.from.here</span |
| 22040 | 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 | >.....return.fibonacci(index.-.1 |
| 22060 | 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 | ).+.fibonacci(index.-.2);....... |
| 22080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 | ..............<span.class="t32_1 |
| 220a0 | 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 | ">^</span>.<span.class="t0_1">/h |
| 220c0 | 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 | ome/andy/dev/zig/docgen_tmp/test |
| 220e0 | 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | .zig:5:21:.</span><span.class="t |
| 22100 | 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | 36_1">note:</span><span.class="t |
| 22120 | 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 | 0_1">.called.from.here</span>... |
| 22140 | 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 | ..return.fibonacci(index.-.1).+. |
| 22160 | 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | fibonacci(index.-.2);........... |
| 22180 | 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c | ..........<span.class="t32_1">^< |
| 221a0 | 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f | /span>.<span.class="t0_1">/home/ |
| 221c0 | 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 | andy/dev/zig/docgen_tmp/test.zig |
| 221e0 | 3a 31 30 3a 32 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f | :10:25:.</span><span.class="t36_ |
| 22200 | 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | 1">note:</span><span.class="t0_1 |
| 22220 | 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 | ">.called.from.here</span>...... |
| 22240 | 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 31 33 29 3b 0a 20 | ...assert(fibonacci(7).==.13);.. |
| 22260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 | .......................<span.cla |
| 22280 | 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ss="t32_1">^</span>.</code></pre |
| 222a0 | 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 63 6f 6d 70 69 6c 65 72 20 | >........<p>.......The.compiler. |
| 222c0 | 70 72 6f 64 75 63 65 73 20 61 6e 20 65 72 72 6f 72 20 77 68 69 63 68 20 69 73 20 61 20 73 74 61 | produces.an.error.which.is.a.sta |
| 222e0 | 63 6b 20 74 72 61 63 65 20 66 72 6f 6d 20 74 72 79 69 6e 67 20 74 6f 20 65 76 61 6c 75 61 74 65 | ck.trace.from.trying.to.evaluate |
| 22300 | 20 74 68 65 0a 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 | .the.......function.at.compile-t |
| 22320 | 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 | ime........</p>.......<p>....... |
| 22340 | 4c 75 63 6b 69 6c 79 2c 20 77 65 20 75 73 65 64 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | Luckily,.we.used.an.unsigned.int |
| 22360 | 65 67 65 72 2c 20 61 6e 64 20 73 6f 20 77 68 65 6e 20 77 65 20 74 72 69 65 64 20 74 6f 20 73 75 | eger,.and.so.when.we.tried.to.su |
| 22380 | 62 74 72 61 63 74 20 31 20 66 72 6f 6d 20 30 2c 20 69 74 20 74 72 69 67 67 65 72 65 64 0a 20 20 | btract.1.from.0,.it.triggered... |
| 223a0 | 20 20 20 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2c 20 77 68 69 63 68 20 69 73 | ....undefined.behavior,.which.is |
| 223c0 | 20 61 6c 77 61 79 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 74 68 65 20 63 | .always.a.compile.error.if.the.c |
| 223e0 | 6f 6d 70 69 6c 65 72 20 6b 6e 6f 77 73 20 69 74 20 68 61 70 70 65 6e 65 64 2e 0a 20 20 20 20 20 | ompiler.knows.it.happened....... |
| 22400 | 20 42 75 74 20 77 68 61 74 20 77 6f 75 6c 64 20 68 61 76 65 20 68 61 70 70 65 6e 65 64 20 69 66 | .But.what.would.have.happened.if |
| 22420 | 20 77 65 20 75 73 65 64 20 61 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 3f 0a 20 20 20 20 20 | .we.used.a.signed.integer?...... |
| 22440 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 | .</p>.......<p.class="file">test |
| 22460 | 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 | .zig</p><pre><code.class="zig">c |
| 22480 | 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 | onst.assert.=.@import("std& |
| 224a0 | 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 66 6e 20 66 69 62 6f 6e 61 63 | quot;).debug.assert;..fn.fibonac |
| 224c0 | 63 69 28 69 6e 64 65 78 3a 20 69 33 32 29 20 69 33 32 20 7b 0a 20 20 20 20 2f 2f 69 66 20 28 69 | ci(index:.i32).i32.{.....//if.(i |
| 224e0 | 6e 64 65 78 20 26 6c 74 3b 20 32 29 20 72 65 74 75 72 6e 20 69 6e 64 65 78 3b 0a 20 20 20 20 72 | ndex.<.2).return.index;.....r |
| 22500 | 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 | eturn.fibonacci(index.-.1).+.fib |
| 22520 | 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 | onacci(index.-.2);.}..test." |
| 22540 | 3b 66 69 62 6f 6e 61 63 63 69 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 | ;fibonacci".{.....comptime. |
| 22560 | 7b 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d | {.........assert(fibonacci(7).== |
| 22580 | 20 31 33 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c | .13);.....}.}</code></pre><pre>< |
| 225a0 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 | code.class="shell">$.zig.test.te |
| 225c0 | 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f | st.zig.<span.class="t0_1">/home/ |
| 225e0 | 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 | andy/dev/zig/docgen_tmp/test.zig |
| 22600 | 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 | :5:21:.</span><span.class="t31_1 |
| 22620 | 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | ">error:</span><span.class="t0_1 |
| 22640 | 22 3e 20 65 76 61 6c 75 61 74 69 6f 6e 20 65 78 63 65 65 64 65 64 20 31 30 30 30 20 62 61 63 6b | ">.evaluation.exceeded.1000.back |
| 22660 | 77 61 72 64 73 20 62 72 61 6e 63 68 65 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e | wards.branches</span>.....return |
| 22680 | 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 | .fibonacci(index.-.1).+.fibonacc |
| 226a0 | 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | i(index.-.2);................... |
| 226c0 | 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c | ..<span.class="t32_1">^</span>.< |
| 226e0 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 | span.class="t0_1">/home/andy/dev |
| 22700 | 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c | /zig/docgen_tmp/test.zig:5:21:.< |
| 22720 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c | /span><span.class="t36_1">note:< |
| 22740 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 | /span><span.class="t0_1">.called |
| 22760 | 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 | .from.here</span>.....return.fib |
| 22780 | 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e | onacci(index.-.1).+.fibonacci(in |
| 227a0 | 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 | dex.-.2);.....................<s |
| 227c0 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e | pan.class="t32_1">^</span>.<span |
| 227e0 | 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 | .class="t0_1">/home/andy/dev/zig |
| 22800 | 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 | /docgen_tmp/test.zig:5:21:.</spa |
| 22820 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 | n><span.class="t36_1">note:</spa |
| 22840 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f | n><span.class="t0_1">.called.fro |
| 22860 | 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 | m.here</span>.....return.fibonac |
| 22880 | 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 | ci(index.-.1).+.fibonacci(index. |
| 228a0 | 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 | -.2);.....................<span. |
| 228c0 | 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 | class="t32_1">^</span>.<span.cla |
| 228e0 | 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 | ss="t0_1">/home/andy/dev/zig/doc |
| 22900 | 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 | gen_tmp/test.zig:5:21:.</span><s |
| 22920 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 | pan.class="t36_1">note:</span><s |
| 22940 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 | pan.class="t0_1">.called.from.he |
| 22960 | 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 | re</span>.....return.fibonacci(i |
| 22980 | 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 | ndex.-.1).+.fibonacci(index.-.2) |
| 229a0 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 | ;.....................<span.clas |
| 229c0 | 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 | s="t32_1">^</span>.<span.class=" |
| 229e0 | 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f | t0_1">/home/andy/dev/zig/docgen_ |
| 22a00 | 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 | tmp/test.zig:5:21:.</span><span. |
| 22a20 | 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 | class="t36_1">note:</span><span. |
| 22a40 | 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f | class="t0_1">.called.from.here</ |
| 22a60 | 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 | span>.....return.fibonacci(index |
| 22a80 | 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 | .-.1).+.fibonacci(index.-.2);... |
| 22aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | ..................<span.class="t |
| 22ac0 | 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | 32_1">^</span>.<span.class="t0_1 |
| 22ae0 | 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f | ">/home/andy/dev/zig/docgen_tmp/ |
| 22b00 | 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 | test.zig:5:21:.</span><span.clas |
| 22b20 | 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 | s="t36_1">note:</span><span.clas |
| 22b40 | 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e | s="t0_1">.called.from.here</span |
| 22b60 | 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 | >.....return.fibonacci(index.-.1 |
| 22b80 | 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 | ).+.fibonacci(index.-.2);....... |
| 22ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 | ..............<span.class="t32_1 |
| 22bc0 | 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 | ">^</span>.<span.class="t0_1">/h |
| 22be0 | 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 | ome/andy/dev/zig/docgen_tmp/test |
| 22c00 | 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | .zig:5:21:.</span><span.class="t |
| 22c20 | 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 | 36_1">note:</span><span.class="t |
| 22c40 | 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 | 0_1">.called.from.here</span>... |
| 22c60 | 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 | ..return.fibonacci(index.-.1).+. |
| 22c80 | 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 | fibonacci(index.-.2);........... |
| 22ca0 | 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c | ..........<span.class="t32_1">^< |
| 22cc0 | 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f | /span>.<span.class="t0_1">/home/ |
| 22ce0 | 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 | andy/dev/zig/docgen_tmp/test.zig |
| 22d00 | 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 | :5:21:.</span><span.class="t36_1 |
| 22d20 | 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 | ">note:</span><span.class="t0_1" |
| 22d40 | 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 | >.called.from.here</span>.....re |
| 22d60 | 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f | turn.fibonacci(index.-.1).+.fibo |
| 22d80 | 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nacci(index.-.2);............... |
| 22da0 | 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 | ......<span.class="t32_1">^</spa |
| 22dc0 | 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 | n>.<span.class="t0_1">/home/andy |
| 22de0 | 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 | /dev/zig/docgen_tmp/test.zig:5:2 |
| 22e00 | 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f | 1:.</span><span.class="t36_1">no |
| 22e20 | 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 | te:</span><span.class="t0_1">.ca |
| 22e40 | 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e | lled.from.here</span>.....return |
| 22e60 | 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 | .fibonacci(index.-.1).+.fibonacc |
| 22e80 | 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | i(index.-.2);................... |
| 22ea0 | 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c | ..<span.class="t32_1">^</span>.< |
| 22ec0 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 | span.class="t0_1">/home/andy/dev |
| 22ee0 | 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c | /zig/docgen_tmp/test.zig:5:21:.< |
| 22f00 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c | /span><span.class="t36_1">note:< |
| 22f20 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 | /span><span.class="t0_1">.called |
| 22f40 | 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 | .from.here</span>.....return.fib |
| 22f60 | 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e | onacci(index.-.1).+.fibonacci(in |
| 22f80 | 64 65 78 20 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 | dex.-.2);.....................<s |
| 22fa0 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e | pan.class="t32_1">^</span>.<span |
| 22fc0 | 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 | .class="t0_1">/home/andy/dev/zig |
| 22fe0 | 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 | /docgen_tmp/test.zig:5:21:.</spa |
| 23000 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 | n><span.class="t36_1">note:</spa |
| 23020 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f | n><span.class="t0_1">.called.fro |
| 23040 | 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 | m.here</span>.....return.fibonac |
| 23060 | 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 | ci(index.-.1).+.fibonacci(index. |
| 23080 | 2d 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 | -.2);.....................<span. |
| 230a0 | 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 | class="t32_1">^</span>.<span.cla |
| 230c0 | 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 | ss="t0_1">/home/andy/dev/zig/doc |
| 230e0 | 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 3a 32 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 | gen_tmp/test.zig:5:21:.</span><s |
| 23100 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 | pan.class="t36_1">note:</span><s |
| 23120 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 | pan.class="t0_1">.called.from.he |
| 23140 | 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 | re</span>.....return.fibonacci(i |
| 23160 | 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 32 29 | ndex.-.1).+.fibonacci(index.-.2) |
| 23180 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 | ;.....................<span.clas |
| 231a0 | 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | s="t32_1">^</span>.</code></pre> |
| 231c0 | 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 63 6f 6d 70 69 6c 65 72 20 6e | ........<p>.......The.compiler.n |
| 231e0 | 6f 74 69 63 65 64 20 74 68 61 74 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 69 73 20 66 75 6e 63 | oticed.that.evaluating.this.func |
| 23200 | 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 74 6f 6f 6b 20 61 20 6c 6f 6e 67 | tion.at.compile-time.took.a.long |
| 23220 | 20 74 69 6d 65 2c 0a 20 20 20 20 20 20 61 6e 64 20 74 68 75 73 20 65 6d 69 74 74 65 64 20 61 20 | .time,.......and.thus.emitted.a. |
| 23240 | 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 61 6e 64 20 67 61 76 65 20 75 70 2e 20 49 66 20 74 68 | compile.error.and.gave.up..If.th |
| 23260 | 65 20 70 72 6f 67 72 61 6d 6d 65 72 20 77 61 6e 74 73 20 74 6f 20 69 6e 63 72 65 61 73 65 0a 20 | e.programmer.wants.to.increase.. |
| 23280 | 20 20 20 20 20 74 68 65 20 62 75 64 67 65 74 20 66 6f 72 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 | .....the.budget.for.compile-time |
| 232a0 | 20 63 6f 6d 70 75 74 61 74 69 6f 6e 2c 20 74 68 65 79 20 63 61 6e 20 75 73 65 20 61 20 62 75 69 | .computation,.they.can.use.a.bui |
| 232c0 | 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 65 64 0a 20 20 20 20 20 20 3c 61 20 68 | lt-in.function.called.......<a.h |
| 232e0 | 72 65 66 3d 22 23 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 22 3e 40 73 65 74 45 76 | ref="#setEvalBranchQuota">@setEv |
| 23300 | 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 3c 2f 61 3e 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 | alBranchQuota</a>.to.change.the. |
| 23320 | 64 65 66 61 75 6c 74 20 6e 75 6d 62 65 72 20 31 30 30 30 20 74 6f 20 73 6f 6d 65 74 68 69 6e 67 | default.number.1000.to.something |
| 23340 | 20 65 6c 73 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | .else........</p>.......<p>..... |
| 23360 | 20 20 57 68 61 74 20 69 66 20 77 65 20 66 69 78 20 74 68 65 20 62 61 73 65 20 63 61 73 65 2c 20 | ..What.if.we.fix.the.base.case,. |
| 23380 | 62 75 74 20 70 75 74 20 74 68 65 20 77 72 6f 6e 67 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 3c | but.put.the.wrong.value.in.the.< |
| 233a0 | 63 6f 64 65 3e 61 73 73 65 72 74 3c 2f 63 6f 64 65 3e 20 6c 69 6e 65 3f 0a 20 20 20 20 20 20 3c | code>assert</code>.line?.......< |
| 233c0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a | /p>.......<p.class="file">test.z |
| 233e0 | 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e | ig</p><pre><code.class="zig">con |
| 23400 | 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 | st.assert.=.@import("std&qu |
| 23420 | 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 66 6e 20 66 69 62 6f 6e 61 63 63 69 | ot;).debug.assert;..fn.fibonacci |
| 23440 | 28 69 6e 64 65 78 3a 20 69 33 32 29 20 69 33 32 20 7b 0a 20 20 20 20 69 66 20 28 69 6e 64 65 78 | (index:.i32).i32.{.....if.(index |
| 23460 | 20 26 6c 74 3b 20 32 29 20 72 65 74 75 72 6e 20 69 6e 64 65 78 3b 0a 20 20 20 20 72 65 74 75 72 | .<.2).return.index;.....retur |
| 23480 | 6e 20 66 69 62 6f 6e 61 63 63 69 28 69 6e 64 65 78 20 2d 20 31 29 20 2b 20 66 69 62 6f 6e 61 63 | n.fibonacci(index.-.1).+.fibonac |
| 234a0 | 63 69 28 69 6e 64 65 78 20 2d 20 32 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 66 69 62 | ci(index.-.2);.}..test."fib |
| 234c0 | 6f 6e 61 63 63 69 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 | onacci".{.....comptime.{... |
| 234e0 | 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 63 63 69 28 37 29 20 3d 3d 20 39 39 39 | ......assert(fibonacci(7).==.999 |
| 23500 | 39 39 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 | 99);.....}.}</code></pre><pre><c |
| 23520 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 | ode.class="shell">$.zig.test.tes |
| 23540 | 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 | t.zig.<span.class="t0_1">/home/a |
| 23560 | 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 64 65 | ndy/dev/zig/build/lib/zig/std/de |
| 23580 | 62 75 67 2f 69 6e 64 65 78 2e 7a 69 67 3a 38 34 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 | bug/index.zig:84:13:.</span><spa |
| 235a0 | 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 | n.class="t31_1">error:</span><sp |
| 235c0 | 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 40 70 61 | an.class="t0_1">.encountered.@pa |
| 235e0 | 6e 69 63 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 | nic.at.compile-time</span>...... |
| 23600 | 20 20 20 20 20 20 20 40 70 61 6e 69 63 28 26 71 75 6f 74 3b 61 73 73 65 72 74 69 6f 6e 20 66 61 | .......@panic("assertion.fa |
| 23620 | 69 6c 75 72 65 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 | ilure");.............<span. |
| 23640 | 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 | class="t32_1">^</span>.<span.cla |
| 23660 | 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 | ss="t0_1">/home/andy/dev/zig/doc |
| 23680 | 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 30 3a 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c | gen_tmp/test.zig:10:15:.</span>< |
| 236a0 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c | span.class="t36_1">note:</span>< |
| 236c0 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 | span.class="t0_1">.called.from.h |
| 236e0 | 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 28 66 69 62 6f 6e 61 | ere</span>.........assert(fibona |
| 23700 | 63 63 69 28 37 29 20 3d 3d 20 39 39 39 39 39 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cci(7).==.99999);............... |
| 23720 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 | <span.class="t32_1">^</span>.</c |
| 23740 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 61 74 | ode></pre>........<p>.......What |
| 23760 | 20 68 61 70 70 65 6e 65 64 20 69 73 20 5a 69 67 20 73 74 61 72 74 65 64 20 69 6e 74 65 72 70 72 | .happened.is.Zig.started.interpr |
| 23780 | 65 74 69 6e 67 20 74 68 65 20 3c 63 6f 64 65 3e 61 73 73 65 72 74 3c 2f 63 6f 64 65 3e 20 66 75 | eting.the.<code>assert</code>.fu |
| 237a0 | 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 70 61 72 61 6d 65 74 65 72 20 | nction.with.the.......parameter. |
| 237c0 | 3c 63 6f 64 65 3e 6f 6b 3c 2f 63 6f 64 65 3e 20 73 65 74 20 74 6f 20 3c 63 6f 64 65 3e 66 61 6c | <code>ok</code>.set.to.<code>fal |
| 237e0 | 73 65 3c 2f 63 6f 64 65 3e 2e 20 57 68 65 6e 20 74 68 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 | se</code>..When.the.interpreter. |
| 23800 | 68 69 74 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 75 6e 72 65 61 63 68 61 62 6c 65 3c 2f 63 6f 64 | hit.......<code>unreachable</cod |
| 23820 | 65 3e 20 69 74 20 65 6d 69 74 74 65 64 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 2c 20 62 | e>.it.emitted.a.compile.error,.b |
| 23840 | 65 63 61 75 73 65 20 72 65 61 63 68 69 6e 67 20 75 6e 72 65 61 63 68 61 62 6c 65 0a 20 20 20 20 | ecause.reaching.unreachable..... |
| 23860 | 20 20 63 6f 64 65 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2c 20 61 6e | ..code.is.undefined.behavior,.an |
| 23880 | 64 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 63 61 75 73 65 73 20 61 20 63 6f | d.undefined.behavior.causes.a.co |
| 238a0 | 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 66 20 69 74 20 69 73 20 64 65 74 65 63 74 65 64 0a 20 20 | mpile.error.if.it.is.detected... |
| 238c0 | 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | ....at.compile-time........</p>. |
| 238e0 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 73 | .......<p>.......In.the.global.s |
| 23900 | 63 6f 70 65 20 28 6f 75 74 73 69 64 65 20 6f 66 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 29 2c 20 | cope.(outside.of.any.function),. |
| 23920 | 61 6c 6c 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79 0a 20 | all.expressions.are.implicitly.. |
| 23940 | 20 20 20 20 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 | .....<code>comptime</code>.expre |
| 23960 | 73 73 69 6f 6e 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 20 63 61 6e 20 75 | ssions..This.means.that.we.can.u |
| 23980 | 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 65 | se.functions.to.......initialize |
| 239a0 | 20 63 6f 6d 70 6c 65 78 20 73 74 61 74 69 63 20 64 61 74 61 2e 20 46 6f 72 20 65 78 61 6d 70 6c | .complex.static.data..For.exampl |
| 239c0 | 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 | e:.......</p>.......<p.class="fi |
| 239e0 | 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | le">test.zig</p><pre><code.class |
| 23a00 | 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 66 69 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 20 3d 20 66 | ="zig">const.first_25_primes.=.f |
| 23a20 | 69 72 73 74 4e 50 72 69 6d 65 73 28 32 35 29 3b 0a 63 6f 6e 73 74 20 73 75 6d 5f 6f 66 5f 66 69 | irstNPrimes(25);.const.sum_of_fi |
| 23a40 | 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 20 3d 20 73 75 6d 28 66 69 72 73 74 5f 32 35 5f 70 72 69 | rst_25_primes.=.sum(first_25_pri |
| 23a60 | 6d 65 73 29 3b 0a 0a 66 6e 20 66 69 72 73 74 4e 50 72 69 6d 65 73 28 63 6f 6d 70 74 69 6d 65 20 | mes);..fn.firstNPrimes(comptime. |
| 23a80 | 6e 3a 20 75 73 69 7a 65 29 20 5b 6e 5d 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 70 72 69 6d 65 | n:.usize).[n]i32.{.....var.prime |
| 23aa0 | 5f 6c 69 73 74 3a 20 5b 6e 5d 69 33 32 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 76 | _list:.[n]i32.=.undefined;.....v |
| 23ac0 | 61 72 20 6e 65 78 74 5f 69 6e 64 65 78 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 76 61 | ar.next_index:.usize.=.0;.....va |
| 23ae0 | 72 20 74 65 73 74 5f 6e 75 6d 62 65 72 3a 20 69 33 32 20 3d 20 32 3b 0a 20 20 20 20 77 68 69 6c | r.test_number:.i32.=.2;.....whil |
| 23b00 | 65 20 28 6e 65 78 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 70 72 69 6d 65 5f 6c 69 73 74 2e 6c 65 | e.(next_index.<.prime_list.le |
| 23b20 | 6e 29 20 3a 20 28 74 65 73 74 5f 6e 75 6d 62 65 72 20 2b 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 | n).:.(test_number.+=.1).{....... |
| 23b40 | 20 20 76 61 72 20 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 3a 20 75 73 69 7a 65 20 3d 20 | ..var.test_prime_index:.usize.=. |
| 23b60 | 30 3b 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 73 5f 70 72 69 6d 65 20 3d 20 74 72 75 65 3b 0a | 0;.........var.is_prime.=.true;. |
| 23b80 | 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 74 65 73 74 5f 70 72 69 6d 65 5f 69 6e 64 65 78 20 | ........while.(test_prime_index. |
| 23ba0 | 26 6c 74 3b 20 6e 65 78 74 5f 69 6e 64 65 78 29 20 3a 20 28 74 65 73 74 5f 70 72 69 6d 65 5f 69 | <.next_index).:.(test_prime_i |
| 23bc0 | 6e 64 65 78 20 2b 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 65 73 | ndex.+=.1).{.............if.(tes |
| 23be0 | 74 5f 6e 75 6d 62 65 72 20 25 20 70 72 69 6d 65 5f 6c 69 73 74 5b 74 65 73 74 5f 70 72 69 6d 65 | t_number.%.prime_list[test_prime |
| 23c00 | 5f 69 6e 64 65 78 5d 20 3d 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _index].==.0).{................. |
| 23c20 | 69 73 5f 70 72 69 6d 65 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | is_prime.=.false;............... |
| 23c40 | 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d | ..break;.............}.........} |
| 23c60 | 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 70 72 69 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 | .........if.(is_prime).{........ |
| 23c80 | 20 20 20 20 20 70 72 69 6d 65 5f 6c 69 73 74 5b 6e 65 78 74 5f 69 6e 64 65 78 5d 20 3d 20 74 65 | .....prime_list[next_index].=.te |
| 23ca0 | 73 74 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 74 5f 69 6e 64 65 | st_number;.............next_inde |
| 23cc0 | 78 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 | x.+=.1;.........}.....}.....retu |
| 23ce0 | 72 6e 20 70 72 69 6d 65 5f 6c 69 73 74 3b 0a 7d 0a 0a 66 6e 20 73 75 6d 28 6e 75 6d 62 65 72 73 | rn.prime_list;.}..fn.sum(numbers |
| 23d00 | 3a 20 5b 5d 63 6f 6e 73 74 20 69 33 32 29 20 69 33 32 20 7b 0a 20 20 20 20 76 61 72 20 72 65 73 | :.[]const.i32).i32.{.....var.res |
| 23d20 | 75 6c 74 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 20 66 6f 72 20 28 6e 75 6d 62 65 72 73 29 20 | ult:.i32.=.0;.....for.(numbers). |
| 23d40 | 7c 78 7c 20 7b 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 2b 3d 20 78 3b 0a 20 20 20 20 7d | |x|.{.........result.+=.x;.....} |
| 23d60 | 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f | .....return.result;.}..test.&quo |
| 23d80 | 74 3b 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 40 69 | t;variable.values".{.....@i |
| 23da0 | 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 | mport("std").debug.ass |
| 23dc0 | 65 72 74 28 73 75 6d 5f 6f 66 5f 66 69 72 73 74 5f 32 35 5f 70 72 69 6d 65 73 20 3d 3d 20 31 30 | ert(sum_of_first_25_primes.==.10 |
| 23de0 | 36 30 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | 60);.}</code></pre><pre><code.cl |
| 23e00 | 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a | ass="shell">$.zig.test.test.zig. |
| 23e20 | 54 65 73 74 20 31 2f 31 20 76 61 72 69 61 62 6c 65 20 76 61 6c 75 65 73 2e 2e 2e 4f 4b 0a 3c 2f | Test.1/1.variable.values...OK.</ |
| 23e40 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 | code></pre>........<p>.......Whe |
| 23e60 | 6e 20 77 65 20 63 6f 6d 70 69 6c 65 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2c 20 5a 69 67 20 67 | n.we.compile.this.program,.Zig.g |
| 23e80 | 65 6e 65 72 61 74 65 73 20 74 68 65 20 63 6f 6e 73 74 61 6e 74 73 0a 20 20 20 20 20 20 77 69 74 | enerates.the.constants.......wit |
| 23ea0 | 68 20 74 68 65 20 61 6e 73 77 65 72 20 70 72 65 2d 63 6f 6d 70 75 74 65 64 2e 20 48 65 72 65 20 | h.the.answer.pre-computed..Here. |
| 23ec0 | 61 72 65 20 74 68 65 20 6c 69 6e 65 73 20 66 72 6f 6d 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 | are.the.lines.from.the.generated |
| 23ee0 | 20 4c 4c 56 4d 20 49 52 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e | .LLVM.IR:.......</p>.......<pre> |
| 23f00 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 6c 6c 76 6d 22 3e 40 30 20 3d 20 69 6e 74 65 72 6e 61 6c | <code.class="llvm">@0.=.internal |
| 23f20 | 20 75 6e 6e 61 6d 65 64 5f 61 64 64 72 20 63 6f 6e 73 74 61 6e 74 20 5b 32 35 20 78 20 69 33 32 | .unnamed_addr.constant.[25.x.i32 |
| 23f40 | 5d 20 5b 69 33 32 20 32 2c 20 69 33 32 20 33 2c 20 69 33 32 20 35 2c 20 69 33 32 20 37 2c 20 69 | ].[i32.2,.i32.3,.i32.5,.i32.7,.i |
| 23f60 | 33 32 20 31 31 2c 20 69 33 32 20 31 33 2c 20 69 33 32 20 31 37 2c 20 69 33 32 20 31 39 2c 20 69 | 32.11,.i32.13,.i32.17,.i32.19,.i |
| 23f80 | 33 32 20 32 33 2c 20 69 33 32 20 32 39 2c 20 69 33 32 20 33 31 2c 20 69 33 32 20 33 37 2c 20 69 | 32.23,.i32.29,.i32.31,.i32.37,.i |
| 23fa0 | 33 32 20 34 31 2c 20 69 33 32 20 34 33 2c 20 69 33 32 20 34 37 2c 20 69 33 32 20 35 33 2c 20 69 | 32.41,.i32.43,.i32.47,.i32.53,.i |
| 23fc0 | 33 32 20 35 39 2c 20 69 33 32 20 36 31 2c 20 69 33 32 20 36 37 2c 20 69 33 32 20 37 31 2c 20 69 | 32.59,.i32.61,.i32.67,.i32.71,.i |
| 23fe0 | 33 32 20 37 33 2c 20 69 33 32 20 37 39 2c 20 69 33 32 20 38 33 2c 20 69 33 32 20 38 39 2c 20 69 | 32.73,.i32.79,.i32.83,.i32.89,.i |
| 24000 | 33 32 20 39 37 5d 0a 40 31 20 3d 20 69 6e 74 65 72 6e 61 6c 20 75 6e 6e 61 6d 65 64 5f 61 64 64 | 32.97].@1.=.internal.unnamed_add |
| 24020 | 72 20 63 6f 6e 73 74 61 6e 74 20 69 33 32 20 31 30 36 30 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | r.constant.i32.1060</code></pre> |
| 24040 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 77 65 20 64 69 | .......<p>.......Note.that.we.di |
| 24060 | 64 20 6e 6f 74 20 68 61 76 65 20 74 6f 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 73 70 65 63 69 61 | d.not.have.to.do.anything.specia |
| 24080 | 6c 20 77 69 74 68 20 74 68 65 20 73 79 6e 74 61 78 20 6f 66 20 74 68 65 73 65 20 66 75 6e 63 74 | l.with.the.syntax.of.these.funct |
| 240a0 | 69 6f 6e 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 20 20 20 20 20 77 65 20 63 6f 75 6c | ions..For.example,.......we.coul |
| 240c0 | 64 20 63 61 6c 6c 20 74 68 65 20 3c 63 6f 64 65 3e 73 75 6d 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 | d.call.the.<code>sum</code>.func |
| 240e0 | 74 69 6f 6e 20 61 73 20 69 73 20 77 69 74 68 20 61 20 73 6c 69 63 65 20 6f 66 20 6e 75 6d 62 65 | tion.as.is.with.a.slice.of.numbe |
| 24100 | 72 73 20 77 68 6f 73 65 20 6c 65 6e 67 74 68 20 61 6e 64 20 76 61 6c 75 65 73 20 77 65 72 65 0a | rs.whose.length.and.values.were. |
| 24120 | 20 20 20 20 20 20 6f 6e 6c 79 20 6b 6e 6f 77 6e 20 61 74 20 72 75 6e 2d 74 69 6d 65 2e 0a 20 20 | ......only.known.at.run-time.... |
| 24140 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 | ....</p>.....................<h2 |
| 24160 | 20 69 64 3d 22 47 65 6e 65 72 69 63 2d 44 61 74 61 2d 53 74 72 75 63 74 75 72 65 73 22 3e 47 65 | .id="Generic-Data-Structures">Ge |
| 24180 | 6e 65 72 69 63 20 44 61 74 61 20 53 74 72 75 63 74 75 72 65 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 | neric.Data.Structures</h2>...... |
| 241a0 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 75 73 65 73 20 74 68 65 73 65 20 63 61 70 61 62 | ..<p>.......Zig.uses.these.capab |
| 241c0 | 69 6c 69 74 69 65 73 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 67 65 6e 65 72 69 63 20 64 61 74 | ilities.to.implement.generic.dat |
| 241e0 | 61 20 73 74 72 75 63 74 75 72 65 73 20 77 69 74 68 6f 75 74 20 69 6e 74 72 6f 64 75 63 69 6e 67 | a.structures.without.introducing |
| 24200 | 20 61 6e 79 0a 20 20 20 20 20 20 73 70 65 63 69 61 6c 2d 63 61 73 65 20 73 79 6e 74 61 78 2e 20 | .any.......special-case.syntax.. |
| 24220 | 49 66 20 79 6f 75 20 66 6f 6c 6c 6f 77 65 64 20 61 6c 6f 6e 67 20 73 6f 20 66 61 72 2c 20 79 6f | If.you.followed.along.so.far,.yo |
| 24240 | 75 20 6d 61 79 20 61 6c 72 65 61 64 79 20 6b 6e 6f 77 20 68 6f 77 20 74 6f 20 63 72 65 61 74 65 | u.may.already.know.how.to.create |
| 24260 | 20 61 0a 20 20 20 20 20 20 67 65 6e 65 72 69 63 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 2e | .a.......generic.data.structure. |
| 24280 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 65 72 65 | .......</p>.......<p>.......Here |
| 242a0 | 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 67 65 6e 65 72 69 63 20 3c 63 6f 64 | .is.an.example.of.a.generic.<cod |
| 242c0 | 65 3e 4c 69 73 74 3c 2f 63 6f 64 65 3e 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 2c 20 74 68 | e>List</code>.data.structure,.th |
| 242e0 | 61 74 20 77 65 20 77 69 6c 6c 20 69 6e 73 74 61 6e 74 69 61 74 65 20 77 69 74 68 0a 20 20 20 20 | at.we.will.instantiate.with..... |
| 24300 | 20 20 74 68 65 20 74 79 70 65 20 3c 63 6f 64 65 3e 69 33 32 3c 2f 63 6f 64 65 3e 2e 20 49 6e 20 | ..the.type.<code>i32</code>..In. |
| 24320 | 5a 69 67 20 77 65 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 74 79 70 65 20 61 73 20 3c 63 6f 64 | Zig.we.refer.to.the.type.as.<cod |
| 24340 | 65 3e 4c 69 73 74 28 69 33 32 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | e>List(i32)</code>........</p>.. |
| 24360 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6e 20 4c | .....<pre><code.class="zig">fn.L |
| 24380 | 69 73 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 74 79 70 65 20 7b 0a 20 20 20 | ist(comptime.T:.type).type.{.... |
| 243a0 | 20 72 65 74 75 72 6e 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 20 20 20 20 69 74 65 6d 73 3a 20 | .return.struct.{.........items:. |
| 243c0 | 5b 5d 54 2c 0a 20 20 20 20 20 20 20 20 6c 65 6e 3a 20 75 73 69 7a 65 2c 0a 20 20 20 20 7d 3b 0a | []T,.........len:.usize,.....};. |
| 243e0 | 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | }</code></pre>.......<p>.......T |
| 24400 | 68 61 74 27 73 20 69 74 2e 20 49 74 27 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 | hat's.it..It's.a.function.that.r |
| 24420 | 65 74 75 72 6e 73 20 61 6e 20 61 6e 6f 6e 79 6d 6f 75 73 20 3c 63 6f 64 65 3e 73 74 72 75 63 74 | eturns.an.anonymous.<code>struct |
| 24440 | 3c 2f 63 6f 64 65 3e 2e 20 46 6f 72 20 74 68 65 20 70 75 72 70 6f 73 65 73 20 6f 66 20 65 72 72 | </code>..For.the.purposes.of.err |
| 24460 | 6f 72 20 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 61 6e 64 20 64 65 62 75 67 67 69 6e 67 2c | or.messages.......and.debugging, |
| 24480 | 20 5a 69 67 20 69 6e 66 65 72 73 20 74 68 65 20 6e 61 6d 65 20 3c 63 6f 64 65 3e 22 4c 69 73 74 | .Zig.infers.the.name.<code>"List |
| 244a0 | 28 69 33 32 29 22 3c 2f 63 6f 64 65 3e 20 66 72 6f 6d 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 | (i32)"</code>.from.the.function. |
| 244c0 | 6e 61 6d 65 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 76 6f 6b 65 64 20 77 68 65 6e | name.and.parameters.invoked.when |
| 244e0 | 20 63 72 65 61 74 69 6e 67 0a 20 20 20 20 20 20 74 68 65 20 61 6e 6f 6e 79 6d 6f 75 73 20 73 74 | .creating.......the.anonymous.st |
| 24500 | 72 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ruct........</p>.......<p>...... |
| 24520 | 20 54 6f 20 6b 65 65 70 20 74 68 65 20 6c 61 6e 67 75 61 67 65 20 73 6d 61 6c 6c 20 61 6e 64 20 | .To.keep.the.language.small.and. |
| 24540 | 75 6e 69 66 6f 72 6d 2c 20 61 6c 6c 20 61 67 67 72 65 67 61 74 65 20 74 79 70 65 73 20 69 6e 20 | uniform,.all.aggregate.types.in. |
| 24560 | 5a 69 67 20 61 72 65 20 61 6e 6f 6e 79 6d 6f 75 73 2e 20 54 6f 20 67 69 76 65 20 61 20 74 79 70 | Zig.are.anonymous..To.give.a.typ |
| 24580 | 65 0a 20 20 20 20 20 20 61 20 6e 61 6d 65 2c 20 77 65 20 61 73 73 69 67 6e 20 69 74 20 74 6f 20 | e.......a.name,.we.assign.it.to. |
| 245a0 | 61 20 63 6f 6e 73 74 61 6e 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 | a.constant:.......</p>.......<pr |
| 245c0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 4e 6f 64 65 20 3d | e><code.class="zig">const.Node.= |
| 245e0 | 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 6e 65 78 74 3a 20 26 61 6d 70 3b 4e 6f 64 65 2c 0a 20 | .struct.{.....next:.&Node,.. |
| 24600 | 20 20 20 6e 61 6d 65 3a 20 5b 5d 75 38 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | ...name:.[]u8,.};</code></pre>.. |
| 24620 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 62 65 63 61 75 73 | .....<p>.......This.works.becaus |
| 24640 | 65 20 61 6c 6c 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 61 72 65 | e.all.top.level.declarations.are |
| 24660 | 20 6f 72 64 65 72 2d 69 6e 64 65 70 65 6e 64 65 6e 74 2c 20 61 6e 64 20 61 73 20 6c 6f 6e 67 20 | .order-independent,.and.as.long. |
| 24680 | 61 73 20 74 68 65 72 65 20 69 73 6e 27 74 0a 20 20 20 20 20 20 61 6e 20 61 63 74 75 61 6c 20 69 | as.there.isn't.......an.actual.i |
| 246a0 | 6e 66 69 6e 69 74 65 20 72 65 67 72 65 73 73 69 6f 6e 2c 20 76 61 6c 75 65 73 20 63 61 6e 20 72 | nfinite.regression,.values.can.r |
| 246c0 | 65 66 65 72 20 74 6f 20 74 68 65 6d 73 65 6c 76 65 73 2c 20 64 69 72 65 63 74 6c 79 20 6f 72 20 | efer.to.themselves,.directly.or. |
| 246e0 | 69 6e 64 69 72 65 63 74 6c 79 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 0a 20 20 20 20 20 20 | indirectly..In.this.case,....... |
| 24700 | 3c 63 6f 64 65 3e 4e 6f 64 65 3c 2f 63 6f 64 65 3e 20 72 65 66 65 72 73 20 74 6f 20 69 74 73 65 | <code>Node</code>.refers.to.itse |
| 24720 | 6c 66 20 61 73 20 61 20 70 6f 69 6e 74 65 72 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 63 | lf.as.a.pointer,.which.is.not.ac |
| 24740 | 74 75 61 6c 6c 79 20 61 6e 20 69 6e 66 69 6e 69 74 65 20 72 65 67 72 65 73 73 69 6f 6e 2c 20 73 | tually.an.infinite.regression,.s |
| 24760 | 6f 0a 20 20 20 20 20 20 69 74 20 77 6f 72 6b 73 20 66 69 6e 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | o.......it.works.fine........</p |
| 24780 | 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 61 73 65 2d 53 74 75 64 | >..............<h2.id="Case-Stud |
| 247a0 | 79 2d 70 72 69 6e 74 66 2d 69 6e 2d 5a 69 67 22 3e 43 61 73 65 20 53 74 75 64 79 3a 20 70 72 69 | y-printf-in-Zig">Case.Study:.pri |
| 247c0 | 6e 74 66 20 69 6e 20 5a 69 67 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ntf.in.Zig</h2>........<p>...... |
| 247e0 | 20 50 75 74 74 69 6e 67 20 61 6c 6c 20 6f 66 20 74 68 69 73 20 74 6f 67 65 74 68 65 72 2c 20 6c | .Putting.all.of.this.together,.l |
| 24800 | 65 74 27 73 20 73 65 65 20 68 6f 77 20 3c 63 6f 64 65 3e 70 72 69 6e 74 66 3c 2f 63 6f 64 65 3e | et's.see.how.<code>printf</code> |
| 24820 | 20 77 6f 72 6b 73 20 69 6e 20 5a 69 67 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | .works.in.Zig........</p>....... |
| 24840 | 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 72 69 6e 74 66 2e 7a 69 67 3c 2f 70 3e 3c 70 | <p.class="file">printf.zig</p><p |
| 24860 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 77 61 72 6e 20 | re><code.class="zig">const.warn. |
| 24880 | 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 | =.@import("std").debug |
| 248a0 | 2e 77 61 72 6e 3b 0a 0a 63 6f 6e 73 74 20 61 5f 6e 75 6d 62 65 72 3a 20 69 33 32 20 3d 20 31 32 | .warn;..const.a_number:.i32.=.12 |
| 248c0 | 33 34 3b 0a 63 6f 6e 73 74 20 61 5f 73 74 72 69 6e 67 20 3d 20 26 71 75 6f 74 3b 66 6f 6f 62 61 | 34;.const.a_string.=."fooba |
| 248e0 | 72 26 71 75 6f 74 3b 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 76 6f 69 64 20 7b 0a 20 | r";..pub.fn.main().void.{.. |
| 24900 | 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 | ...warn("here.is.a.string:. |
| 24920 | 27 7b 7d 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 | '{}'.here.is.a.number:.{}\n" |
| 24940 | 3b 2c 20 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e | ;,.a_string,.a_number);.}</code> |
| 24960 | 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 | </pre><pre><code.class="shell">$ |
| 24980 | 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 70 72 69 6e 74 66 2e 7a 69 67 0a 24 20 2e 2f 70 72 | .zig.build-exe.printf.zig.$../pr |
| 249a0 | 69 6e 74 66 0a 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 66 6f 6f 62 61 72 27 20 | intf.here.is.a.string:.'foobar'. |
| 249c0 | 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 31 32 33 34 0a 3c 2f 63 6f 64 65 3e 3c 2f | here.is.a.number:.1234.</code></ |
| 249e0 | 70 72 65 3e 0a 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4c 65 74 27 73 20 63 72 61 | pre>.........<p>.......Let's.cra |
| 24a00 | 63 6b 20 6f 70 65 6e 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 | ck.open.the.implementation.of.th |
| 24a20 | 69 73 20 61 6e 64 20 73 65 65 20 68 6f 77 20 69 74 20 77 6f 72 6b 73 3a 0a 20 20 20 20 20 20 3c | is.and.see.how.it.works:.......< |
| 24a40 | 2f 70 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | /p>........<pre><code.class="zig |
| 24a60 | 22 3e 2f 2f 2f 20 43 61 6c 6c 73 20 70 72 69 6e 74 20 61 6e 64 20 74 68 65 6e 20 66 6c 75 73 68 | ">///.Calls.print.and.then.flush |
| 24a80 | 65 73 20 74 68 65 20 62 75 66 66 65 72 2e 0a 70 75 62 20 66 6e 20 70 72 69 6e 74 66 28 73 65 6c | es.the.buffer..pub.fn.printf(sel |
| 24aa0 | 66 3a 20 26 61 6d 70 3b 4f 75 74 53 74 72 65 61 6d 2c 20 63 6f 6d 70 74 69 6d 65 20 66 6f 72 6d | f:.&OutStream,.comptime.form |
| 24ac0 | 61 74 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 20 65 72 72 6f 72 | at:.[]const.u8,.args:....).error |
| 24ae0 | 21 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 53 74 61 74 65 20 3d 20 65 6e 75 6d 20 7b | !void.{.....const.State.=.enum.{ |
| 24b00 | 0a 20 20 20 20 20 20 20 20 53 74 61 72 74 2c 0a 20 20 20 20 20 20 20 20 4f 70 65 6e 42 72 61 63 | .........Start,.........OpenBrac |
| 24b20 | 65 2c 0a 20 20 20 20 20 20 20 20 43 6c 6f 73 65 42 72 61 63 65 2c 0a 20 20 20 20 7d 3b 0a 0a 20 | e,.........CloseBrace,.....};... |
| 24b40 | 20 20 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 20 73 74 61 72 74 5f 69 6e 64 65 78 3a 20 75 73 69 | ...comptime.var.start_index:.usi |
| 24b60 | 7a 65 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 20 73 74 61 74 65 20 3d | ze.=.0;.....comptime.var.state.= |
| 24b80 | 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 76 61 72 20 6e | .State.Start;.....comptime.var.n |
| 24ba0 | 65 78 74 5f 61 72 67 3a 20 75 73 69 7a 65 20 3d 20 30 3b 0a 0a 20 20 20 20 69 6e 6c 69 6e 65 20 | ext_arg:.usize.=.0;......inline. |
| 24bc0 | 66 6f 72 20 28 66 6f 72 6d 61 74 29 20 7c 63 2c 20 69 7c 20 7b 0a 20 20 20 20 20 20 20 20 73 77 | for.(format).|c,.i|.{.........sw |
| 24be0 | 69 74 63 68 20 28 73 74 61 74 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 | itch.(state).{.............State |
| 24c00 | 2e 53 74 61 72 74 20 3d 26 67 74 3b 20 73 77 69 74 63 68 20 28 63 29 20 7b 0a 20 20 20 20 20 20 | .Start.=>.switch.(c).{....... |
| 24c20 | 20 20 20 20 20 20 20 20 20 20 27 7b 27 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 | ..........'{'.=>.{........... |
| 24c40 | 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 61 72 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 69 | ..........if.(start_index.<.i |
| 24c60 | 29 20 74 72 79 20 73 65 6c 66 2e 77 72 69 74 65 28 66 6f 72 6d 61 74 5b 73 74 61 72 74 5f 69 6e | ).try.self.write(format[start_in |
| 24c80 | 64 65 78 2e 2e 69 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 | dex..i]);.....................st |
| 24ca0 | 61 74 65 20 3d 20 53 74 61 74 65 2e 4f 70 65 6e 42 72 61 63 65 3b 0a 20 20 20 20 20 20 20 20 20 | ate.=.State.OpenBrace;.......... |
| 24cc0 | 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 7d 27 20 3d 26 | .......},.................'}'.=& |
| 24ce0 | 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 74 | gt;.{.....................if.(st |
| 24d00 | 61 72 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 69 29 20 74 72 79 20 73 65 6c 66 2e 77 72 69 74 65 | art_index.<.i).try.self.write |
| 24d20 | 28 66 6f 72 6d 61 74 5b 73 74 61 72 74 5f 69 6e 64 65 78 2e 2e 69 5d 29 3b 0a 20 20 20 20 20 20 | (format[start_index..i]);....... |
| 24d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 43 6c 6f 73 | ..............state.=.State.Clos |
| 24d60 | 65 42 72 61 63 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 | eBrace;.................},...... |
| 24d80 | 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 7b 7d 2c 0a 20 20 20 20 20 20 | ...........else.=>.{},....... |
| 24da0 | 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 53 74 61 74 65 2e 4f 70 65 6e 42 | ......},.............State.OpenB |
| 24dc0 | 72 61 63 65 20 3d 26 67 74 3b 20 73 77 69 74 63 68 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 | race.=>.switch.(c).{......... |
| 24de0 | 20 20 20 20 20 20 20 20 27 7b 27 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ........'{'.=>.{............. |
| 24e00 | 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 | ........state.=.State.Start;.... |
| 24e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 | .................start_index.=.i |
| 24e40 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | ;.................},............ |
| 24e60 | 20 20 20 20 20 27 7d 27 20 3d 26 67 74 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....'}'.=>.{................ |
| 24e80 | 20 20 20 20 20 74 72 79 20 73 65 6c 66 2e 70 72 69 6e 74 56 61 6c 75 65 28 61 72 67 73 5b 6e 65 | .....try.self.printValue(args[ne |
| 24ea0 | 78 74 5f 61 72 67 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 | xt_arg]);.....................ne |
| 24ec0 | 78 74 5f 61 72 67 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt_arg.+=.1;.................... |
| 24ee0 | 20 73 74 61 74 65 20 3d 20 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 | .state.=.State.Start;........... |
| 24f00 | 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 20 2b 20 31 3b 0a 20 | ..........start_index.=.i.+.1;.. |
| 24f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...............},............... |
| 24f40 | 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 75 6f 74 | ..else.=>.@compileError(" |
| 24f60 | 3b 55 6e 6b 6e 6f 77 6e 20 66 6f 72 6d 61 74 20 63 68 61 72 61 63 74 65 72 3a 20 26 71 75 6f 74 | ;Unknown.format.character:." |
| 24f80 | 3b 20 2b 2b 20 63 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 | ;.++.c),.............},......... |
| 24fa0 | 20 20 20 20 53 74 61 74 65 2e 43 6c 6f 73 65 42 72 61 63 65 20 3d 26 67 74 3b 20 73 77 69 74 63 | ....State.CloseBrace.=>.switc |
| 24fc0 | 68 20 28 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 7d 27 20 3d 26 67 74 | h.(c).{.................'}'.=> |
| 24fe0 | 3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 3d 20 | ;.{.....................state.=. |
| 25000 | 53 74 61 74 65 2e 53 74 61 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | State.Start;.................... |
| 25020 | 20 73 74 61 72 74 5f 69 6e 64 65 78 20 3d 20 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .start_index.=.i;............... |
| 25040 | 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 3d 26 67 74 3b 20 | ..},.................else.=>. |
| 25060 | 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 75 6f 74 3b 53 69 6e 67 6c 65 20 27 7d 27 20 65 | @compileError("Single.'}'.e |
| 25080 | 6e 63 6f 75 6e 74 65 72 65 64 20 69 6e 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 26 71 75 6f 74 | ncountered.in.format.string" |
| 250a0 | 3b 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 | ;),.............},.........}.... |
| 250c0 | 20 7d 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 61 72 | .}.....comptime.{.........if.(ar |
| 250e0 | 67 73 2e 6c 65 6e 20 21 3d 20 6e 65 78 74 5f 61 72 67 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 | gs.len.!=.next_arg).{........... |
| 25100 | 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 75 6f 74 3b 55 6e 75 73 65 64 20 61 72 67 | ..@compileError("Unused.arg |
| 25120 | 75 6d 65 6e 74 73 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 | uments");.........}........ |
| 25140 | 20 69 66 20 28 73 74 61 74 65 20 21 3d 20 53 74 61 74 65 2e 53 74 61 72 74 29 20 7b 0a 20 20 20 | .if.(state.!=.State.Start).{.... |
| 25160 | 20 20 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 75 6f 74 3b 49 6e 63 | .........@compileError("Inc |
| 25180 | 6f 6d 70 6c 65 74 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 3a 20 26 71 75 6f 74 3b 20 2b 2b | omplete.format.string:.".++ |
| 251a0 | 20 66 6f 72 6d 61 74 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 | .format);.........}.....}.....if |
| 251c0 | 20 28 73 74 61 72 74 5f 69 6e 64 65 78 20 26 6c 74 3b 20 66 6f 72 6d 61 74 2e 6c 65 6e 29 20 7b | .(start_index.<.format.len).{ |
| 251e0 | 0a 20 20 20 20 20 20 20 20 74 72 79 20 73 65 6c 66 2e 77 72 69 74 65 28 66 6f 72 6d 61 74 5b 73 | .........try.self.write(format[s |
| 25200 | 74 61 72 74 5f 69 6e 64 65 78 2e 2e 66 6f 72 6d 61 74 2e 6c 65 6e 5d 29 3b 0a 20 20 20 20 7d 0a | tart_index..format.len]);.....}. |
| 25220 | 20 20 20 20 74 72 79 20 73 65 6c 66 2e 66 6c 75 73 68 28 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f | ....try.self.flush();.}</code></ |
| 25240 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 61 20 70 | pre>.......<p>.......This.is.a.p |
| 25260 | 72 6f 6f 66 20 6f 66 20 63 6f 6e 63 65 70 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 3b 20 | roof.of.concept.implementation;. |
| 25280 | 74 68 65 20 61 63 74 75 61 6c 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 73 74 61 6e 64 | the.actual.function.in.the.stand |
| 252a0 | 61 72 64 20 6c 69 62 72 61 72 79 20 68 61 73 20 6d 6f 72 65 0a 20 20 20 20 20 20 66 6f 72 6d 61 | ard.library.has.more.......forma |
| 252c0 | 74 74 69 6e 67 20 63 61 70 61 62 69 6c 69 74 69 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | tting.capabilities........</p>.. |
| 252e0 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 69 73 | .....<p>.......Note.that.this.is |
| 25300 | 20 6e 6f 74 20 68 61 72 64 2d 63 6f 64 65 64 20 69 6e 74 6f 20 74 68 65 20 5a 69 67 20 63 6f 6d | .not.hard-coded.into.the.Zig.com |
| 25320 | 70 69 6c 65 72 3b 20 74 68 69 73 20 69 73 20 75 73 65 72 6c 61 6e 64 20 63 6f 64 65 20 69 6e 20 | piler;.this.is.userland.code.in. |
| 25340 | 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | the.standard.library........</p> |
| 25360 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 74 68 69 73 20 66 75 6e 63 74 | .......<p>.......When.this.funct |
| 25380 | 69 6f 6e 20 69 73 20 61 6e 61 6c 79 7a 65 64 20 66 72 6f 6d 20 6f 75 72 20 65 78 61 6d 70 6c 65 | ion.is.analyzed.from.our.example |
| 253a0 | 20 63 6f 64 65 20 61 62 6f 76 65 2c 20 5a 69 67 20 70 61 72 74 69 61 6c 6c 79 20 65 76 61 6c 75 | .code.above,.Zig.partially.evalu |
| 253c0 | 61 74 65 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 61 6e 64 20 65 6d 69 74 | ates.the.function.......and.emit |
| 253e0 | 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 61 63 74 75 61 6c 6c 79 20 6c 6f 6f 6b 73 | s.a.function.that.actually.looks |
| 25400 | 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 | .like.this:.......</p>.......<pr |
| 25420 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 75 62 20 66 6e 20 70 72 69 6e 74 | e><code.class="zig">pub.fn.print |
| 25440 | 66 28 73 65 6c 66 3a 20 26 61 6d 70 3b 4f 75 74 53 74 72 65 61 6d 2c 20 61 72 67 30 3a 20 69 33 | f(self:.&OutStream,.arg0:.i3 |
| 25460 | 32 2c 20 61 72 67 31 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 29 20 21 76 6f 69 64 20 7b 0a 20 20 20 | 2,.arg1:.[]const.u8).!void.{.... |
| 25480 | 20 74 72 79 20 73 65 6c 66 2e 77 72 69 74 65 28 26 71 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 | .try.self.write("here.is.a. |
| 254a0 | 73 74 72 69 6e 67 3a 20 27 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 74 72 79 20 73 65 6c 66 2e 70 | string:.'");.....try.self.p |
| 254c0 | 72 69 6e 74 56 61 6c 75 65 28 61 72 67 30 29 3b 0a 20 20 20 20 74 72 79 20 73 65 6c 66 2e 77 72 | rintValue(arg0);.....try.self.wr |
| 254e0 | 69 74 65 28 26 71 75 6f 74 3b 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 26 71 | ite("'.here.is.a.number:.&q |
| 25500 | 75 6f 74 3b 29 3b 0a 20 20 20 20 74 72 79 20 73 65 6c 66 2e 70 72 69 6e 74 56 61 6c 75 65 28 61 | uot;);.....try.self.printValue(a |
| 25520 | 72 67 31 29 3b 0a 20 20 20 20 74 72 79 20 73 65 6c 66 2e 77 72 69 74 65 28 26 71 75 6f 74 3b 5c | rg1);.....try.self.write("\ |
| 25540 | 6e 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 74 72 79 20 73 65 6c 66 2e 66 6c 75 73 68 28 29 3b 0a | n");.....try.self.flush();. |
| 25560 | 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c | }</code></pre>.......<p>.......< |
| 25580 | 63 6f 64 65 3e 70 72 69 6e 74 56 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 66 75 6e 63 | code>printValue</code>.is.a.func |
| 255a0 | 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 20 70 61 72 61 6d 65 74 65 72 20 6f 66 20 61 | tion.that.takes.a.parameter.of.a |
| 255c0 | 6e 79 20 74 79 70 65 2c 20 61 6e 64 20 64 6f 65 73 20 64 69 66 66 65 72 65 6e 74 20 74 68 69 6e | ny.type,.and.does.different.thin |
| 255e0 | 67 73 20 64 65 70 65 6e 64 69 6e 67 0a 20 20 20 20 20 20 6f 6e 20 74 68 65 20 74 79 70 65 3a 0a | gs.depending.......on.the.type:. |
| 25600 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ......</p>.......<pre><code.clas |
| 25620 | 73 3d 22 7a 69 67 22 3e 70 75 62 20 66 6e 20 70 72 69 6e 74 56 61 6c 75 65 28 73 65 6c 66 3a 20 | s="zig">pub.fn.printValue(self:. |
| 25640 | 26 61 6d 70 3b 4f 75 74 53 74 72 65 61 6d 2c 20 76 61 6c 75 65 3a 20 76 61 72 29 20 21 76 6f 69 | &OutStream,.value:.var).!voi |
| 25660 | 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 54 20 3d 20 40 74 79 70 65 4f 66 28 76 61 6c 75 65 29 | d.{.....const.T.=.@typeOf(value) |
| 25680 | 3b 0a 20 20 20 20 69 66 20 28 40 69 73 49 6e 74 65 67 65 72 28 54 29 29 20 7b 0a 20 20 20 20 20 | ;.....if.(@isInteger(T)).{...... |
| 256a0 | 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 70 72 69 6e 74 49 6e 74 28 54 2c 20 76 61 6c 75 65 | ...return.self.printInt(T,.value |
| 256c0 | 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 40 69 73 46 6c 6f 61 74 28 54 29 29 20 7b | );.....}.else.if.(@isFloat(T)).{ |
| 256e0 | 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 70 72 69 6e 74 46 6c 6f 61 74 28 | .........return.self.printFloat( |
| 25700 | 54 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 40 63 61 6e 49 6d | T,.value);.....}.else.if.(@canIm |
| 25720 | 70 6c 69 63 69 74 43 61 73 74 28 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 76 61 6c 75 65 29 29 20 7b | plicitCast([]const.u8,.value)).{ |
| 25740 | 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 61 73 74 65 64 5f 76 61 6c 75 65 20 3d 20 28 5b | .........const.casted_value.=.([ |
| 25760 | 5d 63 6f 6e 73 74 20 75 38 29 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 | ]const.u8)(value);.........retur |
| 25780 | 6e 20 73 65 6c 66 2e 77 72 69 74 65 28 63 61 73 74 65 64 5f 76 61 6c 75 65 29 3b 0a 20 20 20 20 | n.self.write(casted_value);..... |
| 257a0 | 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 | }.else.{.........@compileError(& |
| 257c0 | 71 75 6f 74 3b 55 6e 61 62 6c 65 20 74 6f 20 70 72 69 6e 74 20 74 79 70 65 20 27 26 71 75 6f 74 | quot;Unable.to.print.type.'" |
| 257e0 | 3b 20 2b 2b 20 40 74 79 70 65 4e 61 6d 65 28 54 29 20 2b 2b 20 26 71 75 6f 74 3b 27 26 71 75 6f | ;.++.@typeName(T).++."'&quo |
| 25800 | 74 3b 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | t;);.....}.}</code></pre>....... |
| 25820 | 3c 70 3e 0a 20 20 20 20 20 20 41 6e 64 20 6e 6f 77 2c 20 77 68 61 74 20 68 61 70 70 65 6e 73 20 | <p>.......And.now,.what.happens. |
| 25840 | 69 66 20 77 65 20 67 69 76 65 20 74 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 20 74 6f | if.we.give.too.many.arguments.to |
| 25860 | 20 3c 63 6f 64 65 3e 70 72 69 6e 74 66 3c 2f 63 6f 64 65 3e 3f 0a 20 20 20 20 20 20 3c 2f 70 3e | .<code>printf</code>?.......</p> |
| 25880 | 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c | .......<p.class="file">test.zig< |
| 258a0 | 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 | /p><pre><code.class="zig">const. |
| 258c0 | 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e | warn.=.@import("std"). |
| 258e0 | 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 63 6f 6e 73 74 20 61 5f 6e 75 6d 62 65 72 3a 20 69 33 32 | debug.warn;..const.a_number:.i32 |
| 25900 | 20 3d 20 31 32 33 34 3b 0a 63 6f 6e 73 74 20 61 5f 73 74 72 69 6e 67 20 3d 20 26 71 75 6f 74 3b | .=.1234;.const.a_string.=." |
| 25920 | 66 6f 6f 62 61 72 26 71 75 6f 74 3b 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 70 72 69 6e 74 66 | foobar";..test."printf |
| 25940 | 20 74 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 | .too.many.arguments".{..... |
| 25960 | 77 61 72 6e 28 26 71 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d | warn("here.is.a.string:.'{} |
| 25980 | 27 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 0a | '.here.is.a.number:.{}\n",. |
| 259a0 | 20 20 20 20 20 20 20 20 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 2c 20 61 5f 6e 75 | ........a_string,.a_number,.a_nu |
| 259c0 | 6d 62 65 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 | mber);.}</code></pre><pre><code. |
| 259e0 | 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 | class="shell">$.zig.test.test.zi |
| 25a00 | 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f | g.<span.class="t0_1">/home/andy/ |
| 25a20 | 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 66 6d 74 2f 69 6e | dev/zig/build/lib/zig/std/fmt/in |
| 25a40 | 64 65 78 2e 7a 69 67 3a 31 38 33 3a 31 33 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 | dex.zig:183:13:.</span><span.cla |
| 25a60 | 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c | ss="t31_1">error:</span><span.cl |
| 25a80 | 61 73 73 3d 22 74 30 5f 31 22 3e 20 55 6e 75 73 65 64 20 61 72 67 75 6d 65 6e 74 73 3c 2f 73 70 | ass="t0_1">.Unused.arguments</sp |
| 25aa0 | 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 28 26 71 | an>.............@compileError(&q |
| 25ac0 | 75 6f 74 3b 55 6e 75 73 65 64 20 61 72 67 75 6d 65 6e 74 73 26 71 75 6f 74 3b 29 3b 0a 20 20 20 | uot;Unused.arguments");.... |
| 25ae0 | 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f | .........<span.class="t32_1">^</ |
| 25b00 | 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 | span>.<span.class="t0_1">/home/a |
| 25b20 | 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 69 6f | ndy/dev/zig/build/lib/zig/std/io |
| 25b40 | 2e 7a 69 67 3a 32 33 36 3a 33 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d | .zig:236:34:.</span><span.class= |
| 25b60 | 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d | "t36_1">note:</span><span.class= |
| 25b80 | 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a | "t0_1">.called.from.here</span>. |
| 25ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 64 2e 66 6d 74 2e 66 6f 72 6d 61 | ............return.std.fmt.forma |
| 25bc0 | 74 28 73 65 6c 66 2c 20 45 72 72 6f 72 2c 20 73 65 6c 66 2e 77 72 69 74 65 46 6e 2c 20 66 6f 72 | t(self,.Error,.self.writeFn,.for |
| 25be0 | 6d 61 74 2c 20 61 72 67 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mat,.args);..................... |
| 25c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 | .............<span.class="t32_1" |
| 25c20 | 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f | >^</span>.<span.class="t0_1">/ho |
| 25c40 | 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 | me/andy/dev/zig/build/lib/zig/st |
| 25c60 | 64 2f 64 65 62 75 67 2f 69 6e 64 65 78 2e 7a 69 67 3a 32 32 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e | d/debug/index.zig:22:17:.</span> |
| 25c80 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e | <span.class="t36_1">note:</span> |
| 25ca0 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 | <span.class="t0_1">.called.from. |
| 25cc0 | 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 74 64 65 72 72 2e 70 72 69 6e 74 28 66 6d 74 | here</span>.....stderr.print(fmt |
| 25ce0 | 2c 20 61 72 67 73 29 20 63 61 74 63 68 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 20 20 | ,.args).catch.return;........... |
| 25d00 | 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 | ......<span.class="t32_1">^</spa |
| 25d20 | 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 | n>.<span.class="t0_1">/home/andy |
| 25d40 | 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 37 3a 39 | /dev/zig/docgen_tmp/test.zig:7:9 |
| 25d60 | 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 | :.</span><span.class="t36_1">not |
| 25d80 | 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c | e:</span><span.class="t0_1">.cal |
| 25da0 | 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 77 61 72 6e 28 26 71 | led.from.here</span>.....warn(&q |
| 25dc0 | 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d 27 20 68 65 72 65 20 | uot;here.is.a.string:.'{}'.here. |
| 25de0 | 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 0a 20 20 20 20 20 20 20 | is.a.number:.{}\n",........ |
| 25e00 | 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f | .<span.class="t32_1">^</span>.</ |
| 25e20 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 | code></pre>........<p>.......Zig |
| 25e40 | 20 67 69 76 65 73 20 70 72 6f 67 72 61 6d 6d 65 72 73 20 74 68 65 20 74 6f 6f 6c 73 20 6e 65 65 | .gives.programmers.the.tools.nee |
| 25e60 | 64 65 64 20 74 6f 20 70 72 6f 74 65 63 74 20 74 68 65 6d 73 65 6c 76 65 73 20 61 67 61 69 6e 73 | ded.to.protect.themselves.agains |
| 25e80 | 74 20 74 68 65 69 72 20 6f 77 6e 20 6d 69 73 74 61 6b 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | t.their.own.mistakes........</p> |
| 25ea0 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 64 6f 65 73 6e 27 74 20 63 61 72 | .......<p>.......Zig.doesn't.car |
| 25ec0 | 65 20 77 68 65 74 68 65 72 20 74 68 65 20 66 6f 72 6d 61 74 20 61 72 67 75 6d 65 6e 74 20 69 73 | e.whether.the.format.argument.is |
| 25ee0 | 20 61 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 0a 20 20 20 20 20 20 6f 6e 6c 79 20 74 68 | .a.string.literal,.......only.th |
| 25f00 | 61 74 20 69 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e 6f 77 6e 20 76 61 | at.it.is.a.compile-time.known.va |
| 25f20 | 6c 75 65 20 74 68 61 74 20 69 73 20 69 6d 70 6c 69 63 69 74 6c 79 20 63 61 73 74 61 62 6c 65 20 | lue.that.is.implicitly.castable. |
| 25f40 | 74 6f 20 61 20 3c 63 6f 64 65 3e 5b 5d 63 6f 6e 73 74 20 75 38 3c 2f 63 6f 64 65 3e 3a 0a 20 20 | to.a.<code>[]const.u8</code>:... |
| 25f60 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 70 | ....</p>.......<p.class="file">p |
| 25f80 | 72 69 6e 74 66 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | rintf.zig</p><pre><code.class="z |
| 25fa0 | 69 67 22 3e 63 6f 6e 73 74 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 | ig">const.warn.=.@import("s |
| 25fc0 | 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 63 6f 6e 73 74 20 61 5f 6e | td").debug.warn;..const.a_n |
| 25fe0 | 75 6d 62 65 72 3a 20 69 33 32 20 3d 20 31 32 33 34 3b 0a 63 6f 6e 73 74 20 61 5f 73 74 72 69 6e | umber:.i32.=.1234;.const.a_strin |
| 26000 | 67 20 3d 20 26 71 75 6f 74 3b 66 6f 6f 62 61 72 26 71 75 6f 74 3b 3b 0a 63 6f 6e 73 74 20 66 6d | g.=."foobar";.const.fm |
| 26020 | 74 20 3d 20 26 71 75 6f 74 3b 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 7b 7d 27 | t.=."here.is.a.string:.'{}' |
| 26040 | 20 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 3b 0a 0a | .here.is.a.number:.{}\n";.. |
| 26060 | 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 77 61 72 6e 28 66 6d | pub.fn.main().void.{.....warn(fm |
| 26080 | 74 2c 20 61 5f 73 74 72 69 6e 67 2c 20 61 5f 6e 75 6d 62 65 72 29 3b 0a 7d 3c 2f 63 6f 64 65 3e | t,.a_string,.a_number);.}</code> |
| 260a0 | 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 | </pre><pre><code.class="shell">$ |
| 260c0 | 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 70 72 69 6e 74 66 2e 7a 69 67 0a 24 20 2e 2f 70 72 | .zig.build-exe.printf.zig.$../pr |
| 260e0 | 69 6e 74 66 0a 68 65 72 65 20 69 73 20 61 20 73 74 72 69 6e 67 3a 20 27 66 6f 6f 62 61 72 27 20 | intf.here.is.a.string:.'foobar'. |
| 26100 | 68 65 72 65 20 69 73 20 61 20 6e 75 6d 62 65 72 3a 20 31 32 33 34 0a 3c 2f 63 6f 64 65 3e 3c 2f | here.is.a.number:.1234.</code></ |
| 26120 | 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 | pre>........<p>.......This.works |
| 26140 | 20 66 69 6e 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | .fine........</p>.......<p>..... |
| 26160 | 20 20 5a 69 67 20 64 6f 65 73 20 6e 6f 74 20 73 70 65 63 69 61 6c 20 63 61 73 65 20 73 74 72 69 | ..Zig.does.not.special.case.stri |
| 26180 | 6e 67 20 66 6f 72 6d 61 74 74 69 6e 67 20 69 6e 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 61 6e | ng.formatting.in.the.compiler.an |
| 261a0 | 64 20 69 6e 73 74 65 61 64 20 65 78 70 6f 73 65 73 20 65 6e 6f 75 67 68 20 70 6f 77 65 72 20 74 | d.instead.exposes.enough.power.t |
| 261c0 | 6f 20 61 63 63 6f 6d 70 6c 69 73 68 20 74 68 69 73 0a 20 20 20 20 20 20 74 61 73 6b 20 69 6e 20 | o.accomplish.this.......task.in. |
| 261e0 | 75 73 65 72 6c 61 6e 64 2e 20 49 74 20 64 6f 65 73 20 73 6f 20 77 69 74 68 6f 75 74 20 69 6e 74 | userland..It.does.so.without.int |
| 26200 | 72 6f 64 75 63 69 6e 67 20 61 6e 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 20 6f 6e 20 74 6f 70 | roducing.another.language.on.top |
| 26220 | 20 6f 66 20 5a 69 67 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 61 20 6d 61 63 72 6f 20 6c | .of.Zig,.such.as.......a.macro.l |
| 26240 | 61 6e 67 75 61 67 65 20 6f 72 20 61 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 6c 61 6e 67 75 61 | anguage.or.a.preprocessor.langua |
| 26260 | 67 65 2e 20 49 74 27 73 20 5a 69 67 20 61 6c 6c 20 74 68 65 20 77 61 79 20 64 6f 77 6e 2e 0a 20 | ge..It's.Zig.all.the.way.down... |
| 26280 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 73 75 67 67 65 73 74 | .....</p>.......<p>TODO:.suggest |
| 262a0 | 69 6f 6e 20 74 6f 20 6e 6f 74 20 75 73 65 20 69 6e 6c 69 6e 65 20 75 6e 6c 65 73 73 20 6e 65 63 | ion.to.not.use.inline.unless.nec |
| 262c0 | 65 73 73 61 72 79 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | essary</p>.....................< |
| 262e0 | 68 31 20 69 64 3d 22 69 6e 6c 69 6e 65 22 3e 69 6e 6c 69 6e 65 3c 2f 68 31 3e 0a 0a 20 20 20 20 | h1.id="inline">inline</h1>...... |
| 26300 | 20 20 3c 70 3e 54 4f 44 4f 3a 20 69 6e 6c 69 6e 65 20 77 68 69 6c 65 3c 2f 70 3e 0a 20 20 20 20 | ..<p>TODO:.inline.while</p>..... |
| 26320 | 20 20 3c 70 3e 54 4f 44 4f 3a 20 69 6e 6c 69 6e 65 20 66 6f 72 3c 2f 70 3e 0a 20 20 20 20 20 20 | ..<p>TODO:.inline.for</p>....... |
| 26340 | 3c 70 3e 54 4f 44 4f 3a 20 73 75 67 67 65 73 74 69 6f 6e 20 74 6f 20 6e 6f 74 20 75 73 65 20 69 | <p>TODO:.suggestion.to.not.use.i |
| 26360 | 6e 6c 69 6e 65 20 75 6e 6c 65 73 73 20 6e 65 63 65 73 73 61 72 79 3c 2f 70 3e 0a 20 20 20 20 20 | nline.unless.necessary</p>...... |
| 26380 | 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 41 73 73 65 6d 62 6c 79 22 3e 41 73 73 65 6d 62 | ........<h1.id="Assembly">Assemb |
| 263a0 | 6c 79 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 | ly</h1>........<p>TODO:.example. |
| 263c0 | 6f 66 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | of.inline.assembly</p>.......<p> |
| 263e0 | 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 6d 6f 64 75 6c 65 20 6c 65 76 65 6c 20 61 73 | TODO:.example.of.module.level.as |
| 26400 | 73 65 6d 62 6c 79 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c | sembly</p>.......<p>TODO:.exampl |
| 26420 | 65 20 6f 66 20 75 73 69 6e 67 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 20 72 65 74 75 72 | e.of.using.inline.assembly.retur |
| 26440 | 6e 20 76 61 6c 75 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 | n.value</p>.......<p>TODO:.examp |
| 26460 | 6c 65 20 6f 66 20 75 73 69 6e 67 20 69 6e 6c 69 6e 65 20 61 73 73 65 6d 62 6c 79 20 61 73 73 69 | le.of.using.inline.assembly.assi |
| 26480 | 67 6e 69 6e 67 20 76 61 6c 75 65 73 20 74 6f 20 76 61 72 69 61 62 6c 65 73 3c 2f 70 3e 0a 20 20 | gning.values.to.variables</p>... |
| 264a0 | 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 41 74 6f 6d 69 63 73 22 3e 41 74 6f 6d | ...........<h1.id="Atomics">Atom |
| 264c0 | 69 63 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 40 66 65 6e 63 65 28 | ics</h1>........<p>TODO:.@fence( |
| 264e0 | 29 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 40 61 74 6f 6d 69 63 20 72 6d 77 | )</p>.......<p>TODO:.@atomic.rmw |
| 26500 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 62 75 69 6c 74 69 6e 20 61 74 6f 6d | </p>.......<p>TODO:.builtin.atom |
| 26520 | 69 63 20 6d 65 6d 6f 72 79 20 6f 72 64 65 72 69 6e 67 20 65 6e 75 6d 3c 2f 70 3e 0a 20 20 20 20 | ic.memory.ordering.enum</p>..... |
| 26540 | 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 42 75 69 6c 74 69 6e 2d 46 75 6e 63 74 69 6f | .........<h1.id="Builtin-Functio |
| 26560 | 6e 73 22 3e 42 75 69 6c 74 69 6e 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 | ns">Builtin.Functions</h1>...... |
| 26580 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 42 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 | ..<p>.......Builtin.functions.ar |
| 265a0 | 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 20 61 6e 64 20 61 | e.provided.by.the.compiler.and.a |
| 265c0 | 72 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 3c 2f 63 6f 64 65 3e 2e | re.prefixed.with.<code>@</code>. |
| 265e0 | 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e | .......The.<code>comptime</code> |
| 26600 | 20 6b 65 79 77 6f 72 64 20 6f 6e 20 61 20 70 61 72 61 6d 65 74 65 72 20 6d 65 61 6e 73 20 74 68 | .keyword.on.a.parameter.means.th |
| 26620 | 61 74 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 20 6d 75 73 74 20 62 65 20 6b 6e 6f 77 6e 0a 20 | at.the.parameter.must.be.known.. |
| 26640 | 20 20 20 20 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | .....at.compile.time........</p> |
| 26660 | 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e | .......<h2.id="addWithOverflow"> |
| 26680 | 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 | @addWithOverflow</h2>........<pr |
| 266a0 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 61 64 64 57 69 74 68 4f 76 65 72 | e><code.class="zig">@addWithOver |
| 266c0 | 66 6c 6f 77 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 | flow(comptime.T:.type,.a:.T,.b:. |
| 266e0 | 54 2c 20 72 65 73 75 6c 74 3a 20 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 | T,.result:.&T).->.bool</c |
| 26700 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f | ode></pre>.......<p>.......Perfo |
| 26720 | 72 6d 73 20 3c 63 6f 64 65 3e 2a 72 65 73 75 6c 74 20 3d 20 61 20 2b 20 62 3c 2f 63 6f 64 65 3e | rms.<code>*result.=.a.+.b</code> |
| 26740 | 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 | ..If.overflow.or.underflow.occur |
| 26760 | 73 2c 0a 20 20 20 20 20 20 73 74 6f 72 65 73 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 | s,.......stores.the.overflowed.b |
| 26780 | 69 74 73 20 69 6e 20 3c 63 6f 64 65 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 | its.in.<code>result</code>.and.r |
| 267a0 | 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 | eturns.<code>true</code>........ |
| 267c0 | 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 | If.no.overflow.or.underflow.occu |
| 267e0 | 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a | rs,.returns.<code>false</code>.. |
| 26800 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 | ......</p>..............<h2.id=" |
| 26820 | 41 72 67 54 79 70 65 22 3e 40 41 72 67 54 79 70 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 | ArgType">@ArgType</h2>........<p |
| 26840 | 3e 54 4f 44 4f 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 61 | >TODO</p>..............<h2.id="a |
| 26860 | 74 6f 6d 69 63 52 6d 77 22 3e 40 61 74 6f 6d 69 63 52 6d 77 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 | tomicRmw">@atomicRmw</h2>....... |
| 26880 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 61 74 6f 6d 69 63 52 | .<pre><code.class="zig">@atomicR |
| 268a0 | 6d 77 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 70 74 72 3a 20 26 61 6d 70 3b 54 | mw(comptime.T:.type,.ptr:.&T |
| 268c0 | 2c 20 63 6f 6d 70 74 69 6d 65 20 6f 70 3a 20 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 52 6d 77 | ,.comptime.op:.builtin.AtomicRmw |
| 268e0 | 4f 70 2c 20 6f 70 65 72 61 6e 64 3a 20 54 2c 20 63 6f 6d 70 74 69 6d 65 20 6f 72 64 65 72 69 6e | Op,.operand:.T,.comptime.orderin |
| 26900 | 67 3a 20 62 75 69 6c 74 69 6e 2e 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 2d 26 67 74 3b 20 54 3c | g:.builtin.AtomicOrder).->.T< |
| 26920 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 | /code></pre>.......<p>.......Thi |
| 26940 | 73 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 20 61 74 6f 6d 69 63 61 6c 6c 79 20 6d 6f | s.builtin.function.atomically.mo |
| 26960 | 64 69 66 69 65 73 20 6d 65 6d 6f 72 79 20 61 6e 64 20 74 68 65 6e 20 72 65 74 75 72 6e 73 20 74 | difies.memory.and.then.returns.t |
| 26980 | 68 65 20 70 72 65 76 69 6f 75 73 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | he.previous.value........</p>... |
| 269a0 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 6d 75 73 | ....<p>.......<code>T</code>.mus |
| 269c0 | 74 20 62 65 20 61 20 70 6f 69 6e 74 65 72 20 74 79 70 65 2c 20 61 20 3c 63 6f 64 65 3e 62 6f 6f | t.be.a.pointer.type,.a.<code>boo |
| 269e0 | 6c 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 6f 72 20 61 6e 20 69 6e 74 65 67 65 72 20 77 68 | l</code>,.......or.an.integer.wh |
| 26a00 | 6f 73 65 20 62 69 74 20 63 6f 75 6e 74 20 6d 65 65 74 73 20 74 68 65 73 65 20 72 65 71 75 69 72 | ose.bit.count.meets.these.requir |
| 26a20 | 65 6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 | ements:.......</p>.......<ul>... |
| 26a40 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 74 20 6c 65 61 73 74 20 38 3c 2f 6c 69 3e 0a 20 20 20 20 | ........<li>At.least.8</li>..... |
| 26a60 | 20 20 20 20 20 20 3c 6c 69 3e 41 74 20 6d 6f 73 74 20 74 68 65 20 73 61 6d 65 20 61 73 20 75 73 | ......<li>At.most.the.same.as.us |
| 26a80 | 69 7a 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 6f 77 65 72 20 6f 66 20 | ize</li>...........<li>Power.of. |
| 26aa0 | 32 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | 2</li>.......</ul>.......<p>.... |
| 26ac0 | 20 20 20 54 4f 44 4f 20 72 69 67 68 74 20 6e 6f 77 20 62 6f 6f 6c 20 69 73 20 6e 6f 74 20 61 63 | ...TODO.right.now.bool.is.not.ac |
| 26ae0 | 63 65 70 74 65 64 2e 20 41 6c 73 6f 20 49 20 74 68 69 6e 6b 20 77 65 20 63 6f 75 6c 64 20 6d 61 | cepted..Also.I.think.we.could.ma |
| 26b00 | 6b 65 20 6e 6f 6e 20 70 6f 77 65 72 73 20 6f 66 20 32 20 77 6f 72 6b 20 66 69 6e 65 2c 20 6d 61 | ke.non.powers.of.2.work.fine,.ma |
| 26b20 | 79 62 65 0a 20 20 20 20 20 20 77 65 20 63 61 6e 20 72 65 6d 6f 76 65 20 74 68 69 73 20 72 65 73 | ybe.......we.can.remove.this.res |
| 26b40 | 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | triction.......</p>............. |
| 26b60 | 20 3c 68 32 20 69 64 3d 22 62 69 74 43 61 73 74 22 3e 40 62 69 74 43 61 73 74 3c 2f 68 32 3e 0a | .<h2.id="bitCast">@bitCast</h2>. |
| 26b80 | 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 62 | .......<pre><code.class="zig">@b |
| 26ba0 | 69 74 43 61 73 74 28 63 6f 6d 70 74 69 6d 65 20 44 65 73 74 54 79 70 65 3a 20 74 79 70 65 2c 20 | itCast(comptime.DestType:.type,. |
| 26bc0 | 76 61 6c 75 65 3a 20 76 61 72 29 20 2d 26 67 74 3b 20 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 | value:.var).->.DestType</code |
| 26be0 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 | ></pre>.......<p>.......Converts |
| 26c00 | 20 61 20 76 61 6c 75 65 20 6f 66 20 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 6e 6f 74 68 65 72 20 | .a.value.of.one.type.to.another. |
| 26c20 | 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | type........</p>.......<p>...... |
| 26c40 | 20 41 73 73 65 72 74 73 20 74 68 61 74 20 3c 63 6f 64 65 3e 40 73 69 7a 65 4f 66 28 40 74 79 70 | .Asserts.that.<code>@sizeOf(@typ |
| 26c60 | 65 4f 66 28 76 61 6c 75 65 29 29 20 3d 3d 20 40 73 69 7a 65 4f 66 28 44 65 73 74 54 79 70 65 29 | eOf(value)).==.@sizeOf(DestType) |
| 26c80 | 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | </code>........</p>.......<p>... |
| 26ca0 | 20 20 20 20 41 73 73 65 72 74 73 20 74 68 61 74 20 3c 63 6f 64 65 3e 40 74 79 70 65 49 64 28 44 | ....Asserts.that.<code>@typeId(D |
| 26cc0 | 65 73 74 54 79 70 65 29 20 21 3d 20 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 54 | estType).!=.@import("builtin").T |
| 26ce0 | 79 70 65 49 64 2e 50 6f 69 6e 74 65 72 3c 2f 63 6f 64 65 3e 2e 20 55 73 65 20 3c 63 6f 64 65 3e | ypeId.Pointer</code>..Use.<code> |
| 26d00 | 40 70 74 72 43 61 73 74 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 40 69 6e 74 54 6f 50 | @ptrCast</code>.or.<code>@intToP |
| 26d20 | 74 72 3c 2f 63 6f 64 65 3e 20 69 66 20 79 6f 75 20 6e 65 65 64 20 74 68 69 73 2e 0a 20 20 20 20 | tr</code>.if.you.need.this...... |
| 26d40 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 61 6e 20 62 65 20 75 73 | ..</p>.......<p>.......Can.be.us |
| 26d60 | 65 64 20 66 6f 72 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 66 6f 72 20 65 78 61 6d 70 6c 65 3a | ed.for.these.things.for.example: |
| 26d80 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c | .......</p>.......<ul>.........< |
| 26da0 | 6c 69 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 3e 66 33 32 3c 2f 63 6f 64 65 3e 20 74 6f 20 3c | li>Convert.<code>f32</code>.to.< |
| 26dc0 | 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 65 3e 20 62 69 74 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | code>u32</code>.bits</li>....... |
| 26de0 | 20 20 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 3c 63 6f 64 65 3e 69 33 32 3c 2f 63 6f 64 65 3e 20 74 | ..<li>Convert.<code>i32</code>.t |
| 26e00 | 6f 20 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 65 3e 20 70 72 65 73 65 72 76 69 6e 67 20 74 77 | o.<code>u32</code>.preserving.tw |
| 26e20 | 6f 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 | os.complement</li>.......</ul>.. |
| 26e40 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 6f 72 6b 73 20 61 74 20 63 6f 6d 70 69 6c 65 2d | .....<p>.......Works.at.compile- |
| 26e60 | 74 69 6d 65 20 69 66 20 3c 63 6f 64 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 69 73 20 6b 6e | time.if.<code>value</code>.is.kn |
| 26e80 | 6f 77 6e 20 61 74 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 2e 20 49 74 27 73 20 61 20 63 6f 6d 70 | own.at.compile.time..It's.a.comp |
| 26ea0 | 69 6c 65 20 65 72 72 6f 72 20 74 6f 20 62 69 74 63 61 73 74 20 61 20 73 74 72 75 63 74 20 74 6f | ile.error.to.bitcast.a.struct.to |
| 26ec0 | 20 61 20 73 63 61 6c 61 72 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65 20 | .a.scalar.type.of.the.same.size. |
| 26ee0 | 73 69 6e 63 65 20 73 74 72 75 63 74 73 20 68 61 76 65 20 75 6e 64 65 66 69 6e 65 64 20 6c 61 79 | since.structs.have.undefined.lay |
| 26f00 | 6f 75 74 2e 20 48 6f 77 65 76 65 72 20 69 66 20 74 68 65 20 73 74 72 75 63 74 20 69 73 20 70 61 | out..However.if.the.struct.is.pa |
| 26f20 | 63 6b 65 64 20 74 68 65 6e 20 69 74 20 77 6f 72 6b 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | cked.then.it.works........</p>.. |
| 26f40 | 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 62 72 65 61 6b 70 6f 69 6e 74 22 3e | ............<h2.id="breakpoint"> |
| 26f60 | 40 62 72 65 61 6b 70 6f 69 6e 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | @breakpoint</h2>........<pre><co |
| 26f80 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 62 72 65 61 6b 70 6f 69 6e 74 28 29 3c 2f 63 6f | de.class="zig">@breakpoint()</co |
| 26fa0 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 | de></pre>.......<p>.......This.f |
| 26fc0 | 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 73 20 61 20 70 6c 61 74 66 6f 72 6d 2d 73 70 65 63 69 | unction.inserts.a.platform-speci |
| 26fe0 | 66 69 63 20 64 65 62 75 67 20 74 72 61 70 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 77 68 69 63 68 | fic.debug.trap.instruction.which |
| 27000 | 20 63 61 75 73 65 73 0a 20 20 20 20 20 20 64 65 62 75 67 67 65 72 73 20 74 6f 20 62 72 65 61 6b | .causes.......debuggers.to.break |
| 27020 | 20 74 68 65 72 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | .there........</p>.......<p>.... |
| 27040 | 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 76 61 6c 69 64 20 77 | ...This.function.is.only.valid.w |
| 27060 | 69 74 68 69 6e 20 66 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | ithin.function.scope........</p> |
| 27080 | 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 61 6c 69 67 6e 43 61 73 74 | ...............<h2.id="alignCast |
| 270a0 | 22 3e 40 61 6c 69 67 6e 43 61 73 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | ">@alignCast</h2>........<pre><c |
| 270c0 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 61 6c 69 67 6e 43 61 73 74 28 63 6f 6d 70 74 | ode.class="zig">@alignCast(compt |
| 270e0 | 69 6d 65 20 61 6c 69 67 6e 6d 65 6e 74 3a 20 75 32 39 2c 20 70 74 72 3a 20 76 61 72 29 20 2d 26 | ime.alignment:.u29,.ptr:.var).-& |
| 27100 | 67 74 3b 20 76 61 72 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | gt;.var</code></pre>.......<p>.. |
| 27120 | 20 20 20 20 20 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 3c 63 6f | .....<code>ptr</code>.can.be.<co |
| 27140 | 64 65 3e 26 61 6d 70 3b 54 3c 2f 63 6f 64 65 3e 2c 20 3c 63 6f 64 65 3e 66 6e 28 29 3c 2f 63 6f | de>&T</code>,.<code>fn()</co |
| 27160 | 64 65 3e 2c 20 3c 63 6f 64 65 3e 3f 26 61 6d 70 3b 54 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 | de>,.<code>?&T</code>,...... |
| 27180 | 20 3c 63 6f 64 65 3e 3f 66 6e 28 29 3c 2f 63 6f 64 65 3e 2c 20 6f 72 20 3c 63 6f 64 65 3e 5b 5d | .<code>?fn()</code>,.or.<code>[] |
| 271a0 | 54 3c 2f 63 6f 64 65 3e 2e 20 49 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 61 6d 65 20 74 79 | T</code>..It.returns.the.same.ty |
| 271c0 | 70 65 20 61 73 20 3c 63 6f 64 65 3e 70 74 72 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 65 78 63 | pe.as.<code>ptr</code>.......exc |
| 271e0 | 65 70 74 20 77 69 74 68 20 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 61 64 6a 75 73 74 65 64 20 | ept.with.the.alignment.adjusted. |
| 27200 | 74 6f 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | to.the.new.value........</p>.... |
| 27220 | 20 20 20 3c 70 3e 41 20 3c 61 20 68 72 65 66 3d 22 23 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e | ...<p>A.<a.href="#Incorrect-Poin |
| 27240 | 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 70 6f 69 6e 74 65 72 20 61 6c 69 67 6e 6d 65 6e 74 | ter-Alignment">pointer.alignment |
| 27260 | 20 73 61 66 65 74 79 20 63 68 65 63 6b 3c 2f 61 3e 20 69 73 20 61 64 64 65 64 0a 20 20 20 20 20 | .safety.check</a>.is.added...... |
| 27280 | 20 74 6f 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 20 74 6f 20 6d 61 6b 65 20 73 | .to.the.generated.code.to.make.s |
| 272a0 | 75 72 65 20 74 68 65 20 70 6f 69 6e 74 65 72 20 69 73 20 61 6c 69 67 6e 65 64 20 61 73 20 70 72 | ure.the.pointer.is.aligned.as.pr |
| 272c0 | 6f 6d 69 73 65 64 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 | omised.</p>...............<h2.id |
| 272e0 | 3d 22 61 6c 69 67 6e 4f 66 22 3e 40 61 6c 69 67 6e 4f 66 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 | ="alignOf">@alignOf</h2>........ |
| 27300 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 61 6c 69 67 6e 4f 66 28 | <pre><code.class="zig">@alignOf( |
| 27320 | 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 28 6e 75 6d 62 65 72 20 | comptime.T:.type).->.(number. |
| 27340 | 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | literal)</code></pre>.......<p>. |
| 27360 | 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 | ......This.function.returns.the. |
| 27380 | 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 74 68 61 74 20 74 68 69 73 20 74 79 70 65 20 73 | number.of.bytes.that.this.type.s |
| 273a0 | 68 6f 75 6c 64 20 62 65 20 61 6c 69 67 6e 65 64 20 74 6f 0a 20 20 20 20 20 20 66 6f 72 20 74 68 | hould.be.aligned.to.......for.th |
| 273c0 | 65 20 63 75 72 72 65 6e 74 20 74 61 72 67 65 74 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 43 20 | e.current.target.to.match.the.C. |
| 273e0 | 41 42 49 2e 20 57 68 65 6e 20 74 68 65 20 63 68 69 6c 64 20 74 79 70 65 20 6f 66 20 61 20 70 6f | ABI..When.the.child.type.of.a.po |
| 27400 | 69 6e 74 65 72 20 68 61 73 0a 20 20 20 20 20 20 74 68 69 73 20 61 6c 69 67 6e 6d 65 6e 74 2c 20 | inter.has.......this.alignment,. |
| 27420 | 74 68 65 20 61 6c 69 67 6e 6d 65 6e 74 20 63 61 6e 20 62 65 20 6f 6d 69 74 74 65 64 20 66 72 6f | the.alignment.can.be.omitted.fro |
| 27440 | 6d 20 74 68 65 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 | m.the.type........</p>.......<pr |
| 27460 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 | e><code.class="zig">const.assert |
| 27480 | 20 3d 20 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a | .=.@import("std").debug.assert;. |
| 274a0 | 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 26 61 6d 70 3b 75 33 32 20 3d | comptime.{.....assert(&u32.= |
| 274c0 | 3d 20 26 61 6d 70 3b 61 6c 69 67 6e 28 40 61 6c 69 67 6e 4f 66 28 75 33 32 29 29 20 75 33 32 29 | =.&align(@alignOf(u32)).u32) |
| 274e0 | 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ;.}</code></pre>.......<p>...... |
| 27500 | 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 74 61 72 67 65 74 2d 73 70 65 63 69 66 69 63 | .The.result.is.a.target-specific |
| 27520 | 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 20 49 74 20 69 73 20 67 75 | .compile.time.constant..It.is.gu |
| 27540 | 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 0a 20 20 20 20 20 20 6c 65 73 73 20 74 68 61 6e 20 6f | aranteed.to.be.......less.than.o |
| 27560 | 72 20 65 71 75 61 6c 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 23 73 69 7a 65 4f 66 22 3e 40 73 69 | r.equal.to.<a.href="#sizeOf">@si |
| 27580 | 7a 65 4f 66 28 54 29 3c 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | zeOf(T)</a>........</p>.......<p |
| 275a0 | 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 | >See.also:</p><ul>.<li><a.href=" |
| 275c0 | 23 41 6c 69 67 6e 6d 65 6e 74 22 3e 41 6c 69 67 6e 6d 65 6e 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c | #Alignment">Alignment</a></li>.< |
| 275e0 | 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 44 65 66 69 | /ul>...............<h2.id="cDefi |
| 27600 | 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | ne">@cDefine</h2>........<pre><c |
| 27620 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 44 65 66 69 6e 65 28 63 6f 6d 70 74 69 6d | ode.class="zig">@cDefine(comptim |
| 27640 | 65 20 6e 61 6d 65 3a 20 5b 5d 75 38 2c 20 76 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | e.name:.[]u8,.value)</code></pre |
| 27660 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 | >.......<p>.......This.function. |
| 27680 | 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 3e 40 63 49 6d | can.only.occur.inside.<code>@cIm |
| 276a0 | 70 6f 72 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | port</code>........</p>.......<p |
| 276c0 | 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 64 65 66 69 | >.......This.appends.<code>#defi |
| 276e0 | 6e 65 20 24 6e 61 6d 65 20 24 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 3c 63 | ne.$name.$value</code>.to.the.<c |
| 27700 | 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 74 65 6d 70 6f 72 | ode>@cImport</code>.......tempor |
| 27720 | 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | ary.buffer........</p>.......<p> |
| 27740 | 0a 20 20 20 20 20 20 54 6f 20 64 65 66 69 6e 65 20 77 69 74 68 6f 75 74 20 61 20 76 61 6c 75 65 | .......To.define.without.a.value |
| 27760 | 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | ,.like.this:.......</p>.......<p |
| 27780 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 22 3e 23 64 65 66 69 6e 65 20 5f 47 4e 55 5f | re><code.class="c">#define._GNU_ |
| 277a0 | 53 4f 55 52 43 45 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | SOURCE</code></pre>.......<p>... |
| 277c0 | 20 20 20 20 55 73 65 20 74 68 65 20 76 6f 69 64 20 76 61 6c 75 65 2c 20 6c 69 6b 65 20 74 68 69 | ....Use.the.void.value,.like.thi |
| 277e0 | 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | s:.......</p>.......<pre><code.c |
| 27800 | 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 44 65 66 69 6e 65 28 22 5f 47 4e 55 5f 53 4f 55 52 43 45 | lass="zig">@cDefine("_GNU_SOURCE |
| 27820 | 22 2c 20 7b 7d 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 | ",.{})</code></pre>.......<p>See |
| 27840 | 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 | .also:</p><ul>.<li><a.href="#Imp |
| 27860 | 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 | ort-from-C-Header-File">Import.f |
| 27880 | 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c | rom.C.Header.File</a></li>.<li>< |
| 278a0 | 61 20 68 72 65 66 3d 22 23 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e | a.href="#cInclude">@cInclude</a> |
| 278c0 | 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 | </li>.<li><a.href="#cImport">@cI |
| 278e0 | 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 6e | mport</a></li>.<li><a.href="#cUn |
| 27900 | 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 | def">@cUndef</a></li>.<li><a.hre |
| 27920 | 66 3d 22 23 76 6f 69 64 22 3e 76 6f 69 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 | f="#void">void</a></li>.</ul>... |
| 27940 | 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 49 6d 70 6f 72 74 22 3e 40 63 49 | ............<h2.id="cImport">@cI |
| 27960 | 6d 70 6f 72 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | mport</h2>........<pre><code.cla |
| 27980 | 73 73 3d 22 7a 69 67 22 3e 40 63 49 6d 70 6f 72 74 28 65 78 70 72 65 73 73 69 6f 6e 29 20 2d 26 | ss="zig">@cImport(expression).-& |
| 279a0 | 67 74 3b 20 28 6e 61 6d 65 73 70 61 63 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | gt;.(namespace)</code></pre>.... |
| 279c0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 | ...<p>.......This.function.parse |
| 279e0 | 73 20 43 20 63 6f 64 65 20 61 6e 64 20 69 6d 70 6f 72 74 73 20 74 68 65 20 66 75 6e 63 74 69 6f | s.C.code.and.imports.the.functio |
| 27a00 | 6e 73 2c 20 74 79 70 65 73 2c 20 76 61 72 69 61 62 6c 65 73 2c 20 61 6e 64 0a 20 20 20 20 20 20 | ns,.types,.variables,.and....... |
| 27a20 | 63 6f 6d 70 61 74 69 62 6c 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 69 6e 74 | compatible.macro.definitions.int |
| 27a40 | 6f 20 74 68 65 20 72 65 73 75 6c 74 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 3c 2f | o.the.result.namespace........</ |
| 27a60 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 65 78 70 72 65 73 73 | p>.......<p>.......<code>express |
| 27a80 | 69 6f 6e 3c 2f 63 6f 64 65 3e 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 74 20 63 6f 6d | ion</code>.is.interpreted.at.com |
| 27aa0 | 70 69 6c 65 20 74 69 6d 65 2e 20 54 68 65 20 62 75 69 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 73 | pile.time..The.builtin.functions |
| 27ac0 | 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 63 6f 64 65 3e 2c 20 3c | .......<code>@cInclude</code>,.< |
| 27ae0 | 63 6f 64 65 3e 40 63 44 65 66 69 6e 65 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 65 3e | code>@cDefine</code>,.and.<code> |
| 27b00 | 40 63 55 6e 64 65 66 3c 2f 63 6f 64 65 3e 20 77 6f 72 6b 0a 20 20 20 20 20 20 77 69 74 68 69 6e | @cUndef</code>.work.......within |
| 27b20 | 20 74 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 61 70 70 65 6e 64 69 6e 67 20 74 6f 20 61 | .this.expression,.appending.to.a |
| 27b40 | 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 77 68 69 63 68 20 69 73 20 74 68 65 6e 20 | .temporary.buffer.which.is.then. |
| 27b60 | 70 61 72 73 65 64 20 61 73 20 43 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | parsed.as.C.code........</p>.... |
| 27b80 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 73 75 61 6c 6c 79 20 79 6f 75 20 73 68 6f 75 6c 64 20 | ...<p>.......Usually.you.should. |
| 27ba0 | 6f 6e 6c 79 20 68 61 76 65 20 6f 6e 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f | only.have.one.<code>@cImport</co |
| 27bc0 | 64 65 3e 20 69 6e 20 79 6f 75 72 20 65 6e 74 69 72 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 | de>.in.your.entire.application,. |
| 27be0 | 62 65 63 61 75 73 65 20 69 74 20 73 61 76 65 73 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 | because.it.saves.the.compiler... |
| 27c00 | 20 20 20 20 66 72 6f 6d 20 69 6e 76 6f 6b 69 6e 67 20 63 6c 61 6e 67 20 6d 75 6c 74 69 70 6c 65 | ....from.invoking.clang.multiple |
| 27c20 | 20 74 69 6d 65 73 2c 20 61 6e 64 20 70 72 65 76 65 6e 74 73 20 69 6e 6c 69 6e 65 20 66 75 6e 63 | .times,.and.prevents.inline.func |
| 27c40 | 74 69 6f 6e 73 20 66 72 6f 6d 20 62 65 69 6e 67 20 64 75 70 6c 69 63 61 74 65 64 2e 0a 20 20 20 | tions.from.being.duplicated..... |
| 27c60 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 61 73 6f 6e 73 20 | ...</p>.......<p>.......Reasons. |
| 27c80 | 66 6f 72 20 68 61 76 69 6e 67 20 6d 75 6c 74 69 70 6c 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f | for.having.multiple.<code>@cImpo |
| 27ca0 | 72 74 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 73 20 77 6f 75 6c 64 20 62 65 3a 0a | rt</code>.expressions.would.be:. |
| 27cc0 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ......</p>.......<ul>.........<l |
| 27ce0 | 69 3e 54 6f 20 61 76 6f 69 64 20 61 20 73 79 6d 62 6f 6c 20 63 6f 6c 6c 69 73 69 6f 6e 2c 20 66 | i>To.avoid.a.symbol.collision,.f |
| 27d00 | 6f 72 20 65 78 61 6d 70 6c 65 20 69 66 20 66 6f 6f 2e 68 20 61 6e 64 20 62 61 72 2e 68 20 62 6f | or.example.if.foo.h.and.bar.h.bo |
| 27d20 | 74 68 20 3c 63 6f 64 65 3e 23 64 65 66 69 6e 65 20 43 4f 4e 4e 45 43 54 49 4f 4e 5f 43 4f 55 4e | th.<code>#define.CONNECTION_COUN |
| 27d40 | 54 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 6f 20 61 6e 61 | T</code></li>.........<li>To.ana |
| 27d60 | 6c 79 7a 65 20 74 68 65 20 43 20 63 6f 64 65 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 70 | lyze.the.C.code.with.different.p |
| 27d80 | 72 65 70 72 6f 63 65 73 73 6f 72 20 64 65 66 69 6e 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c | reprocessor.defines</li>.......< |
| 27da0 | 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a | /ul>.......<p>See.also:</p><ul>. |
| 27dc0 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 | <li><a.href="#Import-from-C-Head |
| 27de0 | 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 | er-File">Import.from.C.Header.Fi |
| 27e00 | 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6e 63 6c 75 | le</a></li>.<li><a.href="#cInclu |
| 27e20 | 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 | de">@cInclude</a></li>.<li><a.hr |
| 27e40 | 65 66 3d 22 23 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ef="#cDefine">@cDefine</a></li>. |
| 27e60 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 | <li><a.href="#cUndef">@cUndef</a |
| 27e80 | 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 | ></li>.</ul>...............<h2.i |
| 27ea0 | 64 3d 22 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 68 32 3e 0a 0a 20 20 20 | d="cInclude">@cInclude</h2>..... |
| 27ec0 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 49 6e 63 6c | ...<pre><code.class="zig">@cIncl |
| 27ee0 | 75 64 65 28 63 6f 6d 70 74 69 6d 65 20 70 61 74 68 3a 20 5b 5d 75 38 29 3c 2f 63 6f 64 65 3e 3c | ude(comptime.path:.[]u8)</code>< |
| 27f00 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 | /pre>.......<p>.......This.funct |
| 27f20 | 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 20 69 6e 73 69 64 65 20 3c 63 6f 64 65 3e | ion.can.only.occur.inside.<code> |
| 27f40 | 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | @cImport</code>........</p>..... |
| 27f60 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 70 70 65 6e 64 73 20 3c 63 6f 64 65 3e 23 | ..<p>.......This.appends.<code># |
| 27f80 | 69 6e 63 6c 75 64 65 20 3c 24 70 61 74 68 3e 5c 6e 3c 2f 63 6f 64 65 3e 20 74 6f 20 74 68 65 20 | include.<$path>\n</code>.to.the. |
| 27fa0 | 3c 63 6f 64 65 3e 63 5f 69 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 74 65 6d 70 | <code>c_import</code>.......temp |
| 27fc0 | 6f 72 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | orary.buffer........</p>.......< |
| 27fe0 | 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | p>See.also:</p><ul>.<li><a.href= |
| 28000 | 22 23 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 | "#Import-from-C-Header-File">Imp |
| 28020 | 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ort.from.C.Header.File</a></li>. |
| 28040 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f 72 74 3c | <li><a.href="#cImport">@cImport< |
| 28060 | 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 44 65 66 69 6e 65 22 3e | /a></li>.<li><a.href="#cDefine"> |
| 28080 | 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 | @cDefine</a></li>.<li><a.href="# |
| 280a0 | 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a | cUndef">@cUndef</a></li>.</ul>.. |
| 280c0 | 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 55 6e 64 65 66 22 3e 40 63 55 | .............<h2.id="cUndef">@cU |
| 280e0 | 6e 64 65 66 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ndef</h2>........<pre><code.clas |
| 28100 | 73 3d 22 7a 69 67 22 3e 40 63 55 6e 64 65 66 28 63 6f 6d 70 74 69 6d 65 20 6e 61 6d 65 3a 20 5b | s="zig">@cUndef(comptime.name:.[ |
| 28120 | 5d 75 38 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | ]u8)</code></pre>.......<p>..... |
| 28140 | 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 6f 6e 6c 79 20 6f 63 63 75 72 20 69 | ..This.function.can.only.occur.i |
| 28160 | 6e 73 69 64 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 | nside.<code>@cImport</code>..... |
| 28180 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 61 70 70 | ...</p>.......<p>.......This.app |
| 281a0 | 65 6e 64 73 20 3c 63 6f 64 65 3e 23 75 6e 64 65 66 20 24 6e 61 6d 65 3c 2f 63 6f 64 65 3e 20 74 | ends.<code>#undef.$name</code>.t |
| 281c0 | 6f 20 74 68 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 | o.the.<code>@cImport</code>..... |
| 281e0 | 20 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | ..temporary.buffer........</p>.. |
| 28200 | 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 | .....<p>See.also:</p><ul>.<li><a |
| 28220 | 20 68 72 65 66 3d 22 23 49 6d 70 6f 72 74 2d 66 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c | .href="#Import-from-C-Header-Fil |
| 28240 | 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 61 3e | e">Import.from.C.Header.File</a> |
| 28260 | 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 | </li>.<li><a.href="#cImport">@cI |
| 28280 | 6d 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 44 65 | mport</a></li>.<li><a.href="#cDe |
| 282a0 | 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 | fine">@cDefine</a></li>.<li><a.h |
| 282c0 | 72 65 66 3d 22 23 63 49 6e 63 6c 75 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c | ref="#cInclude">@cInclude</a></l |
| 282e0 | 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 | i>.</ul>...............<h2.id="c |
| 28300 | 61 6e 49 6d 70 6c 69 63 69 74 43 61 73 74 22 3e 40 63 61 6e 49 6d 70 6c 69 63 69 74 43 61 73 74 | anImplicitCast">@canImplicitCast |
| 28320 | 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | </h2>........<pre><code.class="z |
| 28340 | 69 67 22 3e 40 63 61 6e 49 6d 70 6c 69 63 69 74 43 61 73 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a | ig">@canImplicitCast(comptime.T: |
| 28360 | 20 74 79 70 65 2c 20 76 61 6c 75 65 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c | .type,.value).->.bool</code>< |
| 28380 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 74 75 72 6e 73 20 77 68 | /pre>.......<p>.......Returns.wh |
| 283a0 | 65 74 68 65 72 20 61 20 76 61 6c 75 65 20 63 61 6e 20 62 65 20 69 6d 70 6c 69 63 69 74 6c 79 20 | ether.a.value.can.be.implicitly. |
| 283c0 | 63 61 73 74 65 64 20 74 6f 20 61 20 67 69 76 65 6e 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f | casted.to.a.given.type........</ |
| 283e0 | 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 6c 7a 22 3e 40 63 6c | p>..............<h2.id="clz">@cl |
| 28400 | 7a 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | z</h2>........<pre><code.class=" |
| 28420 | 7a 69 67 22 3e 40 63 6c 7a 28 78 3a 20 54 29 20 2d 26 67 74 3b 20 55 3c 2f 63 6f 64 65 3e 3c 2f | zig">@clz(x:.T).->.U</code></ |
| 28440 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 | pre>.......<p>.......This.functi |
| 28460 | 6f 6e 20 63 6f 75 6e 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6c 65 61 64 69 6e 67 20 | on.counts.the.number.of.leading. |
| 28480 | 7a 65 72 6f 65 73 20 69 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 69 | zeroes.in.<code>x</code>.which.i |
| 284a0 | 73 20 61 6e 20 69 6e 74 65 67 65 72 0a 20 20 20 20 20 20 74 79 70 65 20 3c 63 6f 64 65 3e 54 3c | s.an.integer.......type.<code>T< |
| 284c0 | 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | /code>........</p>.......<p>.... |
| 284e0 | 20 20 20 54 68 65 20 72 65 74 75 72 6e 20 74 79 70 65 20 3c 63 6f 64 65 3e 55 3c 2f 63 6f 64 65 | ...The.return.type.<code>U</code |
| 28500 | 3e 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 74 68 | >.is.an.unsigned.integer.with.th |
| 28520 | 65 20 6d 69 6e 69 6d 75 6d 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 20 6f 66 20 62 69 74 73 20 74 | e.minimum.number.......of.bits.t |
| 28540 | 68 61 74 20 63 61 6e 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 76 61 6c 75 65 20 3c 63 6f 64 | hat.can.represent.the.value.<cod |
| 28560 | 65 3e 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | e>T.bit_count</code>........</p> |
| 28580 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 | .......<p>.......If.<code>x</cod |
| 285a0 | 65 3e 20 69 73 20 7a 65 72 6f 2c 20 3c 63 6f 64 65 3e 40 63 6c 7a 3c 2f 63 6f 64 65 3e 20 72 65 | e>.is.zero,.<code>@clz</code>.re |
| 285c0 | 74 75 72 6e 73 20 3c 63 6f 64 65 3e 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 2e 0a | turns.<code>T.bit_count</code>.. |
| 285e0 | 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d | ......</p>...............<h2.id= |
| 28600 | 22 63 6d 70 78 63 68 67 22 3e 40 63 6d 70 78 63 68 67 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | "cmpxchg">@cmpxchg</h2>........< |
| 28620 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 6d 70 78 63 68 67 28 70 | pre><code.class="zig">@cmpxchg(p |
| 28640 | 74 72 3a 20 26 61 6d 70 3b 54 2c 20 63 6d 70 3a 20 54 2c 20 6e 65 77 3a 20 54 2c 20 73 75 63 63 | tr:.&T,.cmp:.T,.new:.T,.succ |
| 28660 | 65 73 73 5f 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 2c 20 66 61 69 6c 5f 6f 72 64 | ess_order:.AtomicOrder,.fail_ord |
| 28680 | 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 | er:.AtomicOrder).->.bool</cod |
| 286a0 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 | e></pre>.......<p>.......This.fu |
| 286c0 | 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 73 20 61 6e 20 61 74 6f 6d 69 63 20 63 6f 6d 70 61 72 | nction.performs.an.atomic.compar |
| 286e0 | 65 20 65 78 63 68 61 6e 67 65 20 6f 70 65 72 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e | e.exchange.operation........</p> |
| 28700 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f 72 64 | .......<p>.......<code>AtomicOrd |
| 28720 | 65 72 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 | er</code>.can.be.found.with.<cod |
| 28740 | 65 3e 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 41 74 6f 6d 69 63 4f 72 64 65 72 | e>@import("builtin").AtomicOrder |
| 28760 | 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 3c 63 6f | </code>........</p>.......<p><co |
| 28780 | 64 65 3e 40 74 79 70 65 4f 66 28 70 74 72 29 2e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 63 6f 64 65 3e | de>@typeOf(ptr).alignment</code> |
| 287a0 | 20 6d 75 73 74 20 62 65 20 3c 63 6f 64 65 3e 26 67 74 3b 3d 20 40 73 69 7a 65 4f 66 28 54 29 2e | .must.be.<code>>=.@sizeOf(T). |
| 287c0 | 3c 2f 63 6f 64 65 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f | </code></p>.......<p>See.also:</ |
| 287e0 | 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 56 61 72 | p><ul>.<li><a.href="#Compile-Var |
| 28800 | 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c | iables">Compile.Variables</a></l |
| 28820 | 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 63 | i>.</ul>...............<h2.id="c |
| 28840 | 6f 6d 70 69 6c 65 45 72 72 6f 72 22 3e 40 63 6f 6d 70 69 6c 65 45 72 72 6f 72 3c 2f 68 32 3e 0a | ompileError">@compileError</h2>. |
| 28860 | 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 | .......<pre><code.class="zig">@c |
| 28880 | 6f 6d 70 69 6c 65 45 72 72 6f 72 28 63 6f 6d 70 74 69 6d 65 20 6d 73 67 3a 20 5b 5d 75 38 29 3c | ompileError(comptime.msg:.[]u8)< |
| 288a0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 | /code></pre>.......<p>.......Thi |
| 288c0 | 73 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 65 6e 20 73 65 6d 61 6e 74 69 63 61 6c 6c 79 20 61 6e | s.function,.when.semantically.an |
| 288e0 | 61 6c 79 7a 65 64 2c 20 63 61 75 73 65 73 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 77 | alyzed,.causes.a.compile.error.w |
| 28900 | 69 74 68 20 74 68 65 0a 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 6d 73 67 3c | ith.the.......message.<code>msg< |
| 28920 | 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | /code>........</p>.......<p>.... |
| 28940 | 20 20 20 54 68 65 72 65 20 61 72 65 20 73 65 76 65 72 61 6c 20 77 61 79 73 20 74 68 61 74 20 63 | ...There.are.several.ways.that.c |
| 28960 | 6f 64 65 20 61 76 6f 69 64 73 20 62 65 69 6e 67 20 73 65 6d 61 6e 74 69 63 61 6c 6c 79 20 63 68 | ode.avoids.being.semantically.ch |
| 28980 | 65 63 6b 65 64 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 75 73 69 6e 67 20 3c 63 6f 64 65 | ecked,.such.as.......using.<code |
| 289a0 | 3e 69 66 3c 2f 63 6f 64 65 3e 20 6f 72 20 3c 63 6f 64 65 3e 73 77 69 74 63 68 3c 2f 63 6f 64 65 | >if</code>.or.<code>switch</code |
| 289c0 | 3e 20 77 69 74 68 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 73 2c 0a 20 | >.with.compile.time.constants,.. |
| 289e0 | 20 20 20 20 20 61 6e 64 20 3c 63 6f 64 65 3e 63 6f 6d 70 74 69 6d 65 3c 2f 63 6f 64 65 3e 20 66 | .....and.<code>comptime</code>.f |
| 28a00 | 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 | unctions........</p>............ |
| 28a20 | 20 20 3c 68 32 20 69 64 3d 22 63 6f 6d 70 69 6c 65 4c 6f 67 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f | ..<h2.id="compileLog">@compileLo |
| 28a40 | 67 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | g</h2>........<pre><code.class=" |
| 28a60 | 7a 69 67 22 3e 40 63 6f 6d 70 69 6c 65 4c 6f 67 28 61 72 67 73 3a 20 2e 2e 2e 29 3c 2f 63 6f 64 | zig">@compileLog(args:....)</cod |
| 28a80 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 | e></pre>.......<p>.......This.fu |
| 28aa0 | 6e 63 74 69 6f 6e 20 70 72 69 6e 74 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 | nction.prints.the.arguments.pass |
| 28ac0 | 65 64 20 74 6f 20 69 74 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2e 0a 20 20 20 20 20 20 | ed.to.it.at.compile-time........ |
| 28ae0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 6f 20 70 72 65 76 65 6e 74 20 | </p>.......<p>.......To.prevent. |
| 28b00 | 61 63 63 69 64 65 6e 74 61 6c 6c 79 20 6c 65 61 76 69 6e 67 20 63 6f 6d 70 69 6c 65 20 6c 6f 67 | accidentally.leaving.compile.log |
| 28b20 | 20 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 61 20 63 6f 64 65 62 61 73 65 2c 0a 20 20 20 20 20 | .statements.in.a.codebase,...... |
| 28b40 | 20 61 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 65 72 72 6f 72 20 69 73 20 61 64 64 65 64 20 74 6f | .a.compilation.error.is.added.to |
| 28b60 | 20 74 68 65 20 62 75 69 6c 64 2c 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 74 68 65 20 63 6f 6d 70 | .the.build,.pointing.to.the.comp |
| 28b80 | 69 6c 65 0a 20 20 20 20 20 20 6c 6f 67 20 73 74 61 74 65 6d 65 6e 74 2e 20 54 68 69 73 20 65 72 | ile.......log.statement..This.er |
| 28ba0 | 72 6f 72 20 70 72 65 76 65 6e 74 73 20 63 6f 64 65 20 66 72 6f 6d 20 62 65 69 6e 67 20 67 65 6e | ror.prevents.code.from.being.gen |
| 28bc0 | 65 72 61 74 65 64 2c 20 62 75 74 0a 20 20 20 20 20 20 64 6f 65 73 20 6e 6f 74 20 6f 74 68 65 72 | erated,.but.......does.not.other |
| 28be0 | 77 69 73 65 20 69 6e 74 65 72 66 65 72 65 20 77 69 74 68 20 61 6e 61 6c 79 73 69 73 2e 0a 20 20 | wise.interfere.with.analysis.... |
| 28c00 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 | ....</p>.......<p>.......This.fu |
| 28c20 | 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 64 6f 20 22 70 72 69 6e 74 66 | nction.can.be.used.to.do."printf |
| 28c40 | 20 64 65 62 75 67 67 69 6e 67 22 20 6f 6e 0a 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 6d | .debugging".on.......compile-tim |
| 28c60 | 65 20 65 78 65 63 75 74 69 6e 67 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | e.executing.code........</p>.... |
| 28c80 | 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c | ...<p.class="file">test.zig</p>< |
| 28ca0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 77 61 72 6e | pre><code.class="zig">const.warn |
| 28cc0 | 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 | .=.@import("std").debu |
| 28ce0 | 67 2e 77 61 72 6e 3b 0a 0a 63 6f 6e 73 74 20 6e 75 6d 31 20 3d 20 62 6c 6b 3a 20 7b 0a 20 20 20 | g.warn;..const.num1.=.blk:.{.... |
| 28d00 | 20 76 61 72 20 76 61 6c 31 3a 20 69 33 32 20 3d 20 39 39 3b 0a 20 20 20 20 40 63 6f 6d 70 69 6c | .var.val1:.i32.=.99;.....@compil |
| 28d20 | 65 4c 6f 67 28 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 76 61 6c 31 20 3d 20 26 71 75 6f 74 | eLog("comptime.val1.=." |
| 28d40 | 3b 2c 20 76 61 6c 31 29 3b 20 0a 20 20 20 20 76 61 6c 31 20 3d 20 76 61 6c 31 20 2b 20 31 3b 0a | ;,.val1);......val1.=.val1.+.1;. |
| 28d60 | 20 20 20 20 62 72 65 61 6b 20 3a 62 6c 6b 20 76 61 6c 31 3b 0a 7d 3b 0a 0a 74 65 73 74 20 26 71 | ....break.:blk.val1;.};..test.&q |
| 28d80 | 75 6f 74 3b 6d 61 69 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 40 63 6f 6d 70 69 6c 65 4c 6f 67 | uot;main".{.....@compileLog |
| 28da0 | 28 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 69 6e 20 6d 61 69 6e 26 71 75 6f 74 3b 29 3b 20 | ("comptime.in.main");. |
| 28dc0 | 0a 0a 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 52 75 6e 74 69 6d 65 20 69 6e 20 6d 61 69 6e | ......warn("Runtime.in.main |
| 28de0 | 2c 20 6e 75 6d 31 20 3d 20 7b 7d 2e 5c 6e 26 71 75 6f 74 3b 2c 20 6e 75 6d 31 29 3b 0a 7d 3c 2f | ,.num1.=.{}.\n",.num1);.}</ |
| 28e00 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 | code></pre><pre><code.class="she |
| 28e20 | 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 7c 20 26 71 75 6f 74 3b | ll">$.zig.test.test.zig.|." |
| 28e40 | 63 6f 6d 70 74 69 6d 65 20 69 6e 20 6d 61 69 6e 26 71 75 6f 74 3b 0a 7c 20 26 71 75 6f 74 3b 63 | comptime.in.main".|."c |
| 28e60 | 6f 6d 70 74 69 6d 65 20 76 61 6c 31 20 3d 20 26 71 75 6f 74 3b 2c 20 39 39 0a 3c 73 70 61 6e 20 | omptime.val1.=.",.99.<span. |
| 28e80 | 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f | class="t0_1">/home/andy/dev/zig/ |
| 28ea0 | 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 31 3a 35 3a 20 3c 2f 73 70 61 6e | docgen_tmp/test.zig:11:5:.</span |
| 28ec0 | 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 | ><span.class="t31_1">error:</spa |
| 28ee0 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 66 6f 75 6e 64 20 63 6f 6d 70 | n><span.class="t0_1">.found.comp |
| 28f00 | 69 6c 65 20 6c 6f 67 20 73 74 61 74 65 6d 65 6e 74 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 63 6f | ile.log.statement</span>.....@co |
| 28f20 | 6d 70 69 6c 65 4c 6f 67 28 26 71 75 6f 74 3b 63 6f 6d 70 74 69 6d 65 20 69 6e 20 6d 61 69 6e 26 | mpileLog("comptime.in.main& |
| 28f40 | 71 75 6f 74 3b 29 3b 20 0a 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 | quot;);......<span.class="t32_1" |
| 28f60 | 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f | >^</span>.<span.class="t0_1">/ho |
| 28f80 | 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e | me/andy/dev/zig/docgen_tmp/test. |
| 28fa0 | 7a 69 67 3a 35 3a 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 | zig:5:5:.</span><span.class="t31 |
| 28fc0 | 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 | _1">error:</span><span.class="t0 |
| 28fe0 | 5f 31 22 3e 20 66 6f 75 6e 64 20 63 6f 6d 70 69 6c 65 20 6c 6f 67 20 73 74 61 74 65 6d 65 6e 74 | _1">.found.compile.log.statement |
| 29000 | 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 63 6f 6d 70 69 6c 65 4c 6f 67 28 26 71 75 6f 74 3b 63 6f | </span>.....@compileLog("co |
| 29020 | 6d 70 74 69 6d 65 20 76 61 6c 31 20 3d 20 26 71 75 6f 74 3b 2c 20 76 61 6c 31 29 3b 20 0a 20 20 | mptime.val1.=.",.val1);.... |
| 29040 | 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c | ..<span.class="t32_1">^</span>.< |
| 29060 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | /code></pre>........</p>.......< |
| 29080 | 70 3e 0a 20 20 20 20 20 20 77 69 6c 6c 20 6f 75 70 75 74 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | p>.......will.ouput:.......</p>. |
| 290a0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 61 6c 6c 20 3c 63 6f 64 65 3e 40 63 6f | ......<p>.......If.all.<code>@co |
| 290c0 | 6d 70 69 6c 65 4c 6f 67 3c 2f 63 6f 64 65 3e 20 63 61 6c 6c 73 20 61 72 65 20 72 65 6d 6f 76 65 | mpileLog</code>.calls.are.remove |
| 290e0 | 64 20 6f 72 20 0a 20 20 20 20 20 20 6e 6f 74 20 65 6e 63 6f 75 6e 74 65 72 65 64 20 62 79 20 61 | d.or........not.encountered.by.a |
| 29100 | 6e 61 6c 79 73 69 73 2c 20 74 68 65 0a 20 20 20 20 20 20 70 72 6f 67 72 61 6d 20 63 6f 6d 70 69 | nalysis,.the.......program.compi |
| 29120 | 6c 65 73 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 61 6e 64 20 74 68 65 20 67 65 6e 65 72 61 74 | les.successfully.and.the.generat |
| 29140 | 65 64 20 65 78 65 63 75 74 61 62 6c 65 20 70 72 69 6e 74 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e | ed.executable.prints:.......</p> |
| 29160 | 20 20 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 | .........<p.class="file">test.zi |
| 29180 | 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 | g</p><pre><code.class="zig">cons |
| 291a0 | 74 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b | t.warn.=.@import("std" |
| 291c0 | 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 63 6f 6e 73 74 20 6e 75 6d 31 20 3d 20 62 6c 6b 3a | ).debug.warn;..const.num1.=.blk: |
| 291e0 | 20 7b 0a 20 20 20 20 76 61 72 20 76 61 6c 31 3a 20 69 33 32 20 3d 20 39 39 3b 0a 20 20 20 20 76 | .{.....var.val1:.i32.=.99;.....v |
| 29200 | 61 6c 31 20 3d 20 76 61 6c 31 20 2b 20 31 3b 0a 20 20 20 20 62 72 65 61 6b 20 3a 62 6c 6b 20 76 | al1.=.val1.+.1;.....break.:blk.v |
| 29220 | 61 6c 31 3b 0a 7d 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 6d 61 69 6e 26 71 75 6f 74 3b 20 7b | al1;.};..test."main".{ |
| 29240 | 0a 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 52 75 6e 74 69 6d 65 20 69 6e 20 6d 61 69 6e 2c | .....warn("Runtime.in.main, |
| 29260 | 20 6e 75 6d 31 20 3d 20 7b 7d 2e 5c 6e 26 71 75 6f 74 3b 2c 20 6e 75 6d 31 29 3b 0a 7d 3c 2f 63 | .num1.=.{}.\n",.num1);.}</c |
| 29280 | 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c | ode></pre><pre><code.class="shel |
| 292a0 | 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 | l">$.zig.test.test.zig.Test.1/1. |
| 292c0 | 6d 61 69 6e 2e 2e 2e 52 75 6e 74 69 6d 65 20 69 6e 20 6d 61 69 6e 2c 20 6e 75 6d 31 20 3d 20 31 | main...Runtime.in.main,.num1.=.1 |
| 292e0 | 30 30 2e 0a 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 | 00..OK.</code></pre>............ |
| 29300 | 20 20 20 3c 68 32 20 69 64 3d 22 63 74 7a 22 3e 40 63 74 7a 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 | ...<h2.id="ctz">@ctz</h2>....... |
| 29320 | 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 63 74 7a 28 78 3a 20 | .<pre><code.class="zig">@ctz(x:. |
| 29340 | 54 29 20 2d 26 67 74 3b 20 55 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | T).->.U</code></pre>.......<p |
| 29360 | 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 73 20 74 68 65 | >.......This.function.counts.the |
| 29380 | 20 6e 75 6d 62 65 72 20 6f 66 20 74 72 61 69 6c 69 6e 67 20 7a 65 72 6f 65 73 20 69 6e 20 3c 63 | .number.of.trailing.zeroes.in.<c |
| 293a0 | 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 | ode>x</code>.which.is.an.integer |
| 293c0 | 0a 20 20 20 20 20 20 74 79 70 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 | .......type.<code>T</code>...... |
| 293e0 | 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 74 75 72 | ..</p>.......<p>.......The.retur |
| 29400 | 6e 20 74 79 70 65 20 3c 63 6f 64 65 3e 55 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 6e 73 69 | n.type.<code>U</code>.is.an.unsi |
| 29420 | 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 6e 75 | gned.integer.with.the.minimum.nu |
| 29440 | 6d 62 65 72 0a 20 20 20 20 20 20 6f 66 20 62 69 74 73 20 74 68 61 74 20 63 61 6e 20 72 65 70 72 | mber.......of.bits.that.can.repr |
| 29460 | 65 73 65 6e 74 20 74 68 65 20 76 61 6c 75 65 20 3c 63 6f 64 65 3e 54 2e 62 69 74 5f 63 6f 75 6e | esent.the.value.<code>T.bit_coun |
| 29480 | 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 | t</code>........</p>.......<p>.. |
| 294a0 | 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 7a 65 72 6f 2c 20 | .....If.<code>x</code>.is.zero,. |
| 294c0 | 3c 63 6f 64 65 3e 40 63 74 7a 3c 2f 63 6f 64 65 3e 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e | <code>@ctz</code>.returns.<code> |
| 294e0 | 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | T.bit_count</code>........</p>.. |
| 29500 | 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 64 69 76 45 78 61 63 74 22 3e 40 64 | ............<h2.id="divExact">@d |
| 29520 | 69 76 45 78 61 63 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | ivExact</h2>........<pre><code.c |
| 29540 | 6c 61 73 73 3d 22 7a 69 67 22 3e 40 64 69 76 45 78 61 63 74 28 6e 75 6d 65 72 61 74 6f 72 3a 20 | lass="zig">@divExact(numerator:. |
| 29560 | 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 65 | T,.denominator:.T).->.T</code |
| 29580 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 63 74 20 64 69 | ></pre>.......<p>.......Exact.di |
| 295a0 | 76 69 73 69 6f 6e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e | vision..Caller.guarantees.<code> |
| 295c0 | 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 21 3d 20 30 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 | denominator.!=.0</code>.and..... |
| 295e0 | 20 20 3c 63 6f 64 65 3e 40 64 69 76 54 72 75 6e 63 28 6e 75 6d 65 72 61 74 6f 72 2c 20 64 65 6e | ..<code>@divTrunc(numerator,.den |
| 29600 | 6f 6d 69 6e 61 74 6f 72 29 20 2a 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 3d 3d 20 6e 75 6d 65 72 | ominator).*.denominator.==.numer |
| 29620 | 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 | ator</code>........</p>.......<u |
| 29640 | 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 45 78 61 63 74 28 36 | l>.........<li><code>@divExact(6 |
| 29660 | 2c 20 33 29 20 3d 3d 20 32 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ,.3).==.2</code></li>.........<l |
| 29680 | 69 3e 3c 63 6f 64 65 3e 40 64 69 76 45 78 61 63 74 28 61 2c 20 62 29 20 2a 20 62 20 3d 3d 20 61 | i><code>@divExact(a,.b).*.b.==.a |
| 296a0 | 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c | </code></li>.......</ul>.......< |
| 296c0 | 70 3e 46 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 | p>For.a.function.that.returns.a. |
| 296e0 | 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 40 | possible.error.code,.use.<code>@ |
| 29700 | 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 64 69 76 45 78 61 63 74 3c 2f 63 6f 64 | import("std").math.divExact</cod |
| 29720 | 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 | e>.</p>.......<p>See.also:</p><u |
| 29740 | 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 | l>.<li><a.href="#divTrunc">@divT |
| 29760 | 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 46 | runc</a></li>.<li><a.href="#divF |
| 29780 | 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a | loor">@divFloor</a></li>.</ul>.. |
| 297a0 | 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 64 69 76 46 6c 6f 6f 72 22 3e 40 | .............<h2.id="divFloor">@ |
| 297c0 | 64 69 76 46 6c 6f 6f 72 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | divFloor</h2>........<pre><code. |
| 297e0 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 64 69 76 46 6c 6f 6f 72 28 6e 75 6d 65 72 61 74 6f 72 3a | class="zig">@divFloor(numerator: |
| 29800 | 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 | .T,.denominator:.T).->.T</cod |
| 29820 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6c 6f 6f 72 65 64 | e></pre>.......<p>.......Floored |
| 29840 | 20 64 69 76 69 73 69 6f 6e 2e 20 52 6f 75 6e 64 73 20 74 6f 77 61 72 64 20 6e 65 67 61 74 69 76 | .division..Rounds.toward.negativ |
| 29860 | 65 20 69 6e 66 69 6e 69 74 79 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 | e.infinity..For.unsigned.integer |
| 29880 | 73 20 69 74 20 69 73 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 3c 63 6f 64 65 3e | s.it.is.......the.same.as.<code> |
| 298a0 | 6e 75 6d 65 72 61 74 6f 72 20 2f 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 | numerator./.denominator</code>.. |
| 298c0 | 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 | Caller.guarantees.<code>denomina |
| 298e0 | 74 6f 72 20 21 3d 20 30 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e | tor.!=.0</code>.and.......<code> |
| 29900 | 21 28 40 74 79 70 65 49 64 28 54 29 20 3d 3d 20 62 75 69 6c 74 69 6e 2e 54 79 70 65 49 64 2e 49 | !(@typeId(T).==.builtin.TypeId.I |
| 29920 | 6e 74 20 61 6e 64 20 54 2e 69 73 5f 73 69 67 6e 65 64 20 61 6e 64 20 6e 75 6d 65 72 61 74 6f 72 | nt.and.T.is_signed.and.numerator |
| 29940 | 20 3d 3d 20 40 6d 69 6e 56 61 6c 75 65 28 54 29 20 61 6e 64 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 | .==.@minValue(T).and.denominator |
| 29960 | 20 3d 3d 20 2d 31 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | .==.-1)</code>........</p>...... |
| 29980 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 46 6c 6f 6f | .<ul>.........<li><code>@divFloo |
| 299a0 | 72 28 2d 35 2c 20 33 29 20 3d 3d 20 2d 32 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | r(-5,.3).==.-2</code></li>...... |
| 299c0 | 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 46 6c 6f 6f 72 28 61 2c 20 62 29 20 2b 20 40 | ...<li><code>@divFloor(a,.b).+.@ |
| 299e0 | 6d 6f 64 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | mod(a,.b).==.a</code></li>...... |
| 29a00 | 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 | .</ul>.......<p>For.a.function.t |
| 29a20 | 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 20 63 6f 64 | hat.returns.a.possible.error.cod |
| 29a40 | 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 | e,.use.<code>@import("std").math |
| 29a60 | 2e 64 69 76 46 6c 6f 6f 72 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 | .divFloor</code>.</p>.......<p>S |
| 29a80 | 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 | ee.also:</p><ul>.<li><a.href="#d |
| 29aa0 | 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e | ivTrunc">@divTrunc</a></li>.<li> |
| 29ac0 | 3c 61 20 68 72 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 3c 2f 61 | <a.href="#divExact">@divExact</a |
| 29ae0 | 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 | ></li>.</ul>...............<h2.i |
| 29b00 | 64 3d 22 64 69 76 54 72 75 6e 63 22 3e 40 64 69 76 54 72 75 6e 63 3c 2f 68 32 3e 0a 0a 20 20 20 | d="divTrunc">@divTrunc</h2>..... |
| 29b20 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 64 69 76 54 72 | ...<pre><code.class="zig">@divTr |
| 29b40 | 75 6e 63 28 6e 75 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 | unc(numerator:.T,.denominator:.T |
| 29b60 | 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | ).->.T</code></pre>.......<p> |
| 29b80 | 0a 20 20 20 20 20 20 54 72 75 6e 63 61 74 65 64 20 64 69 76 69 73 69 6f 6e 2e 20 52 6f 75 6e 64 | .......Truncated.division..Round |
| 29ba0 | 73 20 74 6f 77 61 72 64 20 7a 65 72 6f 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 | s.toward.zero..For.unsigned.inte |
| 29bc0 | 67 65 72 73 20 69 74 20 69 73 0a 20 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 73 20 3c 63 6f | gers.it.is.......the.same.as.<co |
| 29be0 | 64 65 3e 6e 75 6d 65 72 61 74 6f 72 20 2f 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 | de>numerator./.denominator</code |
| 29c00 | 3e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d | >..Caller.guarantees.<code>denom |
| 29c20 | 69 6e 61 74 6f 72 20 21 3d 20 30 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f | inator.!=.0</code>.and.......<co |
| 29c40 | 64 65 3e 21 28 40 74 79 70 65 49 64 28 54 29 20 3d 3d 20 62 75 69 6c 74 69 6e 2e 54 79 70 65 49 | de>!(@typeId(T).==.builtin.TypeI |
| 29c60 | 64 2e 49 6e 74 20 61 6e 64 20 54 2e 69 73 5f 73 69 67 6e 65 64 20 61 6e 64 20 6e 75 6d 65 72 61 | d.Int.and.T.is_signed.and.numera |
| 29c80 | 74 6f 72 20 3d 3d 20 40 6d 69 6e 56 61 6c 75 65 28 54 29 20 61 6e 64 20 64 65 6e 6f 6d 69 6e 61 | tor.==.@minValue(T).and.denomina |
| 29ca0 | 74 6f 72 20 3d 3d 20 2d 31 29 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | tor.==.-1)</code>........</p>... |
| 29cc0 | 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 54 | ....<ul>.........<li><code>@divT |
| 29ce0 | 72 75 6e 63 28 2d 35 2c 20 33 29 20 3d 3d 20 2d 31 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 | runc(-5,.3).==.-1</code></li>... |
| 29d00 | 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 54 72 75 6e 63 28 61 2c 20 62 29 20 | ......<li><code>@divTrunc(a,.b). |
| 29d20 | 2b 20 40 72 65 6d 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 | +.@rem(a,.b).==.a</code></li>... |
| 29d40 | 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 61 20 66 75 6e 63 74 69 6f | ....</ul>.......<p>For.a.functio |
| 29d60 | 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 20 | n.that.returns.a.possible.error. |
| 29d80 | 63 6f 64 65 2c 20 75 73 65 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d | code,.use.<code>@import("std").m |
| 29da0 | 61 74 68 2e 64 69 76 54 72 75 6e 63 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c | ath.divTrunc</code>.</p>.......< |
| 29dc0 | 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | p>See.also:</p><ul>.<li><a.href= |
| 29de0 | 22 23 64 69 76 46 6c 6f 6f 72 22 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c | "#divFloor">@divFloor</a></li>.< |
| 29e00 | 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 64 69 76 45 78 61 63 74 22 3e 40 64 69 76 45 78 61 63 74 | li><a.href="#divExact">@divExact |
| 29e20 | 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 | </a></li>.</ul>...............<h |
| 29e40 | 32 20 69 64 3d 22 65 6d 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 68 32 3e | 2.id="embedFile">@embedFile</h2> |
| 29e60 | 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 | ........<pre><code.class="zig">@ |
| 29e80 | 65 6d 62 65 64 46 69 6c 65 28 63 6f 6d 70 74 69 6d 65 20 70 61 74 68 3a 20 5b 5d 63 6f 6e 73 74 | embedFile(comptime.path:.[]const |
| 29ea0 | 20 75 38 29 20 2d 26 67 74 3b 20 5b 58 5d 75 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | .u8).->.[X]u8</code></pre>... |
| 29ec0 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 | ....<p>.......This.function.retu |
| 29ee0 | 72 6e 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 20 66 69 78 65 | rns.a.compile.time.constant.fixe |
| 29f00 | 64 2d 73 69 7a 65 20 61 72 72 61 79 20 77 69 74 68 20 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 65 | d-size.array.with.length.......e |
| 29f20 | 71 75 61 6c 20 74 6f 20 74 68 65 20 62 79 74 65 20 63 6f 75 6e 74 20 6f 66 20 74 68 65 20 66 69 | qual.to.the.byte.count.of.the.fi |
| 29f40 | 6c 65 20 67 69 76 65 6e 20 62 79 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 2e 20 54 | le.given.by.<code>path</code>..T |
| 29f60 | 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 61 72 72 61 79 0a 20 20 20 20 20 20 61 | he.contents.of.the.array.......a |
| 29f80 | 72 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 66 69 6c 65 2e 0a 20 20 20 | re.the.contents.of.the.file..... |
| 29fa0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 70 61 | ...</p>.......<p>.......<code>pa |
| 29fc0 | 74 68 3c 2f 63 6f 64 65 3e 20 69 73 20 61 62 73 6f 6c 75 74 65 20 6f 72 20 72 65 6c 61 74 69 76 | th</code>.is.absolute.or.relativ |
| 29fe0 | 65 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65 2c 20 6a 75 73 74 20 6c 69 6b 65 | e.to.the.current.file,.just.like |
| 2a000 | 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 | .<code>@import</code>........</p |
| 2a020 | 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 | >.......<p>See.also:</p><ul>.<li |
| 2a040 | 3e 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f 61 3e 3c 2f | ><a.href="#import">@import</a></ |
| 2a060 | 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 | li>.</ul>...............<h2.id=" |
| 2a080 | 65 78 70 6f 72 74 22 3e 40 65 78 70 6f 72 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 | export">@export</h2>........<pre |
| 2a0a0 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 65 78 70 6f 72 74 28 63 6f 6d 70 74 | ><code.class="zig">@export(compt |
| 2a0c0 | 69 6d 65 20 6e 61 6d 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 20 74 61 72 67 65 74 3a 20 76 61 | ime.name:.[]const.u8,.target:.va |
| 2a0e0 | 72 2c 20 6c 69 6e 6b 61 67 65 3a 20 62 75 69 6c 74 69 6e 2e 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 | r,.linkage:.builtin.GlobalLinkag |
| 2a100 | 65 29 20 2d 26 67 74 3b 20 5b 5d 63 6f 6e 73 74 20 75 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | e).->.[]const.u8</code></pre> |
| 2a120 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 72 65 61 74 65 73 20 61 20 73 79 6d 62 6f | .......<p>.......Creates.a.symbo |
| 2a140 | 6c 20 69 6e 20 74 68 65 20 6f 75 74 70 75 74 20 6f 62 6a 65 63 74 20 66 69 6c 65 2e 0a 20 20 20 | l.in.the.output.object.file..... |
| 2a160 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 61 67 | ...</p>..............<h2.id="tag |
| 2a180 | 4e 61 6d 65 22 3e 40 74 61 67 4e 61 6d 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e | Name">@tagName</h2>........<pre> |
| 2a1a0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 74 61 67 4e 61 6d 65 28 76 61 6c 75 65 | <code.class="zig">@tagName(value |
| 2a1c0 | 3a 20 76 61 72 29 20 2d 26 67 74 3b 20 5b 5d 63 6f 6e 73 74 20 75 38 3c 2f 63 6f 64 65 3e 3c 2f | :.var).->.[]const.u8</code></ |
| 2a1e0 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 6e | pre>.......<p>.......Converts.an |
| 2a200 | 20 65 6e 75 6d 20 76 61 6c 75 65 20 6f 72 20 75 6e 69 6f 6e 20 76 61 6c 75 65 20 74 6f 20 61 20 | .enum.value.or.union.value.to.a. |
| 2a220 | 73 6c 69 63 65 20 6f 66 20 62 79 74 65 73 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 | slice.of.bytes.representing.the. |
| 2a240 | 6e 61 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 | name........</p>..............<h |
| 2a260 | 32 20 69 64 3d 22 54 61 67 54 79 70 65 22 3e 40 54 61 67 54 79 70 65 3c 2f 68 32 3e 0a 0a 20 20 | 2.id="TagType">@TagType</h2>.... |
| 2a280 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 54 61 67 54 | ....<pre><code.class="zig">@TagT |
| 2a2a0 | 79 70 65 28 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 74 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f | ype(T:.type).->.type</code></ |
| 2a2c0 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 46 6f 72 20 61 6e 20 65 6e 75 6d | pre>.......<p>.......For.an.enum |
| 2a2e0 | 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 20 74 68 61 74 20 | ,.returns.the.integer.type.that. |
| 2a300 | 69 73 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 74 68 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e | is.used.to.store.the.enumeration |
| 2a320 | 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | .value........</p>.......<p>.... |
| 2a340 | 20 20 20 46 6f 72 20 61 20 75 6e 69 6f 6e 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 65 6e 75 6d | ...For.a.union,.returns.the.enum |
| 2a360 | 20 74 79 70 65 20 74 68 61 74 20 69 73 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 74 68 65 20 | .type.that.is.used.to.store.the. |
| 2a380 | 74 61 67 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 | tag.value........</p>........... |
| 2a3a0 | 20 20 20 3c 68 32 20 69 64 3d 22 65 72 72 6f 72 4e 61 6d 65 22 3e 40 65 72 72 6f 72 4e 61 6d 65 | ...<h2.id="errorName">@errorName |
| 2a3c0 | 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | </h2>........<pre><code.class="z |
| 2a3e0 | 69 67 22 3e 40 65 72 72 6f 72 4e 61 6d 65 28 65 72 72 3a 20 65 72 72 6f 72 29 20 2d 26 67 74 3b | ig">@errorName(err:.error).-> |
| 2a400 | 20 5b 5d 75 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | .[]u8</code></pre>.......<p>.... |
| 2a420 | 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 73 74 72 | ...This.function.returns.the.str |
| 2a440 | 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 72 72 6f 72 2e 20 | ing.representation.of.an.error.. |
| 2a460 | 49 66 20 61 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 69 73 | If.an.error.......declaration.is |
| 2a480 | 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | :.......</p>.......<pre><code.cl |
| 2a4a0 | 61 73 73 3d 22 7a 69 67 22 3e 65 72 72 6f 72 20 4f 75 74 4f 66 4d 65 6d 3c 2f 63 6f 64 65 3e 3c | ass="zig">error.OutOfMem</code>< |
| 2a4c0 | 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 6e 20 74 68 65 20 73 | /pre>.......<p>.......Then.the.s |
| 2a4e0 | 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 69 73 20 3c 63 6f 64 65 3e 22 4f | tring.representation.is.<code>"O |
| 2a500 | 75 74 4f 66 4d 65 6d 22 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | utOfMem"</code>........</p>..... |
| 2a520 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 63 61 6c 6c | ..<p>.......If.there.are.no.call |
| 2a540 | 73 20 74 6f 20 3c 63 6f 64 65 3e 40 65 72 72 6f 72 4e 61 6d 65 3c 2f 63 6f 64 65 3e 20 69 6e 20 | s.to.<code>@errorName</code>.in. |
| 2a560 | 61 6e 20 65 6e 74 69 72 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 0a 20 20 20 20 20 20 6f 72 20 | an.entire.application,.......or. |
| 2a580 | 61 6c 6c 20 63 61 6c 6c 73 20 68 61 76 65 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6b 6e | all.calls.have.a.compile-time.kn |
| 2a5a0 | 6f 77 6e 20 76 61 6c 75 65 20 66 6f 72 20 3c 63 6f 64 65 3e 65 72 72 3c 2f 63 6f 64 65 3e 2c 20 | own.value.for.<code>err</code>,. |
| 2a5c0 | 74 68 65 6e 20 6e 6f 0a 20 20 20 20 20 20 65 72 72 6f 72 20 6e 61 6d 65 20 74 61 62 6c 65 20 77 | then.no.......error.name.table.w |
| 2a5e0 | 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | ill.be.generated........</p>.... |
| 2a600 | 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 | ..........<h2.id="errorReturnTra |
| 2a620 | 63 65 22 3e 40 65 72 72 6f 72 52 65 74 75 72 6e 54 72 61 63 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 | ce">@errorReturnTrace</h2>...... |
| 2a640 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 65 72 72 6f 72 52 | ..<pre><code.class="zig">@errorR |
| 2a660 | 65 74 75 72 6e 54 72 61 63 65 28 29 20 2d 26 67 74 3b 20 3f 26 61 6d 70 3b 62 75 69 6c 74 69 6e | eturnTrace().->.?&builtin |
| 2a680 | 2e 53 74 61 63 6b 54 72 61 63 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | .StackTrace</code></pre>.......< |
| 2a6a0 | 70 3e 0a 20 20 20 20 20 20 49 66 20 74 68 65 20 62 69 6e 61 72 79 20 69 73 20 62 75 69 6c 74 20 | p>.......If.the.binary.is.built. |
| 2a6c0 | 77 69 74 68 20 65 72 72 6f 72 20 72 65 74 75 72 6e 20 74 72 61 63 69 6e 67 2c 20 61 6e 64 20 74 | with.error.return.tracing,.and.t |
| 2a6e0 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 76 6f 6b 65 64 20 69 6e 20 61 0a 20 20 20 | his.function.is.invoked.in.a.... |
| 2a700 | 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f | ...function.that.calls.a.functio |
| 2a720 | 6e 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 65 72 72 6f 72 20 75 6e 69 6f 6e 20 72 | n.with.an.error.or.error.union.r |
| 2a740 | 65 74 75 72 6e 20 74 79 70 65 2c 20 72 65 74 75 72 6e 73 20 61 0a 20 20 20 20 20 20 73 74 61 63 | eturn.type,.returns.a.......stac |
| 2a760 | 6b 20 74 72 61 63 65 20 6f 62 6a 65 63 74 2e 20 4f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e | k.trace.object..Otherwise.return |
| 2a780 | 73 20 60 6e 75 6c 6c 60 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 | s.`null`........</p>............ |
| 2a7a0 | 20 20 3c 68 32 20 69 64 3d 22 66 65 6e 63 65 22 3e 40 66 65 6e 63 65 3c 2f 68 32 3e 0a 0a 20 20 | ..<h2.id="fence">@fence</h2>.... |
| 2a7c0 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 66 65 6e 63 | ....<pre><code.class="zig">@fenc |
| 2a7e0 | 65 28 6f 72 64 65 72 3a 20 41 74 6f 6d 69 63 4f 72 64 65 72 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | e(order:.AtomicOrder)</code></pr |
| 2a800 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 66 65 6e | e>.......<p>.......The.<code>fen |
| 2a820 | 63 65 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f 20 69 6e | ce</code>.function.is.used.to.in |
| 2a840 | 74 72 6f 64 75 63 65 20 68 61 70 70 65 6e 73 2d 62 65 66 6f 72 65 20 65 64 67 65 73 20 62 65 74 | troduce.happens-before.edges.bet |
| 2a860 | 77 65 65 6e 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | ween.operations........</p>..... |
| 2a880 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 | ..<p>.......<code>AtomicOrder</c |
| 2a8a0 | 6f 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 69 6d | ode>.can.be.found.with.<code>@im |
| 2a8c0 | 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 41 74 6f 6d 69 63 4f 72 64 65 72 3c 2f 63 6f 64 | port("builtin").AtomicOrder</cod |
| 2a8e0 | 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f | e>........</p>.......<p>See.also |
| 2a900 | 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d | :</p><ul>.<li><a.href="#Compile- |
| 2a920 | 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e | Variables">Compile.Variables</a> |
| 2a940 | 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 | </li>.</ul>...............<h2.id |
| 2a960 | 3d 22 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 | ="fieldParentPtr">@fieldParentPt |
| 2a980 | 72 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | r</h2>........<pre><code.class=" |
| 2a9a0 | 7a 69 67 22 3e 40 66 69 65 6c 64 50 61 72 65 6e 74 50 74 72 28 63 6f 6d 70 74 69 6d 65 20 50 61 | zig">@fieldParentPtr(comptime.Pa |
| 2a9c0 | 72 65 6e 74 54 79 70 65 3a 20 74 79 70 65 2c 20 63 6f 6d 70 74 69 6d 65 20 66 69 65 6c 64 5f 6e | rentType:.type,.comptime.field_n |
| 2a9e0 | 61 6d 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 2c 0a 20 20 20 20 66 69 65 6c 64 5f 70 74 72 3a 20 | ame:.[]const.u8,.....field_ptr:. |
| 2aa00 | 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b 20 26 61 6d 70 3b 50 61 72 65 6e 74 54 79 70 65 3c 2f 63 | &T).->.&ParentType</c |
| 2aa20 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 47 69 76 65 6e | ode></pre>.......<p>.......Given |
| 2aa40 | 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 66 69 65 6c 64 2c 20 72 65 74 75 72 6e 73 20 74 | .a.pointer.to.a.field,.returns.t |
| 2aa60 | 68 65 20 62 61 73 65 20 70 6f 69 6e 74 65 72 20 6f 66 20 61 20 73 74 72 75 63 74 2e 0a 20 20 20 | he.base.pointer.of.a.struct..... |
| 2aa80 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 66 72 61 | ...</p>..............<h2.id="fra |
| 2aaa0 | 6d 65 41 64 64 72 65 73 73 22 3e 40 66 72 61 6d 65 41 64 64 72 65 73 73 3c 2f 68 32 3e 0a 0a 20 | meAddress">@frameAddress</h2>... |
| 2aac0 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 66 72 61 | .....<pre><code.class="zig">@fra |
| 2aae0 | 6d 65 41 64 64 72 65 73 73 28 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | meAddress()</code></pre>.......< |
| 2ab00 | 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 | p>.......This.function.returns.t |
| 2ab20 | 68 65 20 62 61 73 65 20 70 6f 69 6e 74 65 72 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 | he.base.pointer.of.the.current.s |
| 2ab40 | 74 61 63 6b 20 66 72 61 6d 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | tack.frame........</p>.......<p> |
| 2ab60 | 0a 20 20 20 20 20 20 54 68 65 20 69 6d 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 | .......The.implications.of.this. |
| 2ab80 | 61 72 65 20 74 61 72 67 65 74 20 73 70 65 63 69 66 69 63 20 61 6e 64 20 6e 6f 74 20 63 6f 6e 73 | are.target.specific.and.not.cons |
| 2aba0 | 69 73 74 65 6e 74 20 61 63 72 6f 73 73 20 61 6c 6c 0a 20 20 20 20 20 20 70 6c 61 74 66 6f 72 6d | istent.across.all.......platform |
| 2abc0 | 73 2e 20 54 68 65 20 66 72 61 6d 65 20 61 64 64 72 65 73 73 20 6d 61 79 20 6e 6f 74 20 62 65 20 | s..The.frame.address.may.not.be. |
| 2abe0 | 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 72 65 6c 65 61 73 65 20 6d 6f 64 65 20 64 75 65 20 74 6f | available.in.release.mode.due.to |
| 2ac00 | 0a 20 20 20 20 20 20 61 67 67 72 65 73 73 69 76 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e | .......aggressive.optimizations. |
| 2ac20 | 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 | .......</p>.......<p>.......This |
| 2ac40 | 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 76 61 6c 69 64 20 77 69 74 68 69 6e 20 66 | .function.is.only.valid.within.f |
| 2ac60 | 75 6e 63 74 69 6f 6e 20 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | unction.scope........</p>....... |
| 2ac80 | 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6d 70 6f 72 74 22 3e 40 69 6d 70 6f 72 74 3c 2f | .......<h2.id="import">@import</ |
| 2aca0 | 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | h2>........<pre><code.class="zig |
| 2acc0 | 22 3e 40 69 6d 70 6f 72 74 28 63 6f 6d 70 74 69 6d 65 20 70 61 74 68 3a 20 5b 5d 75 38 29 20 2d | ">@import(comptime.path:.[]u8).- |
| 2ace0 | 26 67 74 3b 20 28 6e 61 6d 65 73 70 61 63 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 | >.(namespace)</code></pre>... |
| 2ad00 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 | ....<p>.......This.function.find |
| 2ad20 | 73 20 61 20 7a 69 67 20 66 69 6c 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 3c 63 | s.a.zig.file.corresponding.to.<c |
| 2ad40 | 6f 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 69 6d 70 6f 72 74 73 20 61 6c 6c 20 | ode>path</code>.and.imports.all. |
| 2ad60 | 74 68 65 0a 20 20 20 20 20 20 70 75 62 6c 69 63 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 | the.......public.top.level.decla |
| 2ad80 | 72 61 74 69 6f 6e 73 20 69 6e 74 6f 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 6e 61 6d 65 73 | rations.into.the.resulting.names |
| 2ada0 | 70 61 63 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | pace........</p>.......<p>...... |
| 2adc0 | 20 3c 63 6f 64 65 3e 70 61 74 68 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 61 20 72 65 6c 61 | .<code>path</code>.can.be.a.rela |
| 2ade0 | 74 69 76 65 20 6f 72 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 2c 20 6f 72 20 69 74 20 63 61 6e | tive.or.absolute.path,.or.it.can |
| 2ae00 | 20 62 65 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 70 61 63 6b 61 67 65 2e 0a 20 20 20 20 20 | .be.the.name.of.a.package....... |
| 2ae20 | 20 49 66 20 69 74 20 69 73 20 61 20 72 65 6c 61 74 69 76 65 20 70 61 74 68 2c 20 69 74 20 69 73 | .If.it.is.a.relative.path,.it.is |
| 2ae40 | 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 66 69 6c 65 20 74 68 61 74 20 63 6f 6e 74 61 | .relative.to.the.file.that.conta |
| 2ae60 | 69 6e 73 20 74 68 65 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 0a 20 20 20 | ins.the.<code>@import</code>.... |
| 2ae80 | 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | ...function.call........</p>.... |
| 2aea0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 63 6b 61 | ...<p>.......The.following.packa |
| 2aec0 | 67 65 73 20 61 72 65 20 61 6c 77 61 79 73 20 61 76 61 69 6c 61 62 6c 65 3a 0a 20 20 20 20 20 20 | ges.are.always.available:....... |
| 2aee0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 | </p>.......<ul>.........<li><cod |
| 2af00 | 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 3c 2f 63 6f 64 65 3e 20 2d 20 5a 69 67 20 53 74 | e>@import("std")</code>.-.Zig.St |
| 2af20 | 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | andard.Library</li>.........<li> |
| 2af40 | 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 3c 2f 63 6f 64 65 3e 20 | <code>@import("builtin")</code>. |
| 2af60 | 2d 20 43 6f 6d 70 69 6c 65 72 2d 70 72 6f 76 69 64 65 64 20 74 79 70 65 73 20 61 6e 64 20 76 61 | -.Compiler-provided.types.and.va |
| 2af80 | 72 69 61 62 6c 65 73 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c | riables</li>.......</ul>.......< |
| 2afa0 | 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | p>See.also:</p><ul>.<li><a.href= |
| 2afc0 | 22 23 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 | "#Compile-Variables">Compile.Var |
| 2afe0 | 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 65 6d | iables</a></li>.<li><a.href="#em |
| 2b000 | 62 65 64 46 69 6c 65 22 3e 40 65 6d 62 65 64 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 | bedFile">@embedFile</a></li>.</u |
| 2b020 | 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 6c 69 6e 65 43 | l>...............<h2.id="inlineC |
| 2b040 | 61 6c 6c 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 | all">@inlineCall</h2>........<pr |
| 2b060 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 69 6e 6c 69 6e 65 43 61 6c 6c 28 | e><code.class="zig">@inlineCall( |
| 2b080 | 66 75 6e 63 74 69 6f 6e 3a 20 58 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 20 2d 26 67 74 3b 20 59 3c | function:.X,.args:....).->.Y< |
| 2b0a0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 | /code></pre>.......<p>.......Thi |
| 2b0c0 | 73 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 | s.calls.a.function,.in.the.same. |
| 2b0e0 | 77 61 79 20 74 68 61 74 20 69 6e 76 6f 6b 69 6e 67 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 | way.that.invoking.an.expression. |
| 2b100 | 77 69 74 68 20 70 61 72 65 6e 74 68 65 73 65 73 20 64 6f 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 | with.parentheses.does:.......</p |
| 2b120 | 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 | >.......<p.class="file">test.zig |
| 2b140 | 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 | </p><pre><code.class="zig">const |
| 2b160 | 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 | .assert.=.@import("std" |
| 2b180 | 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b 69 6e 6c | ;).debug.assert;..test."inl |
| 2b1a0 | 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 61 73 | ine.function.call".{.....as |
| 2b1c0 | 73 65 72 74 28 40 69 6e 6c 69 6e 65 43 61 6c 6c 28 61 64 64 2c 20 33 2c 20 39 29 20 3d 3d 20 31 | sert(@inlineCall(add,.3,.9).==.1 |
| 2b1e0 | 32 29 3b 0a 7d 0a 0a 66 6e 20 61 64 64 28 61 3a 20 69 33 32 2c 20 62 3a 20 69 33 32 29 20 69 33 | 2);.}..fn.add(a:.i32,.b:.i32).i3 |
| 2b200 | 32 20 7b 20 72 65 74 75 72 6e 20 61 20 2b 20 62 3b 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | 2.{.return.a.+.b;.}</code></pre> |
| 2b220 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 | <pre><code.class="shell">$.zig.t |
| 2b240 | 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 69 6e 6c 69 6e 65 20 66 75 6e | est.test.zig.Test.1/1.inline.fun |
| 2b260 | 63 74 69 6f 6e 20 63 61 6c 6c 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 | ction.call...OK.</code></pre>... |
| 2b280 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 6e 6c 69 6b 65 20 61 20 6e 6f 72 6d 61 6c 20 66 | .....<p>.......Unlike.a.normal.f |
| 2b2a0 | 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 2c 20 68 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 3e 40 69 6e | unction.call,.however,.<code>@in |
| 2b2c0 | 6c 69 6e 65 43 61 6c 6c 3c 2f 63 6f 64 65 3e 20 67 75 61 72 61 6e 74 65 65 73 20 74 68 61 74 20 | lineCall</code>.guarantees.that. |
| 2b2e0 | 74 68 65 20 63 61 6c 6c 0a 20 20 20 20 20 20 77 69 6c 6c 20 62 65 20 69 6e 6c 69 6e 65 64 2e 20 | the.call.......will.be.inlined.. |
| 2b300 | 49 66 20 74 68 65 20 63 61 6c 6c 20 63 61 6e 6e 6f 74 20 62 65 20 69 6e 6c 69 6e 65 64 2c 20 61 | If.the.call.cannot.be.inlined,.a |
| 2b320 | 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d 69 74 74 65 64 2e 0a 20 20 20 20 20 | .compile.error.is.emitted....... |
| 2b340 | 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e | .</p>.......<p>See.also:</p><ul> |
| 2b360 | 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 6e 6f | .<li><a.href="#noInlineCall">@no |
| 2b380 | 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 | InlineCall</a></li>.</ul>....... |
| 2b3a0 | 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f | ........<h2.id="intToPtr">@intTo |
| 2b3c0 | 50 74 72 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | Ptr</h2>........<pre><code.class |
| 2b3e0 | 3d 22 7a 69 67 22 3e 40 69 6e 74 54 6f 50 74 72 28 63 6f 6d 70 74 69 6d 65 20 44 65 73 74 54 79 | ="zig">@intToPtr(comptime.DestTy |
| 2b400 | 70 65 3a 20 74 79 70 65 2c 20 69 6e 74 3a 20 75 73 69 7a 65 29 20 2d 26 67 74 3b 20 44 65 73 74 | pe:.type,.int:.usize).->.Dest |
| 2b420 | 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | Type</code></pre>.......<p>..... |
| 2b440 | 20 20 43 6f 6e 76 65 72 74 73 20 61 6e 20 69 6e 74 65 67 65 72 20 74 6f 20 61 20 70 6f 69 6e 74 | ..Converts.an.integer.to.a.point |
| 2b460 | 65 72 2e 20 54 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 2c 20 75 73 | er..To.convert.the.other.way,.us |
| 2b480 | 65 20 3c 61 20 68 72 65 66 3d 22 23 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 6e 74 3c | e.<a.href="#ptrToInt">@ptrToInt< |
| 2b4a0 | 2f 61 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 | /a>........</p>..............<h2 |
| 2b4c0 | 20 69 64 3d 22 49 6e 74 54 79 70 65 22 3e 40 49 6e 74 54 79 70 65 3c 2f 68 32 3e 0a 0a 20 20 20 | .id="IntType">@IntType</h2>..... |
| 2b4e0 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 49 6e 74 54 79 | ...<pre><code.class="zig">@IntTy |
| 2b500 | 70 65 28 63 6f 6d 70 74 69 6d 65 20 69 73 5f 73 69 67 6e 65 64 3a 20 62 6f 6f 6c 2c 20 63 6f 6d | pe(comptime.is_signed:.bool,.com |
| 2b520 | 70 74 69 6d 65 20 62 69 74 5f 63 6f 75 6e 74 3a 20 75 38 29 20 2d 26 67 74 3b 20 74 79 70 65 3c | ptime.bit_count:.u8).->.type< |
| 2b540 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 | /code></pre>.......<p>.......Thi |
| 2b560 | 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 6e 20 69 6e 74 65 67 65 72 20 74 79 | s.function.returns.an.integer.ty |
| 2b580 | 70 65 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e 20 73 69 67 6e 6e 65 73 73 20 61 6e 64 20 62 | pe.with.the.given.signness.and.b |
| 2b5a0 | 69 74 20 63 6f 75 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 | it.count........</p>............ |
| 2b5c0 | 20 20 3c 68 32 20 69 64 3d 22 6d 61 78 56 61 6c 75 65 22 3e 40 6d 61 78 56 61 6c 75 65 3c 2f 68 | ..<h2.id="maxValue">@maxValue</h |
| 2b5e0 | 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | 2>........<pre><code.class="zig" |
| 2b600 | 3e 40 6d 61 78 56 61 6c 75 65 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 | >@maxValue(comptime.T:.type).-&g |
| 2b620 | 74 3b 20 28 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | t;.(number.literal)</code></pre> |
| 2b640 | 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 | .......<p>.......This.function.r |
| 2b660 | 65 74 75 72 6e 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 | eturns.the.maximum.value.of.the. |
| 2b680 | 69 6e 74 65 67 65 72 20 74 79 70 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 | integer.type.<code>T</code>..... |
| 2b6a0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 | ...</p>.......<p>.......The.resu |
| 2b6c0 | 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 | lt.is.a.compile.time.constant... |
| 2b6e0 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d | .....</p>..............<h2.id="m |
| 2b700 | 65 6d 62 65 72 43 6f 75 6e 74 22 3e 40 6d 65 6d 62 65 72 43 6f 75 6e 74 3c 2f 68 32 3e 0a 0a 20 | emberCount">@memberCount</h2>... |
| 2b720 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 65 6d | .....<pre><code.class="zig">@mem |
| 2b740 | 62 65 72 43 6f 75 6e 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b | berCount(comptime.T:.type).-> |
| 2b760 | 20 28 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | .(number.literal)</code></pre>.. |
| 2b780 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 | .....<p>.......This.function.ret |
| 2b7a0 | 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6d 65 6d 62 65 72 73 20 69 6e 20 61 20 | urns.the.number.of.members.in.a. |
| 2b7c0 | 73 74 72 75 63 74 2c 20 65 6e 75 6d 2c 20 6f 72 20 75 6e 69 6f 6e 20 74 79 70 65 2e 0a 20 20 20 | struct,.enum,.or.union.type..... |
| 2b7e0 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 | ...</p>.......<p>.......The.resu |
| 2b800 | 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 | lt.is.a.compile.time.constant... |
| 2b820 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 | .....</p>.......<p>.......It.doe |
| 2b840 | 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 76 61 72 69 61 62 6c | s.not.include.functions,.variabl |
| 2b860 | 65 73 2c 20 6f 72 20 63 6f 6e 73 74 61 6e 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | es,.or.constants........</p>.... |
| 2b880 | 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d 62 65 72 4e 61 6d 65 22 3e 40 6d | ..........<h2.id="memberName">@m |
| 2b8a0 | 65 6d 62 65 72 4e 61 6d 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | emberName</h2>........<pre><code |
| 2b8c0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 65 6d 62 65 72 4e 61 6d 65 28 63 6f 6d 70 74 69 6d | .class="zig">@memberName(comptim |
| 2b8e0 | 65 20 54 3a 20 74 79 70 65 2c 20 63 6f 6d 70 74 69 6d 65 20 69 6e 64 65 78 3a 20 75 73 69 7a 65 | e.T:.type,.comptime.index:.usize |
| 2b900 | 29 20 2d 26 67 74 3b 20 5b 4e 5d 75 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 | ).->.[N]u8</code></pre>...... |
| 2b920 | 20 3c 70 3e 52 65 74 75 72 6e 73 20 74 68 65 20 66 69 65 6c 64 20 6e 61 6d 65 20 6f 66 20 61 20 | .<p>Returns.the.field.name.of.a. |
| 2b940 | 73 74 72 75 63 74 2c 20 75 6e 69 6f 6e 2c 20 6f 72 20 65 6e 75 6d 2e 3c 2f 70 3e 0a 20 20 20 20 | struct,.union,.or.enum.</p>..... |
| 2b960 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 6d 70 | ..<p>.......The.result.is.a.comp |
| 2b980 | 69 6c 65 20 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | ile.time.constant........</p>... |
| 2b9a0 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 | ....<p>.......It.does.not.includ |
| 2b9c0 | 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 76 61 72 69 61 62 6c 65 73 2c 20 6f 72 20 63 6f 6e 73 74 | e.functions,.variables,.or.const |
| 2b9e0 | 61 6e 74 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 | ants........</p>..............<h |
| 2ba00 | 32 20 69 64 3d 22 6d 65 6d 62 65 72 54 79 70 65 22 3e 40 6d 65 6d 62 65 72 54 79 70 65 3c 2f 68 | 2.id="memberType">@memberType</h |
| 2ba20 | 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 | 2>........<pre><code.class="zig" |
| 2ba40 | 3e 40 6d 65 6d 62 65 72 54 79 70 65 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 63 | >@memberType(comptime.T:.type,.c |
| 2ba60 | 6f 6d 70 74 69 6d 65 20 69 6e 64 65 78 3a 20 75 73 69 7a 65 29 20 2d 26 67 74 3b 20 74 79 70 65 | omptime.index:.usize).->.type |
| 2ba80 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 52 65 74 75 72 6e 73 20 74 | </code></pre>.......<p>Returns.t |
| 2baa0 | 68 65 20 66 69 65 6c 64 20 74 79 70 65 20 6f 66 20 61 20 73 74 72 75 63 74 20 6f 72 20 75 6e 69 | he.field.type.of.a.struct.or.uni |
| 2bac0 | 6f 6e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d | on.</p>..............<h2.id="mem |
| 2bae0 | 63 70 79 22 3e 40 6d 65 6d 63 70 79 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | cpy">@memcpy</h2>........<pre><c |
| 2bb00 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 65 6d 63 70 79 28 6e 6f 61 6c 69 61 73 20 | ode.class="zig">@memcpy(noalias. |
| 2bb20 | 64 65 73 74 3a 20 26 61 6d 70 3b 75 38 2c 20 6e 6f 61 6c 69 61 73 20 73 6f 75 72 63 65 3a 20 26 | dest:.&u8,.noalias.source:.& |
| 2bb40 | 61 6d 70 3b 63 6f 6e 73 74 20 75 38 2c 20 62 79 74 65 5f 63 6f 75 6e 74 3a 20 75 73 69 7a 65 29 | amp;const.u8,.byte_count:.usize) |
| 2bb60 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 | </code></pre>.......<p>.......Th |
| 2bb80 | 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 69 65 73 20 62 79 74 65 73 20 66 72 6f 6d 20 6f 6e | is.function.copies.bytes.from.on |
| 2bba0 | 65 20 72 65 67 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 74 6f 20 61 6e 6f 74 68 65 72 2e 20 3c | e.region.of.memory.to.another..< |
| 2bbc0 | 63 6f 64 65 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 0a 20 20 20 20 20 20 3c 63 6f 64 65 | code>dest</code>.and.......<code |
| 2bbe0 | 3e 73 6f 75 72 63 65 3c 2f 63 6f 64 65 3e 20 61 72 65 20 62 6f 74 68 20 70 6f 69 6e 74 65 72 73 | >source</code>.are.both.pointers |
| 2bc00 | 20 61 6e 64 20 6d 75 73 74 20 6e 6f 74 20 6f 76 65 72 6c 61 70 2e 0a 20 20 20 20 20 20 3c 2f 70 | .and.must.not.overlap........</p |
| 2bc20 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 | >.......<p>.......This.function. |
| 2bc40 | 69 73 20 61 20 6c 6f 77 20 6c 65 76 65 6c 20 69 6e 74 72 69 6e 73 69 63 20 77 69 74 68 20 6e 6f | is.a.low.level.intrinsic.with.no |
| 2bc60 | 20 73 61 66 65 74 79 20 6d 65 63 68 61 6e 69 73 6d 73 2e 20 4d 6f 73 74 20 63 6f 64 65 0a 20 20 | .safety.mechanisms..Most.code... |
| 2bc80 | 20 20 20 20 73 68 6f 75 6c 64 20 6e 6f 74 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e | ....should.not.use.this.function |
| 2bca0 | 2c 20 69 6e 73 74 65 61 64 20 75 73 69 6e 67 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 74 | ,.instead.using.something.like.t |
| 2bcc0 | 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | his:.......</p>.......<pre><code |
| 2bce0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 6f 72 20 28 73 6f 75 72 63 65 5b 30 2e 2e 2e 62 79 74 | .class="zig">for.(source[0...byt |
| 2bd00 | 65 5f 63 6f 75 6e 74 5d 29 20 7c 62 2c 20 69 7c 20 64 65 73 74 5b 69 5d 20 3d 20 62 3b 3c 2f 63 | e_count]).|b,.i|.dest[i].=.b;</c |
| 2bd20 | 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 6f | ode></pre>.......<p>.......The.o |
| 2bd40 | 70 74 69 6d 69 7a 65 72 20 69 73 20 69 6e 74 65 6c 6c 69 67 65 6e 74 20 65 6e 6f 75 67 68 20 74 | ptimizer.is.intelligent.enough.t |
| 2bd60 | 6f 20 74 75 72 6e 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 74 20 69 6e 74 6f 20 61 20 | o.turn.the.above.snippet.into.a. |
| 2bd80 | 6d 65 6d 63 70 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 72 | memcpy........</p>.......<p>Ther |
| 2bda0 | 65 20 69 73 20 61 6c 73 6f 20 61 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 66 75 6e | e.is.also.a.standard.library.fun |
| 2bdc0 | 63 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | ction.for.this:</p>.......<pre>< |
| 2bde0 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d | code.class="zig">const.mem.=.@im |
| 2be00 | 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a 6d 65 6d 2e 63 6f 70 79 28 75 38 2c 20 64 65 | port("std").mem;.mem.copy(u8,.de |
| 2be20 | 73 74 5b 30 2e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 2c 20 73 6f 75 72 63 65 5b 30 2e 2e 2e 62 | st[0...byte_count],.source[0...b |
| 2be40 | 79 74 65 5f 63 6f 75 6e 74 5d 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | yte_count]);</code></pre>....... |
| 2be60 | 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 65 6d 73 65 74 22 3e 40 6d 65 6d 73 65 74 3c 2f | .......<h2.id="memset">@memset</ |
| 2be80 | 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | h2>........<pre><code.class="zig |
| 2bea0 | 22 3e 40 6d 65 6d 73 65 74 28 64 65 73 74 3a 20 26 61 6d 70 3b 75 38 2c 20 63 3a 20 75 38 2c 20 | ">@memset(dest:.&u8,.c:.u8,. |
| 2bec0 | 62 79 74 65 5f 63 6f 75 6e 74 3a 20 75 73 69 7a 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | byte_count:.usize)</code></pre>. |
| 2bee0 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 65 | ......<p>.......This.function.se |
| 2bf00 | 74 73 20 61 20 72 65 67 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 74 6f 20 3c 63 6f 64 65 3e 63 | ts.a.region.of.memory.to.<code>c |
| 2bf20 | 3c 2f 63 6f 64 65 3e 2e 20 3c 63 6f 64 65 3e 64 65 73 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 20 | </code>..<code>dest</code>.is.a. |
| 2bf40 | 70 6f 69 6e 74 65 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | pointer........</p>.......<p>... |
| 2bf60 | 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 6c 6f 77 20 6c 65 76 65 6c | ....This.function.is.a.low.level |
| 2bf80 | 20 69 6e 74 72 69 6e 73 69 63 20 77 69 74 68 20 6e 6f 20 73 61 66 65 74 79 20 6d 65 63 68 61 6e | .intrinsic.with.no.safety.mechan |
| 2bfa0 | 69 73 6d 73 2e 20 4d 6f 73 74 0a 20 20 20 20 20 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 6e 6f 74 | isms..Most.......code.should.not |
| 2bfc0 | 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 69 6e 73 74 65 61 64 20 75 73 69 6e | .use.this.function,.instead.usin |
| 2bfe0 | 67 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 | g.something.like.this:.......</p |
| 2c000 | 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 66 | >.......<pre><code.class="zig">f |
| 2c020 | 6f 72 20 28 64 65 73 74 5b 30 2e 2e 2e 62 79 74 65 5f 63 6f 75 6e 74 5d 29 20 7c 2a 62 7c 20 2a | or.(dest[0...byte_count]).|*b|.* |
| 2c040 | 62 20 3d 20 63 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | b.=.c;</code></pre>.......<p>... |
| 2c060 | 20 20 20 20 54 68 65 20 6f 70 74 69 6d 69 7a 65 72 20 69 73 20 69 6e 74 65 6c 6c 69 67 65 6e 74 | ....The.optimizer.is.intelligent |
| 2c080 | 20 65 6e 6f 75 67 68 20 74 6f 20 74 75 72 6e 20 74 68 65 20 61 62 6f 76 65 20 73 6e 69 70 70 65 | .enough.to.turn.the.above.snippe |
| 2c0a0 | 74 20 69 6e 74 6f 20 61 20 6d 65 6d 73 65 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | t.into.a.memset........</p>..... |
| 2c0c0 | 20 20 3c 70 3e 54 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 20 73 74 61 6e 64 61 72 64 20 6c 69 | ..<p>There.is.also.a.standard.li |
| 2c0e0 | 62 72 61 72 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 74 68 69 73 3a 3c 2f 70 3e 0a 20 20 20 | brary.function.for.this:</p>.... |
| 2c100 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 3e 63 6f 6e 73 74 20 6d 65 6d 20 3d 20 40 69 6d 70 6f 72 | ...<pre><code>const.mem.=.@impor |
| 2c120 | 74 28 22 73 74 64 22 29 2e 6d 65 6d 3b 0a 6d 65 6d 2e 73 65 74 28 75 38 2c 20 64 65 73 74 2c 20 | t("std").mem;.mem.set(u8,.dest,. |
| 2c140 | 63 29 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 | c);</code></pre>..............<h |
| 2c160 | 32 20 69 64 3d 22 6d 69 6e 56 61 6c 75 65 22 3e 40 6d 69 6e 56 61 6c 75 65 3c 2f 68 32 3e 0a 0a | 2.id="minValue">@minValue</h2>.. |
| 2c180 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 69 | ......<pre><code.class="zig">@mi |
| 2c1a0 | 6e 56 61 6c 75 65 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 28 | nValue(comptime.T:.type).->.( |
| 2c1c0 | 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | number.literal)</code></pre>.... |
| 2c1e0 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 | ...<p>.......This.function.retur |
| 2c200 | 6e 73 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 69 6e 74 65 | ns.the.minimum.value.of.the.inte |
| 2c220 | 67 65 72 20 74 79 70 65 20 54 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e | ger.type.T........</p>.......<p> |
| 2c240 | 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 6d 70 69 6c 65 20 74 | .......The.result.is.a.compile.t |
| 2c260 | 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a | ime.constant........</p>........ |
| 2c280 | 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 68 32 3e 0a 0a 20 20 | ......<h2.id="mod">@mod</h2>.... |
| 2c2a0 | 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 6f 64 28 | ....<pre><code.class="zig">@mod( |
| 2c2c0 | 6e 75 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 | numerator:.T,.denominator:.T).-& |
| 2c2e0 | 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | gt;.T</code></pre>.......<p>.... |
| 2c300 | 20 20 20 4d 6f 64 75 6c 75 73 20 64 69 76 69 73 69 6f 6e 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 | ...Modulus.division..For.unsigne |
| 2c320 | 64 20 69 6e 74 65 67 65 72 73 20 74 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 | d.integers.this.is.the.same.as.. |
| 2c340 | 20 20 20 20 20 3c 63 6f 64 65 3e 6e 75 6d 65 72 61 74 6f 72 20 25 20 64 65 6e 6f 6d 69 6e 61 74 | .....<code>numerator.%.denominat |
| 2c360 | 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f | or</code>..Caller.guarantees.<co |
| 2c380 | 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 26 67 74 3b 20 30 3c 2f 63 6f 64 65 3e 2e 0a 20 20 | de>denominator.>.0</code>.... |
| 2c3a0 | 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | ....</p>.......<ul>.........<li> |
| 2c3c0 | 3c 63 6f 64 65 3e 40 6d 6f 64 28 2d 35 2c 20 33 29 20 3d 3d 20 31 3c 2f 63 6f 64 65 3e 3c 2f 6c | <code>@mod(-5,.3).==.1</code></l |
| 2c3e0 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 46 6c 6f 6f 72 28 61 | i>.........<li><code>@divFloor(a |
| 2c400 | 2c 20 62 29 20 2b 20 40 6d 6f 64 28 61 2c 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c | ,.b).+.@mod(a,.b).==.a</code></l |
| 2c420 | 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 61 20 66 75 | i>.......</ul>.......<p>For.a.fu |
| 2c440 | 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 | nction.that.returns.an.error.cod |
| 2c460 | 65 2c 20 73 65 65 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 | e,.see.<code>@import("std").math |
| 2c480 | 2e 6d 6f 64 3c 2f 63 6f 64 65 3e 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c | .mod</code>.</p>.......<p>See.al |
| 2c4a0 | 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 72 65 6d 22 3e 40 | so:</p><ul>.<li><a.href="#rem">@ |
| 2c4c0 | 72 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | rem</a></li>.</ul>.............. |
| 2c4e0 | 20 3c 68 32 20 69 64 3d 22 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 6d 75 6c 57 69 | .<h2.id="mulWithOverflow">@mulWi |
| 2c500 | 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 | thOverflow</h2>........<pre><cod |
| 2c520 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 63 | e.class="zig">@mulWithOverflow(c |
| 2c540 | 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 2c 20 72 65 73 | omptime.T:.type,.a:.T,.b:.T,.res |
| 2c560 | 75 6c 74 3a 20 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f | ult:.&T).->.bool</code></ |
| 2c580 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 | pre>.......<p>.......Performs.<c |
| 2c5a0 | 6f 64 65 3e 2a 72 65 73 75 6c 74 20 3d 20 61 20 2a 20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f | ode>*result.=.a.*.b</code>..If.o |
| 2c5c0 | 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 | verflow.or.underflow.occurs,.... |
| 2c5e0 | 20 20 20 73 74 6f 72 65 73 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e | ...stores.the.overflowed.bits.in |
| 2c600 | 20 3c 63 6f 64 65 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 | .<code>result</code>.and.returns |
| 2c620 | 20 3c 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 49 66 20 6e 6f 20 | .<code>true</code>........If.no. |
| 2c640 | 6f 76 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 | overflow.or.underflow.occurs,.re |
| 2c660 | 74 75 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 | turns.<code>false</code>........ |
| 2c680 | 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6e 6f 49 6e 6c 69 | </p>..............<h2.id="noInli |
| 2c6a0 | 6e 65 43 61 6c 6c 22 3e 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 3c 2f 68 32 3e 0a 0a 20 20 20 20 | neCall">@noInlineCall</h2>...... |
| 2c6c0 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 6e 6f 49 6e 6c 69 | ..<pre><code.class="zig">@noInli |
| 2c6e0 | 6e 65 43 61 6c 6c 28 66 75 6e 63 74 69 6f 6e 3a 20 76 61 72 2c 20 61 72 67 73 3a 20 2e 2e 2e 29 | neCall(function:.var,.args:....) |
| 2c700 | 20 2d 26 67 74 3b 20 76 61 72 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 | .->.var</code></pre>.......<p |
| 2c720 | 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 6c 6c 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 69 | >.......This.calls.a.function,.i |
| 2c740 | 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 6e 76 6f 6b 69 6e 67 20 61 6e 20 | n.the.same.way.that.invoking.an. |
| 2c760 | 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 20 70 61 72 65 6e 74 68 65 73 65 73 20 64 6f 65 73 | expression.with.parentheses.does |
| 2c780 | 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | :.......</p>.......<pre><code.cl |
| 2c7a0 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 | ass="zig">const.assert.=.@import |
| 2c7c0 | 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 74 65 73 74 20 22 6e 6f 69 6e | ("std").debug.assert;.test."noin |
| 2c7e0 | 6c 69 6e 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 22 20 7b 0a 20 20 20 20 61 73 73 65 72 74 | line.function.call".{.....assert |
| 2c800 | 28 40 6e 6f 49 6e 6c 69 6e 65 43 61 6c 6c 28 61 64 64 2c 20 33 2c 20 39 29 20 3d 3d 20 31 32 29 | (@noInlineCall(add,.3,.9).==.12) |
| 2c820 | 3b 0a 7d 0a 0a 66 6e 20 61 64 64 28 61 3a 20 69 33 32 2c 20 62 3a 20 69 33 32 29 20 2d 26 67 74 | ;.}..fn.add(a:.i32,.b:.i32).-> |
| 2c840 | 3b 20 69 33 32 20 7b 20 61 20 2b 20 62 20 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | ;.i32.{.a.+.b.}</code></pre>.... |
| 2c860 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 55 6e 6c 69 6b 65 20 61 20 6e 6f 72 6d 61 6c 20 66 75 6e | ...<p>.......Unlike.a.normal.fun |
| 2c880 | 63 74 69 6f 6e 20 63 61 6c 6c 2c 20 68 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 3e 40 6e 6f 49 6e | ction.call,.however,.<code>@noIn |
| 2c8a0 | 6c 69 6e 65 43 61 6c 6c 3c 2f 63 6f 64 65 3e 20 67 75 61 72 61 6e 74 65 65 73 20 74 68 61 74 20 | lineCall</code>.guarantees.that. |
| 2c8c0 | 74 68 65 20 63 61 6c 6c 0a 20 20 20 20 20 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 69 6e 6c 69 6e | the.call.......will.not.be.inlin |
| 2c8e0 | 65 64 2e 20 49 66 20 74 68 65 20 63 61 6c 6c 20 6d 75 73 74 20 62 65 20 69 6e 6c 69 6e 65 64 2c | ed..If.the.call.must.be.inlined, |
| 2c900 | 20 61 20 63 6f 6d 70 69 6c 65 20 65 72 72 6f 72 20 69 73 20 65 6d 69 74 74 65 64 2e 0a 20 20 20 | .a.compile.error.is.emitted..... |
| 2c920 | 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 | ...</p>.......<p>See.also:</p><u |
| 2c940 | 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6e 6c 69 6e 65 43 61 6c 6c 22 3e 40 69 6e | l>.<li><a.href="#inlineCall">@in |
| 2c960 | 6c 69 6e 65 43 61 6c 6c 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a | lineCall</a></li>.</ul>......... |
| 2c980 | 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 6f 66 66 73 65 74 4f 66 22 3e 40 6f 66 66 73 65 74 4f | ......<h2.id="offsetOf">@offsetO |
| 2c9a0 | 66 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 | f</h2>........<pre><code.class=" |
| 2c9c0 | 7a 69 67 22 3e 40 6f 66 66 73 65 74 4f 66 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c | zig">@offsetOf(comptime.T:.type, |
| 2c9e0 | 20 63 6f 6d 70 74 69 6d 65 20 66 69 65 6c 64 5f 6e 61 6d 65 3a 20 5b 5d 20 63 6f 6e 73 74 20 75 | .comptime.field_name:.[].const.u |
| 2ca00 | 38 29 20 2d 26 67 74 3b 20 28 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c 29 3c 2f 63 6f 64 65 3e | 8).->.(number.literal)</code> |
| 2ca20 | 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 | </pre>.......<p>.......This.func |
| 2ca40 | 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 62 79 74 65 20 6f 66 66 73 65 74 20 6f 66 20 | tion.returns.the.byte.offset.of. |
| 2ca60 | 61 20 66 69 65 6c 64 20 72 65 6c 61 74 69 76 65 20 74 6f 20 69 74 73 20 63 6f 6e 74 61 69 6e 69 | a.field.relative.to.its.containi |
| 2ca80 | 6e 67 20 73 74 72 75 63 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 | ng.struct........</p>........... |
| 2caa0 | 20 20 20 3c 68 32 20 69 64 3d 22 4f 70 61 71 75 65 54 79 70 65 22 3e 40 4f 70 61 71 75 65 54 79 | ...<h2.id="OpaqueType">@OpaqueTy |
| 2cac0 | 70 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | pe</h2>........<pre><code.class= |
| 2cae0 | 22 7a 69 67 22 3e 40 4f 70 61 71 75 65 54 79 70 65 28 29 20 2d 26 67 74 3b 20 74 79 70 65 3c 2f | "zig">@OpaqueType().->.type</ |
| 2cb00 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 72 65 61 | code></pre>.......<p>.......Crea |
| 2cb20 | 74 65 73 20 61 20 6e 65 77 20 74 79 70 65 20 77 69 74 68 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20 73 | tes.a.new.type.with.an.unknown.s |
| 2cb40 | 69 7a 65 20 61 6e 64 20 61 6c 69 67 6e 6d 65 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | ize.and.alignment........</p>... |
| 2cb60 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 | ....<p>.......This.is.typically. |
| 2cb80 | 75 73 65 64 20 66 6f 72 20 74 79 70 65 20 73 61 66 65 74 79 20 77 68 65 6e 20 69 6e 74 65 72 61 | used.for.type.safety.when.intera |
| 2cba0 | 63 74 69 6e 67 20 77 69 74 68 20 43 20 63 6f 64 65 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 | cting.with.C.code.that.does.not. |
| 2cbc0 | 65 78 70 6f 73 65 20 73 74 72 75 63 74 20 64 65 74 61 69 6c 73 2e 0a 20 20 20 20 20 20 45 78 61 | expose.struct.details........Exa |
| 2cbe0 | 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d | mple:.......</p>.......<p.class= |
| 2cc00 | 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | "file">test.zig</p><pre><code.cl |
| 2cc20 | 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 44 65 72 70 20 3d 20 40 4f 70 61 71 75 65 54 79 | ass="zig">const.Derp.=.@OpaqueTy |
| 2cc40 | 70 65 28 29 3b 0a 63 6f 6e 73 74 20 57 61 74 20 3d 20 40 4f 70 61 71 75 65 54 79 70 65 28 29 3b | pe();.const.Wat.=.@OpaqueType(); |
| 2cc60 | 0a 0a 65 78 74 65 72 6e 20 66 6e 20 62 61 72 28 64 3a 20 26 61 6d 70 3b 44 65 72 70 29 20 76 6f | ..extern.fn.bar(d:.&Derp).vo |
| 2cc80 | 69 64 3b 0a 65 78 70 6f 72 74 20 66 6e 20 66 6f 6f 28 77 3a 20 26 61 6d 70 3b 57 61 74 29 20 76 | id;.export.fn.foo(w:.&Wat).v |
| 2cca0 | 6f 69 64 20 7b 0a 20 20 20 20 62 61 72 28 77 29 3b 0a 7d 0a 0a 74 65 73 74 20 26 71 75 6f 74 3b | oid.{.....bar(w);.}..test." |
| 2ccc0 | 63 61 6c 6c 20 66 6f 6f 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 66 6f 6f 28 75 6e 64 65 66 69 6e | call.foo".{.....foo(undefin |
| 2cce0 | 65 64 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | ed);.}</code></pre><pre><code.cl |
| 2cd00 | 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a | ass="shell">$.zig.test.test.zig. |
| 2cd20 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 | <span.class="t0_1">/home/andy/de |
| 2cd40 | 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 36 3a 39 3a 20 3c | v/zig/docgen_tmp/test.zig:6:9:.< |
| 2cd60 | 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a | /span><span.class="t31_1">error: |
| 2cd80 | 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 78 70 65 63 | </span><span.class="t0_1">.expec |
| 2cda0 | 74 65 64 20 74 79 70 65 20 27 26 61 6d 70 3b 44 65 72 70 27 2c 20 66 6f 75 6e 64 20 27 26 61 6d | ted.type.'&Derp',.found.'&am |
| 2cdc0 | 70 3b 57 61 74 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 62 61 72 28 77 29 3b 0a 20 20 20 20 20 20 | p;Wat'</span>.....bar(w);....... |
| 2cde0 | 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c | ..<span.class="t32_1">^</span>.< |
| 2ce00 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 | /code></pre>...............<h2.i |
| 2ce20 | 64 3d 22 70 61 6e 69 63 22 3e 40 70 61 6e 69 63 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 | d="panic">@panic</h2>........<pr |
| 2ce40 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 70 61 6e 69 63 28 6d 65 73 73 61 | e><code.class="zig">@panic(messa |
| 2ce60 | 67 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 29 20 2d 26 67 74 3b 20 6e 6f 72 65 74 75 72 6e 3c 2f | ge:.[]const.u8).->.noreturn</ |
| 2ce80 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 6e 76 6f | code></pre>.......<p>.......Invo |
| 2cea0 | 6b 65 73 20 74 68 65 20 70 61 6e 69 63 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 2e 20 | kes.the.panic.handler.function.. |
| 2cec0 | 42 79 20 64 65 66 61 75 6c 74 20 74 68 65 20 70 61 6e 69 63 20 68 61 6e 64 6c 65 72 20 66 75 6e | By.default.the.panic.handler.fun |
| 2cee0 | 63 74 69 6f 6e 0a 20 20 20 20 20 20 63 61 6c 6c 73 20 74 68 65 20 70 75 62 6c 69 63 20 3c 63 6f | ction.......calls.the.public.<co |
| 2cf00 | 64 65 3e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 6f 73 65 64 | de>panic</code>.function.exposed |
| 2cf20 | 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 73 6f 75 72 63 65 20 66 69 6c 65 2c 20 6f 72 0a 20 20 20 | .in.the.root.source.file,.or.... |
| 2cf40 | 20 20 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 74 20 6f 6e 65 20 73 70 65 63 69 66 69 65 64 | ...if.there.is.not.one.specified |
| 2cf60 | 2c 20 69 6e 76 6f 6b 65 73 20 74 68 65 20 6f 6e 65 20 70 72 6f 76 69 64 65 64 20 69 6e 20 3c 63 | ,.invokes.the.one.provided.in.<c |
| 2cf80 | 6f 64 65 3e 73 74 64 2f 73 70 65 63 69 61 6c 2f 70 61 6e 69 63 2e 7a 69 67 3c 2f 63 6f 64 65 3e | ode>std/special/panic.zig</code> |
| 2cfa0 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 47 65 6e 65 72 61 6c 6c 79 20 | ........</p>.......<p>Generally. |
| 2cfc0 | 69 74 20 69 73 20 62 65 74 74 65 72 20 74 6f 20 75 73 65 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 | it.is.better.to.use.<code>@impor |
| 2cfe0 | 74 28 22 73 74 64 22 29 2e 64 65 62 75 67 2e 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 | t("std").debug.panic</code>..... |
| 2d000 | 20 20 20 48 6f 77 65 76 65 72 2c 20 3c 63 6f 64 65 3e 40 70 61 6e 69 63 3c 2f 63 6f 64 65 3e 20 | ...However,.<code>@panic</code>. |
| 2d020 | 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f 72 20 32 20 73 63 65 6e 61 72 69 6f 73 3a 0a 20 | can.be.useful.for.2.scenarios:.. |
| 2d040 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | .....</p>.......<ul>.........<li |
| 2d060 | 3e 46 72 6f 6d 20 6c 69 62 72 61 72 79 20 63 6f 64 65 2c 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 | >From.library.code,.calling.the. |
| 2d080 | 70 72 6f 67 72 61 6d 6d 65 72 27 73 20 70 61 6e 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 66 20 74 | programmer's.panic.function.if.t |
| 2d0a0 | 68 65 79 20 65 78 70 6f 73 65 64 20 6f 6e 65 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 73 6f 75 72 | hey.exposed.one.in.the.root.sour |
| 2d0c0 | 63 65 20 66 69 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 57 68 65 6e 20 6d | ce.file.</li>.........<li>When.m |
| 2d0e0 | 69 78 69 6e 67 20 43 20 61 6e 64 20 5a 69 67 20 63 6f 64 65 2c 20 63 61 6c 6c 69 6e 67 20 74 68 | ixing.C.and.Zig.code,.calling.th |
| 2d100 | 65 20 63 61 6e 6f 6e 69 63 61 6c 20 70 61 6e 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e | e.canonical.panic.implementation |
| 2d120 | 20 61 63 72 6f 73 73 20 6d 75 6c 74 69 70 6c 65 20 2e 6f 20 66 69 6c 65 73 2e 3c 2f 6c 69 3e 0a | .across.multiple..o.files.</li>. |
| 2d140 | 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f | ......</ul>.......<p>See.also:</ |
| 2d160 | 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 6f 6f 74 2d 53 6f 75 72 63 65 | p><ul>.<li><a.href="#Root-Source |
| 2d180 | 2d 46 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 3c 2f 61 3e 3c 2f 6c 69 3e | -File">Root.Source.File</a></li> |
| 2d1a0 | 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 70 74 72 | .</ul>...............<h2.id="ptr |
| 2d1c0 | 43 61 73 74 22 3e 40 70 74 72 43 61 73 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e | Cast">@ptrCast</h2>........<pre> |
| 2d1e0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 70 74 72 43 61 73 74 28 63 6f 6d 70 74 | <code.class="zig">@ptrCast(compt |
| 2d200 | 69 6d 65 20 44 65 73 74 54 79 70 65 3a 20 74 79 70 65 2c 20 76 61 6c 75 65 3a 20 76 61 72 29 20 | ime.DestType:.type,.value:.var). |
| 2d220 | 2d 26 67 74 3b 20 44 65 73 74 54 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | ->.DestType</code></pre>..... |
| 2d240 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6e 76 65 72 74 73 20 61 20 70 6f 69 6e 74 65 72 20 6f | ..<p>.......Converts.a.pointer.o |
| 2d260 | 66 20 6f 6e 65 20 74 79 70 65 20 74 6f 20 61 20 70 6f 69 6e 74 65 72 20 6f 66 20 61 6e 6f 74 68 | f.one.type.to.a.pointer.of.anoth |
| 2d280 | 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | er.type........</p>............. |
| 2d2a0 | 20 3c 68 32 20 69 64 3d 22 70 74 72 54 6f 49 6e 74 22 3e 40 70 74 72 54 6f 49 6e 74 3c 2f 68 32 | .<h2.id="ptrToInt">@ptrToInt</h2 |
| 2d2c0 | 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | >........<pre><code.class="zig"> |
| 2d2e0 | 40 70 74 72 54 6f 49 6e 74 28 76 61 6c 75 65 3a 20 76 61 72 29 20 2d 26 67 74 3b 20 75 73 69 7a | @ptrToInt(value:.var).->.usiz |
| 2d300 | 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 | e</code></pre>.......<p>.......C |
| 2d320 | 6f 6e 76 65 72 74 73 20 3c 63 6f 64 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 20 74 6f 20 61 20 | onverts.<code>value</code>.to.a. |
| 2d340 | 3c 63 6f 64 65 3e 75 73 69 7a 65 3c 2f 63 6f 64 65 3e 20 77 68 69 63 68 20 69 73 20 74 68 65 20 | <code>usize</code>.which.is.the. |
| 2d360 | 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 70 6f 69 6e 74 65 72 2e 20 3c 63 6f 64 65 3e 76 61 | address.of.the.pointer..<code>va |
| 2d380 | 6c 75 65 3c 2f 63 6f 64 65 3e 20 63 61 6e 20 62 65 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 | lue</code>.can.be.one.of.these.t |
| 2d3a0 | 79 70 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 | ypes:.......</p>.......<ul>..... |
| 2d3c0 | 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 26 61 6d 70 3b 54 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e | ....<li><code>&T</code></li> |
| 2d3e0 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3f 26 61 6d 70 3b 54 3c 2f 63 6f 64 65 | .........<li><code>?&T</code |
| 2d400 | 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 66 6e 28 29 3c 2f 63 | ></li>.........<li><code>fn()</c |
| 2d420 | 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 3f 66 6e 28 | ode></li>.........<li><code>?fn( |
| 2d440 | 29 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 | )</code></li>.......</ul>....... |
| 2d460 | 3c 70 3e 54 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 6f 74 68 65 72 20 77 61 79 2c 20 75 73 65 | <p>To.convert.the.other.way,.use |
| 2d480 | 20 3c 61 20 68 72 65 66 3d 22 23 69 6e 74 54 6f 50 74 72 22 3e 40 69 6e 74 54 6f 50 74 72 3c 2f | .<a.href="#intToPtr">@intToPtr</ |
| 2d4a0 | 61 3e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 72 65 6d | a></p>...............<h2.id="rem |
| 2d4c0 | 22 3e 40 72 65 6d 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | ">@rem</h2>........<pre><code.cl |
| 2d4e0 | 61 73 73 3d 22 7a 69 67 22 3e 40 72 65 6d 28 6e 75 6d 65 72 61 74 6f 72 3a 20 54 2c 20 64 65 6e | ass="zig">@rem(numerator:.T,.den |
| 2d500 | 6f 6d 69 6e 61 74 6f 72 3a 20 54 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ominator:.T).->.T</code></pre |
| 2d520 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 65 6d 61 69 6e 64 65 72 20 64 69 76 69 | >.......<p>.......Remainder.divi |
| 2d540 | 73 69 6f 6e 2e 20 46 6f 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 73 20 74 68 69 73 | sion..For.unsigned.integers.this |
| 2d560 | 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 6e 75 6d 65 | .is.the.same.as.......<code>nume |
| 2d580 | 72 61 74 6f 72 20 25 20 64 65 6e 6f 6d 69 6e 61 74 6f 72 3c 2f 63 6f 64 65 3e 2e 20 43 61 6c 6c | rator.%.denominator</code>..Call |
| 2d5a0 | 65 72 20 67 75 61 72 61 6e 74 65 65 73 20 3c 63 6f 64 65 3e 64 65 6e 6f 6d 69 6e 61 74 6f 72 20 | er.guarantees.<code>denominator. |
| 2d5c0 | 26 67 74 3b 20 30 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | >.0</code>........</p>....... |
| 2d5e0 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 72 65 6d 28 2d 35 2c 20 | <ul>.........<li><code>@rem(-5,. |
| 2d600 | 33 29 20 3d 3d 20 2d 32 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | 3).==.-2</code></li>.........<li |
| 2d620 | 3e 3c 63 6f 64 65 3e 40 64 69 76 54 72 75 6e 63 28 61 2c 20 62 29 20 2b 20 40 72 65 6d 28 61 2c | ><code>@divTrunc(a,.b).+.@rem(a, |
| 2d640 | 20 62 29 20 3d 3d 20 61 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e | .b).==.a</code></li>.......</ul> |
| 2d660 | 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 | .......<p>For.a.function.that.re |
| 2d680 | 74 75 72 6e 73 20 61 6e 20 65 72 72 6f 72 20 63 6f 64 65 2c 20 73 65 65 20 3c 63 6f 64 65 3e 40 | turns.an.error.code,.see.<code>@ |
| 2d6a0 | 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 72 65 6d 3c 2f 63 6f 64 65 3e 2e 3c 2f | import("std").math.rem</code>.</ |
| 2d6c0 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c | p>.......<p>See.also:</p><ul>.<l |
| 2d6e0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 6d 6f 64 22 3e 40 6d 6f 64 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c | i><a.href="#mod">@mod</a></li>.< |
| 2d700 | 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 72 65 74 75 72 | /ul>...............<h2.id="retur |
| 2d720 | 6e 41 64 64 72 65 73 73 22 3e 40 72 65 74 75 72 6e 41 64 64 72 65 73 73 3c 2f 68 32 3e 0a 0a 20 | nAddress">@returnAddress</h2>... |
| 2d740 | 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 72 65 74 | .....<pre><code.class="zig">@ret |
| 2d760 | 75 72 6e 41 64 64 72 65 73 73 28 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 | urnAddress()</code></pre>....... |
| 2d780 | 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 | <p>.......This.function.returns. |
| 2d7a0 | 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 74 68 65 20 72 65 74 75 72 6e 20 61 64 64 72 65 73 73 20 | a.pointer.to.the.return.address. |
| 2d7c0 | 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 0a 20 20 20 20 20 20 66 72 61 6d 65 | of.the.current.stack.......frame |
| 2d7e0 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 | ........</p>.......<p>.......The |
| 2d800 | 20 69 6d 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 61 72 65 20 74 61 72 67 65 74 | .implications.of.this.are.target |
| 2d820 | 20 73 70 65 63 69 66 69 63 20 61 6e 64 20 6e 6f 74 20 63 6f 6e 73 69 73 74 65 6e 74 20 61 63 72 | .specific.and.not.consistent.acr |
| 2d840 | 6f 73 73 0a 20 20 20 20 20 20 61 6c 6c 20 70 6c 61 74 66 6f 72 6d 73 2e 0a 20 20 20 20 20 20 3c | oss.......all.platforms........< |
| 2d860 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f | /p>.......<p>.......This.functio |
| 2d880 | 6e 20 69 73 20 6f 6e 6c 79 20 76 61 6c 69 64 20 77 69 74 68 69 6e 20 66 75 6e 63 74 69 6f 6e 20 | n.is.only.valid.within.function. |
| 2d8a0 | 73 63 6f 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | scope........</p>..............< |
| 2d8c0 | 68 32 20 69 64 3d 22 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 22 3e 40 73 65 74 41 6c 69 67 6e 53 | h2.id="setAlignStack">@setAlignS |
| 2d8e0 | 74 61 63 6b 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | tack</h2>........<pre><code.clas |
| 2d900 | 73 3d 22 7a 69 67 22 3e 40 73 65 74 41 6c 69 67 6e 53 74 61 63 6b 28 63 6f 6d 70 74 69 6d 65 20 | s="zig">@setAlignStack(comptime. |
| 2d920 | 61 6c 69 67 6e 6d 65 6e 74 3a 20 75 32 39 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 | alignment:.u29)</code></pre>.... |
| 2d940 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 6e 73 75 72 65 73 20 74 68 61 74 20 61 20 66 75 6e 63 | ...<p>.......Ensures.that.a.func |
| 2d960 | 74 69 6f 6e 20 77 69 6c 6c 20 68 61 76 65 20 61 20 73 74 61 63 6b 20 61 6c 69 67 6e 6d 65 6e 74 | tion.will.have.a.stack.alignment |
| 2d980 | 20 6f 66 20 61 74 20 6c 65 61 73 74 20 3c 63 6f 64 65 3e 61 6c 69 67 6e 6d 65 6e 74 3c 2f 63 6f | .of.at.least.<code>alignment</co |
| 2d9a0 | 64 65 3e 20 62 79 74 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 | de>.bytes........</p>........... |
| 2d9c0 | 20 20 20 3c 68 32 20 69 64 3d 22 73 65 74 43 6f 6c 64 22 3e 40 73 65 74 43 6f 6c 64 3c 2f 68 32 | ...<h2.id="setCold">@setCold</h2 |
| 2d9e0 | 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | >........<pre><code.class="zig"> |
| 2da00 | 40 73 65 74 43 6f 6c 64 28 69 73 5f 63 6f 6c 64 3a 20 62 6f 6f 6c 29 3c 2f 63 6f 64 65 3e 3c 2f | @setCold(is_cold:.bool)</code></ |
| 2da20 | 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 65 6c 6c 73 20 74 68 65 20 6f | pre>.......<p>.......Tells.the.o |
| 2da40 | 70 74 69 6d 69 7a 65 72 20 74 68 61 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 72 61 72 65 | ptimizer.that.a.function.is.rare |
| 2da60 | 6c 79 20 63 61 6c 6c 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 | ly.called........</p>........... |
| 2da80 | 20 20 20 3c 68 32 20 69 64 3d 22 73 65 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 22 3e 40 73 65 | ...<h2.id="setRuntimeSafety">@se |
| 2daa0 | 74 52 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e | tRuntimeSafety</h2>........<pre> |
| 2dac0 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 65 74 52 75 6e 74 69 6d 65 53 61 66 | <code.class="zig">@setRuntimeSaf |
| 2dae0 | 65 74 79 28 73 61 66 65 74 79 5f 6f 6e 3a 20 62 6f 6f 6c 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ety(safety_on:.bool)</code></pre |
| 2db00 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 53 65 74 73 20 77 68 65 74 68 65 72 20 72 | >.......<p>.......Sets.whether.r |
| 2db20 | 75 6e 74 69 6d 65 20 73 61 66 65 74 79 20 63 68 65 63 6b 73 20 61 72 65 20 6f 6e 20 66 6f 72 20 | untime.safety.checks.are.on.for. |
| 2db40 | 74 68 65 20 73 63 6f 70 65 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 66 75 6e 63 | the.scope.that.contains.the.func |
| 2db60 | 74 69 6f 6e 20 63 61 6c 6c 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 | tion.call........</p>........... |
| 2db80 | 20 20 20 20 3c 68 32 20 69 64 3d 22 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 22 3e | ....<h2.id="setEvalBranchQuota"> |
| 2dba0 | 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f 74 61 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 | @setEvalBranchQuota</h2>........ |
| 2dbc0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 65 74 45 76 61 6c 42 | <pre><code.class="zig">@setEvalB |
| 2dbe0 | 72 61 6e 63 68 51 75 6f 74 61 28 6e 65 77 5f 71 75 6f 74 61 3a 20 75 73 69 7a 65 29 3c 2f 63 6f | ranchQuota(new_quota:.usize)</co |
| 2dc00 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 68 61 6e 67 65 | de></pre>.......<p>.......Change |
| 2dc20 | 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 62 61 63 6b 77 61 72 64 | s.the.maximum.number.of.backward |
| 2dc40 | 73 20 62 72 61 6e 63 68 65 73 20 74 68 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 64 | s.branches.that.compile-time.cod |
| 2dc60 | 65 0a 20 20 20 20 20 20 65 78 65 63 75 74 69 6f 6e 20 63 61 6e 20 75 73 65 20 62 65 66 6f 72 65 | e.......execution.can.use.before |
| 2dc80 | 20 67 69 76 69 6e 67 20 75 70 20 61 6e 64 20 6d 61 6b 69 6e 67 20 61 20 63 6f 6d 70 69 6c 65 20 | .giving.up.and.making.a.compile. |
| 2dca0 | 65 72 72 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | error........</p>.......<p>..... |
| 2dcc0 | 20 20 49 66 20 74 68 65 20 3c 63 6f 64 65 3e 6e 65 77 5f 71 75 6f 74 61 3c 2f 63 6f 64 65 3e 20 | ..If.the.<code>new_quota</code>. |
| 2dce0 | 69 73 20 73 6d 61 6c 6c 65 72 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 71 75 6f 74 | is.smaller.than.the.default.quot |
| 2dd00 | 61 20 28 3c 63 6f 64 65 3e 31 30 30 30 3c 2f 63 6f 64 65 3e 29 20 6f 72 0a 20 20 20 20 20 20 61 | a.(<code>1000</code>).or.......a |
| 2dd20 | 20 70 72 65 76 69 6f 75 73 6c 79 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65 74 20 71 75 6f 74 61 | .previously.explicitly.set.quota |
| 2dd40 | 2c 20 69 74 20 69 73 20 69 67 6e 6f 72 65 64 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | ,.it.is.ignored........</p>..... |
| 2dd60 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | ..<p>.......Example:.......</p>. |
| 2dd80 | 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f | ......<p.class="file">test.zig</ |
| 2dda0 | 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 74 65 73 74 20 26 71 | p><pre><code.class="zig">test.&q |
| 2ddc0 | 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 | uot;foo".{.....comptime.{.. |
| 2dde0 | 20 20 20 20 20 20 20 76 61 72 20 69 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 | .......var.i.=.0;.........while. |
| 2de00 | 28 69 20 26 6c 74 3b 20 31 30 30 31 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a 20 20 20 20 | (i.<.1001).:.(i.+=.1).{}..... |
| 2de20 | 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | }.}</code></pre><pre><code.class |
| 2de40 | 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 | ="shell">$.zig.test.test.zig.<sp |
| 2de60 | 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a | an.class="t0_1">/home/andy/dev/z |
| 2de80 | 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 39 3a 20 3c 2f 73 70 | ig/docgen_tmp/test.zig:4:9:.</sp |
| 2dea0 | 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 | an><span.class="t31_1">error:</s |
| 2dec0 | 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 65 76 61 6c 75 61 74 69 | pan><span.class="t0_1">.evaluati |
| 2dee0 | 6f 6e 20 65 78 63 65 65 64 65 64 20 31 30 30 30 20 62 61 63 6b 77 61 72 64 73 20 62 72 61 6e 63 | on.exceeded.1000.backwards.branc |
| 2df00 | 68 65 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b | hes</span>.........while.(i.< |
| 2df20 | 20 31 30 30 31 29 20 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a 20 20 20 20 20 20 20 20 3c 73 70 | .1001).:.(i.+=.1).{}.........<sp |
| 2df40 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 | an.class="t32_1">^</span>.</code |
| 2df60 | 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 4e 6f 77 20 77 65 20 75 73 65 20 3c 63 6f | ></pre>........<p>Now.we.use.<co |
| 2df80 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 65 74 45 76 61 6c 42 72 61 6e 63 68 51 75 6f | de.class="zig">@setEvalBranchQuo |
| 2dfa0 | 74 61 3c 2f 63 6f 64 65 3e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 | ta</code>:</p>.......<p.class="f |
| 2dfc0 | 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 | ile">test.zig</p><pre><code.clas |
| 2dfe0 | 73 3d 22 7a 69 67 22 3e 74 65 73 74 20 26 71 75 6f 74 3b 66 6f 6f 26 71 75 6f 74 3b 20 7b 0a 20 | s="zig">test."foo".{.. |
| 2e000 | 20 20 20 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 40 73 65 74 45 76 61 6c 42 72 | ...comptime.{.........@setEvalBr |
| 2e020 | 61 6e 63 68 51 75 6f 74 61 28 31 30 30 31 29 3b 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 20 3d | anchQuota(1001);.........var.i.= |
| 2e040 | 20 30 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 69 20 26 6c 74 3b 20 31 30 30 31 29 20 | .0;.........while.(i.<.1001). |
| 2e060 | 3a 20 28 69 20 2b 3d 20 31 29 20 7b 7d 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | :.(i.+=.1).{}.....}.}</code></pr |
| 2e080 | 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 | e><pre><code.class="shell">$.zig |
| 2e0a0 | 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 54 65 73 74 20 31 2f 31 20 66 6f 6f 2e 2e 2e 4f 4b | .test.test.zig.Test.1/1.foo...OK |
| 2e0c0 | 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c | .</code></pre>.........<p>See.al |
| 2e0e0 | 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 6f 6d 70 74 69 | so:</p><ul>.<li><a.href="#compti |
| 2e100 | 6d 65 22 3e 63 6f 6d 70 74 69 6d 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 | me">comptime</a></li>.</ul>..... |
| 2e120 | 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 65 74 46 6c 6f 61 74 4d 6f 64 65 22 3e | ..........<h2.id="setFloatMode"> |
| 2e140 | 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | @setFloatMode</h2>........<pre>< |
| 2e160 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 65 74 46 6c 6f 61 74 4d 6f 64 65 28 73 | code.class="zig">@setFloatMode(s |
| 2e180 | 63 6f 70 65 2c 20 6d 6f 64 65 3a 20 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 46 | cope,.mode:.@import("builtin").F |
| 2e1a0 | 6c 6f 61 74 4d 6f 64 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | loatMode)</code></pre>.......<p> |
| 2e1c0 | 0a 20 20 20 20 20 20 53 65 74 73 20 74 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6d | .......Sets.the.floating.point.m |
| 2e1e0 | 6f 64 65 20 66 6f 72 20 61 20 67 69 76 65 6e 20 73 63 6f 70 65 2e 20 50 6f 73 73 69 62 6c 65 20 | ode.for.a.given.scope..Possible. |
| 2e200 | 76 61 6c 75 65 73 20 61 72 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 | values.are:.......</p>.......<pr |
| 2e220 | 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 75 62 20 63 6f 6e 73 74 20 46 6c | e><code.class="zig">pub.const.Fl |
| 2e240 | 6f 61 74 4d 6f 64 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 4f 70 74 69 6d 69 7a 65 64 2c 0a | oatMode.=.enum.{.....Optimized,. |
| 2e260 | 20 20 20 20 53 74 72 69 63 74 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | ....Strict,.};</code></pre>..... |
| 2e280 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 63 | ..<ul>.........<li>...........<c |
| 2e2a0 | 6f 64 65 3e 4f 70 74 69 6d 69 7a 65 64 3c 2f 63 6f 64 65 3e 20 28 64 65 66 61 75 6c 74 29 20 2d | ode>Optimized</code>.(default).- |
| 2e2c0 | 20 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 6d 61 79 20 64 | .Floating.point.operations.may.d |
| 2e2e0 | 6f 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 20 20 20 20 20 20 20 20 | o.all.of.the.following:......... |
| 2e300 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 73 73 75 6d 65 20 74 68 | ..<ul>.............<li>Assume.th |
| 2e320 | 65 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 72 65 73 75 6c 74 20 61 72 65 20 6e 6f 74 20 4e | e.arguments.and.result.are.not.N |
| 2e340 | 61 4e 2e 20 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 | aN..Optimizations.are.required.t |
| 2e360 | 6f 20 72 65 74 61 69 6e 20 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 6f 76 65 72 20 4e | o.retain.defined.behavior.over.N |
| 2e380 | 61 4e 73 2c 20 62 75 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 | aNs,.but.the.value.of.the.result |
| 2e3a0 | 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .is.undefined.</li>............. |
| 2e3c0 | 3c 6c 69 3e 41 73 73 75 6d 65 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 72 65 73 | <li>Assume.the.arguments.and.res |
| 2e3e0 | 75 6c 74 20 61 72 65 20 6e 6f 74 20 2b 2f 2d 49 6e 66 2e 20 4f 70 74 69 6d 69 7a 61 74 69 6f 6e | ult.are.not.+/-Inf..Optimization |
| 2e400 | 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 72 65 74 61 69 6e 20 64 65 66 69 6e 65 64 | s.are.required.to.retain.defined |
| 2e420 | 20 62 65 68 61 76 69 6f 72 20 6f 76 65 72 20 2b 2f 2d 49 6e 66 2c 20 62 75 74 20 74 68 65 20 76 | .behavior.over.+/-Inf,.but.the.v |
| 2e440 | 61 6c 75 65 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 75 6e 64 65 66 69 6e 65 64 2e | alue.of.the.result.is.undefined. |
| 2e460 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 54 72 65 61 74 20 74 68 65 20 | </li>.............<li>Treat.the. |
| 2e480 | 73 69 67 6e 20 6f 66 20 61 20 7a 65 72 6f 20 61 72 67 75 6d 65 6e 74 20 6f 72 20 72 65 73 75 6c | sign.of.a.zero.argument.or.resul |
| 2e4a0 | 74 20 61 73 20 69 6e 73 69 67 6e 69 66 69 63 61 6e 74 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | t.as.insignificant.</li>........ |
| 2e4c0 | 20 20 20 20 20 3c 6c 69 3e 55 73 65 20 74 68 65 20 72 65 63 69 70 72 6f 63 61 6c 20 6f 66 20 61 | .....<li>Use.the.reciprocal.of.a |
| 2e4e0 | 6e 20 61 72 67 75 6d 65 6e 74 20 72 61 74 68 65 72 20 74 68 61 6e 20 70 65 72 66 6f 72 6d 20 64 | n.argument.rather.than.perform.d |
| 2e500 | 69 76 69 73 69 6f 6e 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c 69 3e 50 65 | ivision.</li>.............<li>Pe |
| 2e520 | 72 66 6f 72 6d 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 63 6f 6e 74 72 61 63 74 69 6f 6e | rform.floating-point.contraction |
| 2e540 | 20 28 65 2e 67 2e 20 66 75 73 69 6e 67 20 61 20 6d 75 6c 74 69 70 6c 79 20 66 6f 6c 6c 6f 77 65 | .(e.g..fusing.a.multiply.followe |
| 2e560 | 64 20 62 79 20 61 6e 20 61 64 64 69 74 69 6f 6e 20 69 6e 74 6f 20 61 20 66 75 73 65 64 20 6d 75 | d.by.an.addition.into.a.fused.mu |
| 2e580 | 6c 74 69 70 6c 79 2d 61 6e 64 2d 61 64 64 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 | ltiply-and-add).</li>........... |
| 2e5a0 | 20 20 3c 6c 69 3e 50 65 72 66 6f 72 6d 20 61 6c 67 65 62 72 61 69 63 61 6c 6c 79 20 65 71 75 69 | ..<li>Perform.algebraically.equi |
| 2e5c0 | 76 61 6c 65 6e 74 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20 | valent.transformations.that.may. |
| 2e5e0 | 63 68 61 6e 67 65 20 72 65 73 75 6c 74 73 20 69 6e 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 | change.results.in.floating.point |
| 2e600 | 20 28 65 2e 67 2e 20 72 65 61 73 73 6f 63 69 61 74 65 29 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | .(e.g..reassociate).</li>....... |
| 2e620 | 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20 65 71 75 69 | ....</ul>...........This.is.equi |
| 2e640 | 76 61 6c 65 6e 74 20 74 6f 20 3c 63 6f 64 65 3e 2d 66 66 61 73 74 2d 6d 61 74 68 3c 2f 63 6f 64 | valent.to.<code>-ffast-math</cod |
| 2e660 | 65 3e 20 69 6e 20 47 43 43 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | e>.in.GCC..........</li>........ |
| 2e680 | 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 63 6f 64 65 3e 53 74 72 69 63 74 3c 2f 63 6f | .<li>...........<code>Strict</co |
| 2e6a0 | 64 65 3e 20 2d 20 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6f 70 65 72 61 74 69 6f 6e 73 20 | de>.-.Floating.point.operations. |
| 2e6c0 | 66 6f 6c 6c 6f 77 20 73 74 72 69 63 74 20 49 45 45 45 20 63 6f 6d 70 6c 69 61 6e 63 65 2e 0a 20 | follow.strict.IEEE.compliance... |
| 2e6e0 | 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c | .......</li>.......</ul>.......< |
| 2e700 | 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d | p>See.also:</p><ul>.<li><a.href= |
| 2e720 | 22 23 46 6c 6f 61 74 69 6e 67 2d 50 6f 69 6e 74 2d 4f 70 65 72 61 74 69 6f 6e 73 22 3e 46 6c 6f | "#Floating-Point-Operations">Flo |
| 2e740 | 61 74 69 6e 67 20 50 6f 69 6e 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ating.Point.Operations</a></li>. |
| 2e760 | 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 65 74 47 | </ul>...............<h2.id="setG |
| 2e780 | 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 22 3e 40 73 65 74 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 3c | lobalLinkage">@setGlobalLinkage< |
| 2e7a0 | 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | /h2>........<pre><code.class="zi |
| 2e7c0 | 67 22 3e 40 73 65 74 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 28 67 6c 6f 62 61 6c 5f 76 61 72 69 | g">@setGlobalLinkage(global_vari |
| 2e7e0 | 61 62 6c 65 5f 6e 61 6d 65 2c 20 63 6f 6d 70 74 69 6d 65 20 6c 69 6e 6b 61 67 65 3a 20 47 6c 6f | able_name,.comptime.linkage:.Glo |
| 2e800 | 62 61 6c 4c 69 6e 6b 61 67 65 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c | balLinkage)</code></pre>.......< |
| 2e820 | 70 3e 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 3c 2f 63 6f | p>.......<code>GlobalLinkage</co |
| 2e840 | 64 65 3e 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 69 6d 70 | de>.can.be.found.with.<code>@imp |
| 2e860 | 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 47 6c 6f 62 61 6c 4c 69 6e 6b 61 67 65 3c 2f 63 6f | ort("builtin").GlobalLinkage</co |
| 2e880 | 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 | de>........</p>.......<p>See.als |
| 2e8a0 | 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 | o:</p><ul>.<li><a.href="#Compile |
| 2e8c0 | 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 | -Variables">Compile.Variables</a |
| 2e8e0 | 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 | ></li>.</ul>...............<h2.i |
| 2e900 | 64 3d 22 73 65 74 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 22 3e 40 73 65 74 47 6c 6f 62 61 6c 53 | d="setGlobalSection">@setGlobalS |
| 2e920 | 65 63 74 69 6f 6e 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | ection</h2>........<pre><code.cl |
| 2e940 | 61 73 73 3d 22 7a 69 67 22 3e 40 73 65 74 47 6c 6f 62 61 6c 53 65 63 74 69 6f 6e 28 67 6c 6f 62 | ass="zig">@setGlobalSection(glob |
| 2e960 | 61 6c 5f 76 61 72 69 61 62 6c 65 5f 6e 61 6d 65 2c 20 63 6f 6d 70 74 69 6d 65 20 73 65 63 74 69 | al_variable_name,.comptime.secti |
| 2e980 | 6f 6e 5f 6e 61 6d 65 3a 20 5b 5d 63 6f 6e 73 74 20 75 38 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c | on_name:.[]const.u8).->.bool< |
| 2e9a0 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 75 74 | /code></pre>.......<p>.......Put |
| 2e9c0 | 73 20 74 68 65 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 73 70 65 | s.the.global.variable.in.the.spe |
| 2e9e0 | 63 69 66 69 65 64 20 73 65 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 | cified.section........</p>...... |
| 2ea00 | 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 | ........<h2.id="shlExact">@shlEx |
| 2ea20 | 61 63 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | act</h2>........<pre><code.class |
| 2ea40 | 3d 22 7a 69 67 22 3e 40 73 68 6c 45 78 61 63 74 28 76 61 6c 75 65 3a 20 54 2c 20 73 68 69 66 74 | ="zig">@shlExact(value:.T,.shift |
| 2ea60 | 5f 61 6d 74 3a 20 4c 6f 67 32 54 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | _amt:.Log2T).->.T</code></pre |
| 2ea80 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 6c | >.......<p>.......Performs.the.l |
| 2eaa0 | 65 66 74 20 73 68 69 66 74 20 6f 70 65 72 61 74 69 6f 6e 20 28 3c 63 6f 64 65 3e 26 6c 74 3b 26 | eft.shift.operation.(<code><& |
| 2eac0 | 6c 74 3b 3c 2f 63 6f 64 65 3e 29 2e 20 43 61 6c 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 0a 20 | lt;</code>)..Caller.guarantees.. |
| 2eae0 | 20 20 20 20 20 74 68 61 74 20 74 68 65 20 73 68 69 66 74 20 77 69 6c 6c 20 6e 6f 74 20 73 68 69 | .....that.the.shift.will.not.shi |
| 2eb00 | 66 74 20 61 6e 79 20 31 20 62 69 74 73 20 6f 75 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | ft.any.1.bits.out........</p>... |
| 2eb20 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e | ....<p>.......The.type.of.<code> |
| 2eb40 | 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 | shift_amt</code>.is.an.unsigned. |
| 2eb60 | 69 6e 74 65 67 65 72 20 77 69 74 68 20 3c 63 6f 64 65 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f | integer.with.<code>log2(T.bit_co |
| 2eb80 | 75 6e 74 29 3c 2f 63 6f 64 65 3e 20 62 69 74 73 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 | unt)</code>.bits........This.is. |
| 2eba0 | 62 65 63 61 75 73 65 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 54 2e | because.<code>shift_amt.>=.T. |
| 2ebc0 | 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 | bit_count</code>.is.undefined.be |
| 2ebe0 | 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 | havior........</p>.......<p>See. |
| 2ec00 | 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 72 45 | also:</p><ul>.<li><a.href="#shrE |
| 2ec20 | 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 | xact">@shrExact</a></li>.<li><a. |
| 2ec40 | 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 | href="#shlWithOverflow">@shlWith |
| 2ec60 | 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a | Overflow</a></li>.</ul>......... |
| 2ec80 | 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 | ......<h2.id="shlWithOverflow">@ |
| 2eca0 | 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 | shlWithOverflow</h2>........<pre |
| 2ecc0 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 | ><code.class="zig">@shlWithOverf |
| 2ece0 | 6c 6f 77 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 73 68 69 66 | low(comptime.T:.type,.a:.T,.shif |
| 2ed00 | 74 5f 61 6d 74 3a 20 4c 6f 67 32 54 2c 20 72 65 73 75 6c 74 3a 20 26 61 6d 70 3b 54 29 20 2d 26 | t_amt:.Log2T,.result:.&T).-& |
| 2ed20 | 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | gt;.bool</code></pre>.......<p>. |
| 2ed40 | 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 65 3e 2a 72 65 73 75 6c 74 20 3d 20 61 | ......Performs.<code>*result.=.a |
| 2ed60 | 20 26 6c 74 3b 26 6c 74 3b 20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 72 66 6c 6f 77 20 | .<<.b</code>..If.overflow. |
| 2ed80 | 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 20 73 74 6f 72 65 | or.underflow.occurs,.......store |
| 2eda0 | 73 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c 63 6f 64 65 3e 72 | s.the.overflowed.bits.in.<code>r |
| 2edc0 | 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c 63 6f 64 65 3e 74 | esult</code>.and.returns.<code>t |
| 2ede0 | 72 75 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 65 72 66 6c 6f 77 | rue</code>........If.no.overflow |
| 2ee00 | 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 72 6e 73 20 3c 63 | .or.underflow.occurs,.returns.<c |
| 2ee20 | 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | ode>false</code>........</p>.... |
| 2ee40 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 73 | ...<p>.......The.type.of.<code>s |
| 2ee60 | 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 | hift_amt</code>.is.an.unsigned.i |
| 2ee80 | 6e 74 65 67 65 72 20 77 69 74 68 20 3c 63 6f 64 65 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 | nteger.with.<code>log2(T.bit_cou |
| 2eea0 | 6e 74 29 3c 2f 63 6f 64 65 3e 20 62 69 74 73 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 | nt)</code>.bits........This.is.b |
| 2eec0 | 65 63 61 75 73 65 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 54 2e 62 | ecause.<code>shift_amt.>=.T.b |
| 2eee0 | 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 | it_count</code>.is.undefined.beh |
| 2ef00 | 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 | avior........</p>.......<p>See.a |
| 2ef20 | 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 45 78 | lso:</p><ul>.<li><a.href="#shlEx |
| 2ef40 | 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 | act">@shlExact</a></li>.<li><a.h |
| 2ef60 | 72 65 66 3d 22 23 73 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 61 3e 3c 2f 6c | ref="#shrExact">@shrExact</a></l |
| 2ef80 | 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 | i>.</ul>...............<h2.id="s |
| 2efa0 | 68 72 45 78 61 63 74 22 3e 40 73 68 72 45 78 61 63 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | hrExact">@shrExact</h2>........< |
| 2efc0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 68 72 45 78 61 63 74 28 | pre><code.class="zig">@shrExact( |
| 2efe0 | 76 61 6c 75 65 3a 20 54 2c 20 73 68 69 66 74 5f 61 6d 74 3a 20 4c 6f 67 32 54 29 20 2d 26 67 74 | value:.T,.shift_amt:.Log2T).-> |
| 2f000 | 3b 20 54 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | ;.T</code></pre>.......<p>...... |
| 2f020 | 20 50 65 72 66 6f 72 6d 73 20 74 68 65 20 72 69 67 68 74 20 73 68 69 66 74 20 6f 70 65 72 61 74 | .Performs.the.right.shift.operat |
| 2f040 | 69 6f 6e 20 28 3c 63 6f 64 65 3e 26 67 74 3b 26 67 74 3b 3c 2f 63 6f 64 65 3e 29 2e 20 43 61 6c | ion.(<code>>></code>)..Cal |
| 2f060 | 6c 65 72 20 67 75 61 72 61 6e 74 65 65 73 0a 20 20 20 20 20 20 74 68 61 74 20 74 68 65 20 73 68 | ler.guarantees.......that.the.sh |
| 2f080 | 69 66 74 20 77 69 6c 6c 20 6e 6f 74 20 73 68 69 66 74 20 61 6e 79 20 31 20 62 69 74 73 20 6f 75 | ift.will.not.shift.any.1.bits.ou |
| 2f0a0 | 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 | t........</p>.......<p>.......Th |
| 2f0c0 | 65 20 74 79 70 65 20 6f 66 20 3c 63 6f 64 65 3e 73 68 69 66 74 5f 61 6d 74 3c 2f 63 6f 64 65 3e | e.type.of.<code>shift_amt</code> |
| 2f0e0 | 20 69 73 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 77 69 74 68 20 3c 63 6f | .is.an.unsigned.integer.with.<co |
| 2f100 | 64 65 3e 6c 6f 67 32 28 54 2e 62 69 74 5f 63 6f 75 6e 74 29 3c 2f 63 6f 64 65 3e 20 62 69 74 73 | de>log2(T.bit_count)</code>.bits |
| 2f120 | 2e 0a 20 20 20 20 20 20 54 68 69 73 20 69 73 20 62 65 63 61 75 73 65 20 3c 63 6f 64 65 3e 73 68 | ........This.is.because.<code>sh |
| 2f140 | 69 66 74 5f 61 6d 74 20 26 67 74 3b 3d 20 54 2e 62 69 74 5f 63 6f 75 6e 74 3c 2f 63 6f 64 65 3e | ift_amt.>=.T.bit_count</code> |
| 2f160 | 20 69 73 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 0a 20 20 20 20 20 20 3c 2f | .is.undefined.behavior........</ |
| 2f180 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c | p>.......<p>See.also:</p><ul>.<l |
| 2f1a0 | 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 45 78 61 63 74 22 3e 40 73 68 6c 45 78 61 63 74 3c | i><a.href="#shlExact">@shlExact< |
| 2f1c0 | 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 73 68 6c 57 69 74 68 4f 76 | /a></li>.<li><a.href="#shlWithOv |
| 2f1e0 | 65 72 66 6c 6f 77 22 3e 40 73 68 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 61 3e 3c 2f 6c 69 | erflow">@shlWithOverflow</a></li |
| 2f200 | 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 73 69 | >.</ul>...............<h2.id="si |
| 2f220 | 7a 65 4f 66 22 3e 40 73 69 7a 65 4f 66 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c | zeOf">@sizeOf</h2>........<pre>< |
| 2f240 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 69 7a 65 4f 66 28 63 6f 6d 70 74 69 6d | code.class="zig">@sizeOf(comptim |
| 2f260 | 65 20 54 3a 20 74 79 70 65 29 20 2d 26 67 74 3b 20 28 6e 75 6d 62 65 72 20 6c 69 74 65 72 61 6c | e.T:.type).->.(number.literal |
| 2f280 | 29 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 | )</code></pre>.......<p>.......T |
| 2f2a0 | 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 | his.function.returns.the.number. |
| 2f2c0 | 6f 66 20 62 79 74 65 73 20 69 74 20 74 61 6b 65 73 20 74 6f 20 73 74 6f 72 65 20 3c 63 6f 64 65 | of.bytes.it.takes.to.store.<code |
| 2f2e0 | 3e 54 3c 2f 63 6f 64 65 3e 20 69 6e 20 6d 65 6d 6f 72 79 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | >T</code>.in.memory........</p>. |
| 2f300 | 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 | ......<p>.......The.result.is.a. |
| 2f320 | 74 61 72 67 65 74 2d 73 70 65 63 69 66 69 63 20 63 6f 6d 70 69 6c 65 20 74 69 6d 65 20 63 6f 6e | target-specific.compile.time.con |
| 2f340 | 73 74 61 6e 74 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | stant........</p>..............< |
| 2f360 | 68 32 20 69 64 3d 22 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 22 3e 40 73 75 62 57 69 74 68 | h2.id="subWithOverflow">@subWith |
| 2f380 | 4f 76 65 72 66 6c 6f 77 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | Overflow</h2>........<pre><code. |
| 2f3a0 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 73 75 62 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 63 6f 6d | class="zig">@subWithOverflow(com |
| 2f3c0 | 70 74 69 6d 65 20 54 3a 20 74 79 70 65 2c 20 61 3a 20 54 2c 20 62 3a 20 54 2c 20 72 65 73 75 6c | ptime.T:.type,.a:.T,.b:.T,.resul |
| 2f3e0 | 74 3a 20 26 61 6d 70 3b 54 29 20 2d 26 67 74 3b 20 62 6f 6f 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 | t:.&T).->.bool</code></pr |
| 2f400 | 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 50 65 72 66 6f 72 6d 73 20 3c 63 6f 64 | e>.......<p>.......Performs.<cod |
| 2f420 | 65 3e 2a 72 65 73 75 6c 74 20 3d 20 61 20 2d 20 62 3c 2f 63 6f 64 65 3e 2e 20 49 66 20 6f 76 65 | e>*result.=.a.-.b</code>..If.ove |
| 2f440 | 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 0a 20 20 20 20 20 | rflow.or.underflow.occurs,...... |
| 2f460 | 20 73 74 6f 72 65 73 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 20 69 6e 20 3c | .stores.the.overflowed.bits.in.< |
| 2f480 | 63 6f 64 65 3e 72 65 73 75 6c 74 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 72 65 74 75 72 6e 73 20 3c | code>result</code>.and.returns.< |
| 2f4a0 | 63 6f 64 65 3e 74 72 75 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 49 66 20 6e 6f 20 6f 76 | code>true</code>........If.no.ov |
| 2f4c0 | 65 72 66 6c 6f 77 20 6f 72 20 75 6e 64 65 72 66 6c 6f 77 20 6f 63 63 75 72 73 2c 20 72 65 74 75 | erflow.or.underflow.occurs,.retu |
| 2f4e0 | 72 6e 73 20 3c 63 6f 64 65 3e 66 61 6c 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f | rns.<code>false</code>........</ |
| 2f500 | 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 72 75 6e 63 61 74 65 | p>..............<h2.id="truncate |
| 2f520 | 22 3e 40 74 72 75 6e 63 61 74 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | ">@truncate</h2>........<pre><co |
| 2f540 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 74 72 75 6e 63 61 74 65 28 63 6f 6d 70 74 69 6d | de.class="zig">@truncate(comptim |
| 2f560 | 65 20 54 3a 20 74 79 70 65 2c 20 69 6e 74 65 67 65 72 29 20 2d 26 67 74 3b 20 54 3c 2f 63 6f 64 | e.T:.type,.integer).->.T</cod |
| 2f580 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 | e></pre>.......<p>.......This.fu |
| 2f5a0 | 6e 63 74 69 6f 6e 20 74 72 75 6e 63 61 74 65 73 20 62 69 74 73 20 66 72 6f 6d 20 61 6e 20 69 6e | nction.truncates.bits.from.an.in |
| 2f5c0 | 74 65 67 65 72 20 74 79 70 65 2c 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 61 20 73 6d 61 6c 6c | teger.type,.resulting.in.a.small |
| 2f5e0 | 65 72 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 3c 2f 70 | er.......integer.type........</p |
| 2f600 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 | >.......<p>.......The.following. |
| 2f620 | 70 72 6f 64 75 63 65 73 20 61 20 63 72 61 73 68 20 69 6e 20 64 65 62 75 67 20 6d 6f 64 65 20 61 | produces.a.crash.in.debug.mode.a |
| 2f640 | 6e 64 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 69 6e 0a 20 20 20 20 20 20 72 | nd.undefined.behavior.in.......r |
| 2f660 | 65 6c 65 61 73 65 20 6d 6f 64 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | elease.mode:.......</p>.......<p |
| 2f680 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 3a 20 75 31 | re><code.class="zig">const.a:.u1 |
| 2f6a0 | 36 20 3d 20 30 78 61 62 63 64 3b 0a 63 6f 6e 73 74 20 62 3a 20 75 38 20 3d 20 75 38 28 61 29 3b | 6.=.0xabcd;.const.b:.u8.=.u8(a); |
| 2f6c0 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 48 6f | </code></pre>.......<p>.......Ho |
| 2f6e0 | 77 65 76 65 72 20 74 68 69 73 20 69 73 20 77 65 6c 6c 20 64 65 66 69 6e 65 64 20 61 6e 64 20 77 | wever.this.is.well.defined.and.w |
| 2f700 | 6f 72 6b 69 6e 67 20 63 6f 64 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 | orking.code:.......</p>.......<p |
| 2f720 | 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 3a 20 75 31 | re><code.class="zig">const.a:.u1 |
| 2f740 | 36 20 3d 20 30 78 61 62 63 64 3b 0a 63 6f 6e 73 74 20 62 3a 20 75 38 20 3d 20 40 74 72 75 6e 63 | 6.=.0xabcd;.const.b:.u8.=.@trunc |
| 2f760 | 61 74 65 28 75 38 2c 20 61 29 3b 0a 2f 2f 20 62 20 69 73 20 6e 6f 77 20 30 78 63 64 3c 2f 63 6f | ate(u8,.a);.//.b.is.now.0xcd</co |
| 2f780 | 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 | de></pre>.......<p>.......This.f |
| 2f7a0 | 75 6e 63 74 69 6f 6e 20 61 6c 77 61 79 73 20 74 72 75 6e 63 61 74 65 73 20 74 68 65 20 73 69 67 | unction.always.truncates.the.sig |
| 2f7c0 | 6e 69 66 69 63 61 6e 74 20 62 69 74 73 20 6f 66 20 74 68 65 20 69 6e 74 65 67 65 72 2c 20 72 65 | nificant.bits.of.the.integer,.re |
| 2f7e0 | 67 61 72 64 6c 65 73 73 0a 20 20 20 20 20 20 6f 66 20 65 6e 64 69 61 6e 6e 65 73 73 20 6f 6e 20 | gardless.......of.endianness.on. |
| 2f800 | 74 68 65 20 74 61 72 67 65 74 20 70 6c 61 74 66 6f 72 6d 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | the.target.platform........</p>. |
| 2f820 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 79 70 65 49 64 22 3e 40 74 | ..............<h2.id="typeId">@t |
| 2f840 | 79 70 65 49 64 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | ypeId</h2>........<pre><code.cla |
| 2f860 | 73 73 3d 22 7a 69 67 22 3e 40 74 79 70 65 49 64 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 74 79 70 | ss="zig">@typeId(comptime.T:.typ |
| 2f880 | 65 29 20 2d 26 67 74 3b 20 40 69 6d 70 6f 72 74 28 22 62 75 69 6c 74 69 6e 22 29 2e 54 79 70 65 | e).->.@import("builtin").Type |
| 2f8a0 | 49 64 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 | Id</code></pre>.......<p>....... |
| 2f8c0 | 52 65 74 75 72 6e 73 20 77 68 69 63 68 20 6b 69 6e 64 20 6f 66 20 74 79 70 65 20 73 6f 6d 65 74 | Returns.which.kind.of.type.somet |
| 2f8e0 | 68 69 6e 67 20 69 73 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 3a 0a 20 20 20 20 20 20 | hing.is..Possible.values:....... |
| 2f900 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 | </p>.......<pre><code.class="zig |
| 2f920 | 22 3e 70 75 62 20 63 6f 6e 73 74 20 54 79 70 65 49 64 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 | ">pub.const.TypeId.=.enum.{..... |
| 2f940 | 54 79 70 65 2c 0a 20 20 20 20 56 6f 69 64 2c 0a 20 20 20 20 42 6f 6f 6c 2c 0a 20 20 20 20 4e 6f | Type,.....Void,.....Bool,.....No |
| 2f960 | 52 65 74 75 72 6e 2c 0a 20 20 20 20 49 6e 74 2c 0a 20 20 20 20 46 6c 6f 61 74 2c 0a 20 20 20 20 | Return,.....Int,.....Float,..... |
| 2f980 | 50 6f 69 6e 74 65 72 2c 0a 20 20 20 20 41 72 72 61 79 2c 0a 20 20 20 20 53 74 72 75 63 74 2c 0a | Pointer,.....Array,.....Struct,. |
| 2f9a0 | 20 20 20 20 46 6c 6f 61 74 4c 69 74 65 72 61 6c 2c 0a 20 20 20 20 49 6e 74 4c 69 74 65 72 61 6c | ....FloatLiteral,.....IntLiteral |
| 2f9c0 | 2c 0a 20 20 20 20 55 6e 64 65 66 69 6e 65 64 4c 69 74 65 72 61 6c 2c 0a 20 20 20 20 4e 75 6c 6c | ,.....UndefinedLiteral,.....Null |
| 2f9e0 | 4c 69 74 65 72 61 6c 2c 0a 20 20 20 20 4e 75 6c 6c 61 62 6c 65 2c 0a 20 20 20 20 45 72 72 6f 72 | Literal,.....Nullable,.....Error |
| 2fa00 | 55 6e 69 6f 6e 2c 0a 20 20 20 20 45 72 72 6f 72 2c 0a 20 20 20 20 45 6e 75 6d 2c 0a 20 20 20 20 | Union,.....Error,.....Enum,..... |
| 2fa20 | 55 6e 69 6f 6e 2c 0a 20 20 20 20 46 6e 2c 0a 20 20 20 20 4e 61 6d 65 73 70 61 63 65 2c 0a 20 20 | Union,.....Fn,.....Namespace,... |
| 2fa40 | 20 20 42 6c 6f 63 6b 2c 0a 20 20 20 20 42 6f 75 6e 64 46 6e 2c 0a 20 20 20 20 41 72 67 54 75 70 | ..Block,.....BoundFn,.....ArgTup |
| 2fa60 | 6c 65 2c 0a 20 20 20 20 4f 70 61 71 75 65 2c 0a 7d 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a | le,.....Opaque,.};</code></pre>. |
| 2fa80 | 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 74 79 70 65 4e 61 6d 65 22 3e 40 | .............<h2.id="typeName">@ |
| 2faa0 | 74 79 70 65 4e 61 6d 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | typeName</h2>........<pre><code. |
| 2fac0 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 74 79 70 65 4e 61 6d 65 28 54 3a 20 74 79 70 65 29 20 2d | class="zig">@typeName(T:.type).- |
| 2fae0 | 26 67 74 3b 20 5b 5d 75 38 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e | >.[]u8</code></pre>.......<p> |
| 2fb00 | 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 74 68 65 | .......This.function.returns.the |
| 2fb20 | 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 20 74 79 70 65 | .string.representation.of.a.type |
| 2fb40 | 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 | ........</p>...............<h2.i |
| 2fb60 | 64 3d 22 74 79 70 65 4f 66 22 3e 40 74 79 70 65 4f 66 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | d="typeOf">@typeOf</h2>........< |
| 2fb80 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 40 74 79 70 65 4f 66 28 65 78 | pre><code.class="zig">@typeOf(ex |
| 2fba0 | 70 72 65 73 73 69 6f 6e 29 20 2d 26 67 74 3b 20 74 79 70 65 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | pression).->.type</code></pre |
| 2fbc0 | 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 | >.......<p>.......This.function. |
| 2fbe0 | 72 65 74 75 72 6e 73 20 61 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 2c | returns.a.compile-time.constant, |
| 2fc00 | 20 77 68 69 63 68 20 69 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 | .which.is.the.type.of.the....... |
| 2fc20 | 65 78 70 72 65 73 73 69 6f 6e 20 70 61 73 73 65 64 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 | expression.passed.as.an.argument |
| 2fc40 | 2e 20 54 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 2e 0a 20 | ..The.expression.is.evaluated... |
| 2fc60 | 20 20 20 20 20 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | .....</p>......................< |
| 2fc80 | 68 31 20 69 64 3d 22 42 75 69 6c 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c 2f 68 | h1.id="Build-Mode">Build.Mode</h |
| 2fca0 | 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 74 68 72 65 | 1>........<p>.......Zig.has.thre |
| 2fcc0 | 65 20 62 75 69 6c 64 20 6d 6f 64 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 | e.build.modes:.......</p>....... |
| 2fce0 | 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 44 65 62 75 67 | <ul>.........<li><a.href="#Debug |
| 2fd00 | 22 3e 44 65 62 75 67 3c 2f 61 3e 20 28 64 65 66 61 75 6c 74 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 | ">Debug</a>.(default)</li>...... |
| 2fd20 | 20 20 20 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 46 61 73 74 22 3e 52 65 | ...<li><a.href="#ReleaseFast">Re |
| 2fd40 | 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | leaseFast</a></li>.........<li>< |
| 2fd60 | 61 20 68 72 65 66 3d 22 23 52 65 6c 65 61 73 65 53 61 66 65 22 3e 52 65 6c 65 61 73 65 53 61 66 | a.href="#ReleaseSafe">ReleaseSaf |
| 2fd80 | 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e | e</a></li>.......</ul>.......<p> |
| 2fda0 | 0a 20 20 20 20 20 20 54 6f 20 61 64 64 20 73 74 61 6e 64 61 72 64 20 62 75 69 6c 64 20 6f 70 74 | .......To.add.standard.build.opt |
| 2fdc0 | 69 6f 6e 73 20 74 6f 20 61 20 3c 63 6f 64 65 3e 62 75 69 6c 64 2e 7a 69 67 3c 2f 63 6f 64 65 3e | ions.to.a.<code>build.zig</code> |
| 2fde0 | 20 66 69 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f | .file:.......</p>.......<pre><co |
| 2fe00 | 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 42 75 69 6c 64 65 72 20 3d 20 40 | de.class="zig">const.Builder.=.@ |
| 2fe20 | 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 62 75 69 6c 64 2e 42 75 | import("std").build.Bu |
| 2fe40 | 69 6c 64 65 72 3b 0a 0a 70 75 62 20 66 6e 20 62 75 69 6c 64 28 62 3a 20 26 61 6d 70 3b 42 75 69 | ilder;..pub.fn.build(b:.&Bui |
| 2fe60 | 6c 64 65 72 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 65 78 65 20 3d 20 62 2e 61 | lder).void.{.....const.exe.=.b.a |
| 2fe80 | 64 64 45 78 65 63 75 74 61 62 6c 65 28 26 71 75 6f 74 3b 65 78 61 6d 70 6c 65 26 71 75 6f 74 3b | ddExecutable("example" |
| 2fea0 | 2c 20 26 71 75 6f 74 3b 65 78 61 6d 70 6c 65 2e 7a 69 67 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 | ,."example.zig");..... |
| 2fec0 | 65 78 65 2e 73 65 74 42 75 69 6c 64 4d 6f 64 65 28 62 2e 73 74 61 6e 64 61 72 64 52 65 6c 65 61 | exe.setBuildMode(b.standardRelea |
| 2fee0 | 73 65 4f 70 74 69 6f 6e 73 28 29 29 3b 0a 20 20 20 20 62 2e 64 65 66 61 75 6c 74 5f 73 74 65 70 | seOptions());.....b.default_step |
| 2ff00 | 2e 64 65 70 65 6e 64 4f 6e 28 26 61 6d 70 3b 65 78 65 2e 73 74 65 70 29 3b 0a 7d 3c 2f 63 6f 64 | .dependOn(&exe.step);.}</cod |
| 2ff20 | 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 69 73 20 63 61 | e></pre>.......<p>.......This.ca |
| 2ff40 | 75 73 65 73 20 74 68 65 73 65 20 6f 70 74 69 6f 6e 73 20 74 6f 20 62 65 20 61 76 61 69 6c 61 62 | uses.these.options.to.be.availab |
| 2ff60 | 6c 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 | le:.......</p>.......<pre><code. |
| 2ff80 | 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 20 20 2d 44 72 65 6c 65 61 73 65 2d 73 61 66 65 3d 28 | class="shell">..-Drelease-safe=( |
| 2ffa0 | 62 6f 6f 6c 29 20 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 6e 20 61 6e 64 20 73 61 66 65 | bool)..optimizations.on.and.safe |
| 2ffc0 | 74 79 20 6f 6e 0a 20 20 2d 44 72 65 6c 65 61 73 65 2d 66 61 73 74 3d 28 62 6f 6f 6c 29 20 20 6f | ty.on...-Drelease-fast=(bool)..o |
| 2ffe0 | 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 6f 6e 20 61 6e 64 20 73 61 66 65 74 79 20 6f 66 66 3c 2f | ptimizations.on.and.safety.off</ |
| 30000 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 44 65 62 75 67 22 | code></pre>.......<h2.id="Debug" |
| 30020 | 3e 44 65 62 75 67 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | >Debug</h2>........<pre><code.cl |
| 30040 | 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 65 78 61 6d | ass="shell">$.zig.build-exe.exam |
| 30060 | 70 6c 65 2e 7a 69 67 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a | ple.zig</code></pre>.......<ul>. |
| 30080 | 20 20 20 20 20 20 20 20 3c 6c 69 3e 46 61 73 74 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 | ........<li>Fast.compilation.spe |
| 300a0 | 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b | ed</li>.........<li>Safety.check |
| 300c0 | 73 20 65 6e 61 62 6c 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 | s.enabled</li>.........<li>Slow. |
| 300e0 | 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c | runtime.performance</li>.......< |
| 30100 | 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 65 6c 65 61 73 | /ul>..............<h2.id="Releas |
| 30120 | 65 46 61 73 74 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | eFast">ReleaseFast</h2>........< |
| 30140 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 | pre><code.class="shell">$.zig.bu |
| 30160 | 69 6c 64 2d 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 66 61 | ild-exe.example.zig.--release-fa |
| 30180 | 73 74 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 | st</code></pre>.......<ul>...... |
| 301a0 | 20 20 20 3c 6c 69 3e 46 61 73 74 20 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c | ...<li>Fast.runtime.performance< |
| 301c0 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 64 | /li>.........<li>Safety.checks.d |
| 301e0 | 69 73 61 62 6c 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 63 6f | isabled</li>.........<li>Slow.co |
| 30200 | 6d 70 69 6c 61 74 69 6f 6e 20 73 70 65 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e | mpilation.speed</li>.......</ul> |
| 30220 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 65 6c 65 61 73 65 53 61 66 | ..............<h2.id="ReleaseSaf |
| 30240 | 65 22 3e 52 65 6c 65 61 73 65 53 61 66 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e | e">ReleaseSafe</h2>........<pre> |
| 30260 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d | <code.class="shell">$.zig.build- |
| 30280 | 65 78 65 20 65 78 61 6d 70 6c 65 2e 7a 69 67 20 2d 2d 72 65 6c 65 61 73 65 2d 73 61 66 65 3c 2f | exe.example.zig.--release-safe</ |
| 302a0 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c | code></pre>.......<ul>.........< |
| 302c0 | 6c 69 3e 4d 65 64 69 75 6d 20 72 75 6e 74 69 6d 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 3c 2f 6c | li>Medium.runtime.performance</l |
| 302e0 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 61 66 65 74 79 20 63 68 65 63 6b 73 20 65 6e 61 | i>.........<li>Safety.checks.ena |
| 30300 | 62 6c 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 53 6c 6f 77 20 63 6f 6d 70 69 | bled</li>.........<li>Slow.compi |
| 30320 | 6c 61 74 69 6f 6e 20 73 70 65 65 64 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | lation.speed</li>.......</ul>... |
| 30340 | 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 | ....<p>See.also:</p><ul>.<li><a. |
| 30360 | 68 72 65 66 3d 22 23 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c | href="#Compile-Variables">Compil |
| 30380 | 65 20 56 61 72 69 61 62 6c 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 | e.Variables</a></li>.<li><a.href |
| 303a0 | 3d 22 23 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 | ="#Zig-Build-System">Zig.Build.S |
| 303c0 | 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 55 6e 64 | ystem</a></li>.<li><a.href="#Und |
| 303e0 | 65 66 69 6e 65 64 2d 42 65 68 61 76 69 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 | efined-Behavior">Undefined.Behav |
| 30400 | 69 6f 72 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | ior</a></li>.</ul>.............. |
| 30420 | 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 55 6e 64 65 66 69 6e 65 64 2d 42 65 68 61 76 69 | ........<h1.id="Undefined-Behavi |
| 30440 | 6f 72 22 3e 55 6e 64 65 66 69 6e 65 64 20 42 65 68 61 76 69 6f 72 3c 2f 68 31 3e 0a 0a 20 20 20 | or">Undefined.Behavior</h1>..... |
| 30460 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 68 61 73 20 6d 61 6e 79 20 69 6e 73 74 61 6e | ...<p>.......Zig.has.many.instan |
| 30480 | 63 65 73 20 6f 66 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 2e 20 49 66 20 75 6e | ces.of.undefined.behavior..If.un |
| 304a0 | 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 69 73 0a 20 20 20 20 20 20 64 65 74 65 63 74 | defined.behavior.is.......detect |
| 304c0 | 65 64 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 2c 20 5a 69 67 20 65 6d 69 74 73 20 61 6e | ed.at.compile-time,.Zig.emits.an |
| 304e0 | 20 65 72 72 6f 72 2e 20 4d 6f 73 74 20 75 6e 64 65 66 69 6e 65 64 20 62 65 68 61 76 69 6f 72 20 | .error..Most.undefined.behavior. |
| 30500 | 74 68 61 74 0a 20 20 20 20 20 20 63 61 6e 6e 6f 74 20 62 65 20 64 65 74 65 63 74 65 64 20 61 74 | that.......cannot.be.detected.at |
| 30520 | 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 61 6e 20 62 65 20 64 65 74 65 63 74 65 64 20 61 74 | .compile-time.can.be.detected.at |
| 30540 | 20 72 75 6e 74 69 6d 65 2e 20 49 6e 20 74 68 65 73 65 20 63 61 73 65 73 2c 0a 20 20 20 20 20 20 | .runtime..In.these.cases,....... |
| 30560 | 5a 69 67 20 68 61 73 20 73 61 66 65 74 79 20 63 68 65 63 6b 73 2e 20 53 61 66 65 74 79 20 63 68 | Zig.has.safety.checks..Safety.ch |
| 30580 | 65 63 6b 73 20 63 61 6e 20 62 65 20 64 69 73 61 62 6c 65 64 20 6f 6e 20 61 20 70 65 72 2d 62 6c | ecks.can.be.disabled.on.a.per-bl |
| 305a0 | 6f 63 6b 20 62 61 73 69 73 0a 20 20 20 20 20 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 73 65 74 52 | ock.basis.......with.<code>@setR |
| 305c0 | 75 6e 74 69 6d 65 53 61 66 65 74 79 3c 2f 63 6f 64 65 3e 2e 20 54 68 65 20 3c 61 20 68 72 65 66 | untimeSafety</code>..The.<a.href |
| 305e0 | 3d 22 23 52 65 6c 65 61 73 65 46 61 73 74 22 3e 52 65 6c 65 61 73 65 46 61 73 74 3c 2f 61 3e 0a | ="#ReleaseFast">ReleaseFast</a>. |
| 30600 | 20 20 20 20 20 20 62 75 69 6c 64 20 6d 6f 64 65 20 64 69 73 61 62 6c 65 73 20 61 6c 6c 20 73 61 | ......build.mode.disables.all.sa |
| 30620 | 66 65 74 79 20 63 68 65 63 6b 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 66 61 63 69 6c 69 74 61 | fety.checks.in.order.to.facilita |
| 30640 | 74 65 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 | te.optimizations........</p>.... |
| 30660 | 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 57 68 65 6e 20 61 20 73 61 66 65 74 79 20 63 68 65 63 6b | ...<p>.......When.a.safety.check |
| 30680 | 20 66 61 69 6c 73 2c 20 5a 69 67 20 63 72 61 73 68 65 73 20 77 69 74 68 20 61 20 73 74 61 63 6b | .fails,.Zig.crashes.with.a.stack |
| 306a0 | 20 74 72 61 63 65 2c 20 6c 69 6b 65 20 74 68 69 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 | .trace,.like.this:.......</p>... |
| 306c0 | 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e | ....<p.class="file">test.zig</p> |
| 306e0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 74 65 73 74 20 26 71 75 6f | <pre><code.class="zig">test.&quo |
| 30700 | 74 3b 73 61 66 65 74 79 20 63 68 65 63 6b 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 75 6e 72 65 61 | t;safety.check".{.....unrea |
| 30720 | 63 68 61 62 6c 65 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 | chable;.}</code></pre><pre><code |
| 30740 | 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a | .class="shell">$.zig.test.test.z |
| 30760 | 69 67 0a 54 65 73 74 20 31 2f 31 20 73 61 66 65 74 79 20 63 68 65 63 6b 2e 2e 2e 72 65 61 63 68 | ig.Test.1/1.safety.check...reach |
| 30780 | 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d | ed.unreachable.code.<span.class= |
| 307a0 | 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 | "t37_1">/home/andy/dev/zig/docge |
| 307c0 | 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e | n_tmp/test.zig:2:5</span>:.<span |
| 307e0 | 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 30 33 36 37 38 20 69 6e 20 3f 3f 3f 20 28 74 | .class="t2_0">0x203678.in.???.(t |
| 30800 | 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 | est)</span>.....unreachable;.... |
| 30820 | 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 | .<span.class="t32_1">^</span>.<s |
| 30840 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 | pan.class="t37_1">/home/andy/dev |
| 30860 | 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 74 | /zig/build/lib/zig/std/special/t |
| 30880 | 65 73 74 5f 72 75 6e 6e 65 72 2e 7a 69 67 3a 31 31 3a 32 35 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 | est_runner.zig:11:25</span>:.<sp |
| 308a0 | 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 34 35 38 20 69 6e 20 3f 3f 3f 20 | an.class="t2_0">0x21d458.in.???. |
| 308c0 | 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 74 72 79 20 74 65 73 74 5f 66 | (test)</span>.........try.test_f |
| 308e0 | 6e 2e 66 75 6e 63 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.func();....................... |
| 30900 | 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c | ..<span.class="t32_1">^</span>.< |
| 30920 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 | span.class="t37_1">/home/andy/de |
| 30940 | 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f | v/zig/build/lib/zig/std/special/ |
| 30960 | 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 38 35 3a 32 32 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 | bootstrap.zig:85:22</span>:.<spa |
| 30980 | 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 32 35 62 20 69 6e 20 3f 3f 3f 20 28 | n.class="t2_0">0x21d25b.in.???.( |
| 309a0 | 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6d 61 | test)</span>.............root.ma |
| 309c0 | 69 6e 28 29 20 63 61 74 63 68 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | in().catch.|err|.{.............. |
| 309e0 | 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 | ........<span.class="t32_1">^</s |
| 30a00 | 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 | pan>.<span.class="t37_1">/home/a |
| 30a20 | 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 | ndy/dev/zig/build/lib/zig/std/sp |
| 30a40 | 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 36 32 3a 32 30 3c 2f 73 70 61 6e 3e | ecial/bootstrap.zig:62:20</span> |
| 30a60 | 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 31 62 62 20 69 6e | :.<span.class="t2_0">0x21d1bb.in |
| 30a80 | 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 | .???.(test)</span>.....return.ca |
| 30aa0 | 6c 6c 4d 61 69 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 | llMain();....................<sp |
| 30ac0 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 | an.class="t32_1">^</span>.<span. |
| 30ae0 | 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 | class="t37_1">/home/andy/dev/zig |
| 30b00 | 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 70 65 63 69 61 6c 2f 62 6f 6f 74 73 | /build/lib/zig/std/special/boots |
| 30b20 | 74 72 61 70 2e 7a 69 67 3a 35 32 3a 33 39 3c 2f 73 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 | trap.zig:52:39</span>:.<span.cla |
| 30b40 | 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 30 34 63 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 | ss="t2_0">0x21d04c.in.???.(test) |
| 30b60 | 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 73 74 64 2e 6f 73 2e 70 6f 73 69 78 2e 65 78 69 74 28 63 61 | </span>.....std.os.posix.exit(ca |
| 30b80 | 6c 6c 4d 61 69 6e 57 69 74 68 41 72 67 73 28 61 72 67 63 2c 20 61 72 67 76 2c 20 65 6e 76 70 29 | llMainWithArgs(argc,.argv,.envp) |
| 30ba0 | 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | );.............................. |
| 30bc0 | 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f | .........<span.class="t32_1">^</ |
| 30be0 | 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f | span>.<span.class="t37_1">/home/ |
| 30c00 | 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 62 75 69 6c 64 2f 6c 69 62 2f 7a 69 67 2f 73 74 64 2f 73 | andy/dev/zig/build/lib/zig/std/s |
| 30c20 | 70 65 63 69 61 6c 2f 62 6f 6f 74 73 74 72 61 70 2e 7a 69 67 3a 33 39 3a 35 3c 2f 73 70 61 6e 3e | pecial/bootstrap.zig:39:5</span> |
| 30c40 | 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 63 66 64 30 20 69 6e | :.<span.class="t2_0">0x21cfd0.in |
| 30c60 | 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 40 6e 6f 49 6e 6c 69 6e 65 | .???.(test)</span>.....@noInline |
| 30c80 | 43 61 6c 6c 28 70 6f 73 69 78 43 61 6c 6c 4d 61 69 6e 41 6e 64 45 78 69 74 29 3b 0a 20 20 20 20 | Call(posixCallMainAndExit);..... |
| 30ca0 | 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 0a 54 65 | <span.class="t32_1">^</span>..Te |
| 30cc0 | 73 74 73 20 66 61 69 6c 65 64 2e 20 55 73 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f | sts.failed..Use.the.following.co |
| 30ce0 | 6d 6d 61 6e 64 20 74 6f 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 66 61 69 6c 75 72 65 3a 0a | mmand.to.reproduce.the.failure:. |
| 30d00 | 2e 2f 7a 69 67 2d 63 61 63 68 65 2f 74 65 73 74 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a | ./zig-cache/test.</code></pre>.. |
| 30d20 | 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 65 61 63 68 69 6e 67 2d 55 6e 72 65 61 63 68 61 62 | ......<h2.id="Reaching-Unreachab |
| 30d40 | 6c 65 2d 43 6f 64 65 22 3e 52 65 61 63 68 69 6e 67 20 55 6e 72 65 61 63 68 61 62 6c 65 20 43 6f | le-Code">Reaching.Unreachable.Co |
| 30d60 | 64 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d | de</h2>........<p>At.compile-tim |
| 30d80 | 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 | e:</p>.......<p.class="file">tes |
| 30da0 | 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e | t.zig</p><pre><code.class="zig"> |
| 30dc0 | 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 61 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 7d 0a | comptime.{.....assert(false);.}. |
| 30de0 | 66 6e 20 61 73 73 65 72 74 28 6f 6b 3a 20 62 6f 6f 6c 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 69 | fn.assert(ok:.bool).void.{.....i |
| 30e00 | 66 20 28 21 6f 6b 29 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f | f.(!ok).unreachable;.//.assertio |
| 30e20 | 6e 20 66 61 69 6c 75 72 65 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f | n.failure.}</code></pre><pre><co |
| 30e40 | 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 | de.class="shell">$.zig.test.test |
| 30e60 | 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e | .zig.<span.class="t0_1">/home/an |
| 30e80 | 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 35 | dy/dev/zig/docgen_tmp/test.zig:5 |
| 30ea0 | 3a 31 34 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e | :14:.</span><span.class="t31_1"> |
| 30ec0 | 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e | error:</span><span.class="t0_1"> |
| 30ee0 | 20 75 6e 61 62 6c 65 20 74 6f 20 65 76 61 6c 75 61 74 65 20 63 6f 6e 73 74 61 6e 74 20 65 78 70 | .unable.to.evaluate.constant.exp |
| 30f00 | 72 65 73 73 69 6f 6e 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 69 66 20 28 21 6f 6b 29 20 75 6e 72 65 | ression</span>.....if.(!ok).unre |
| 30f20 | 61 63 68 61 62 6c 65 3b 20 2f 2f 20 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 65 0a 20 20 | achable;.//.assertion.failure... |
| 30f40 | 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e | ...........<span.class="t32_1">^ |
| 30f60 | 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 | </span>.<span.class="t0_1">/home |
| 30f80 | 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 | /andy/dev/zig/docgen_tmp/test.zi |
| 30fa0 | 67 3a 32 3a 31 31 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f | g:2:11:.</span><span.class="t36_ |
| 30fc0 | 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | 1">note:</span><span.class="t0_1 |
| 30fe0 | 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 61 | ">.called.from.here</span>.....a |
| 31000 | 73 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c | ssert(false);...........<span.cl |
| 31020 | 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 73 70 61 6e 20 63 6c 61 73 73 | ass="t32_1">^</span>.<span.class |
| 31040 | 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 | ="t0_1">/home/andy/dev/zig/docge |
| 31060 | 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 31 3a 31 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 | n_tmp/test.zig:1:10:.</span><spa |
| 31080 | 6e 20 63 6c 61 73 73 3d 22 74 33 36 5f 31 22 3e 6e 6f 74 65 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 | n.class="t36_1">note:</span><spa |
| 310a0 | 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 68 65 72 65 | n.class="t0_1">.called.from.here |
| 310c0 | 3c 2f 73 70 61 6e 3e 0a 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 | </span>.comptime.{..........<spa |
| 310e0 | 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e | n.class="t32_1">^</span>.</code> |
| 31100 | 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 | </pre>........<p>At.runtime.cras |
| 31120 | 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 72 65 61 63 68 | hes.with.the.message.<code>reach |
| 31140 | 65 64 20 75 6e 72 65 61 63 68 61 62 6c 65 20 63 6f 64 65 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 | ed.unreachable.code</code>.and.a |
| 31160 | 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | .stack.trace.</p>..............< |
| 31180 | 68 32 20 69 64 3d 22 49 6e 64 65 78 2d 6f 75 74 2d 6f 66 2d 42 6f 75 6e 64 73 22 3e 49 6e 64 65 | h2.id="Index-out-of-Bounds">Inde |
| 311a0 | 78 20 6f 75 74 20 6f 66 20 42 6f 75 6e 64 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 | x.out.of.Bounds</h2>........<p>A |
| 311c0 | 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 | t.compile-time:</p>.......<p.cla |
| 311e0 | 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 | ss="file">test.zig</p><pre><code |
| 31200 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 | .class="zig">comptime.{.....cons |
| 31220 | 74 20 61 72 72 61 79 20 3d 20 26 71 75 6f 74 3b 68 65 6c 6c 6f 26 71 75 6f 74 3b 3b 0a 20 20 20 | t.array.=."hello";.... |
| 31240 | 20 63 6f 6e 73 74 20 67 61 72 62 61 67 65 20 3d 20 61 72 72 61 79 5b 35 5d 3b 0a 7d 3c 2f 63 6f | .const.garbage.=.array[5];.}</co |
| 31260 | 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c | de></pre><pre><code.class="shell |
| 31280 | 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 | ">$.zig.test.test.zig.<span.clas |
| 312a0 | 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 | s="t0_1">/home/andy/dev/zig/docg |
| 312c0 | 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 36 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 | en_tmp/test.zig:3:26:.</span><sp |
| 312e0 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 | an.class="t31_1">error:</span><s |
| 31300 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 69 6e 64 65 78 20 35 20 6f 75 74 73 69 64 | pan.class="t0_1">.index.5.outsid |
| 31320 | 65 20 61 72 72 61 79 20 6f 66 20 73 69 7a 65 20 35 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e | e.array.of.size.5</span>.....con |
| 31340 | 73 74 20 67 61 72 62 61 67 65 20 3d 20 61 72 72 61 79 5b 35 5d 3b 0a 20 20 20 20 20 20 20 20 20 | st.garbage.=.array[5];.......... |
| 31360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 | ................<span.class="t32 |
| 31380 | 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 | _1">^</span>.</code></pre>...... |
| 313a0 | 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 | ..<p>At.runtime.crashes.with.the |
| 313c0 | 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 69 6e 64 65 78 20 6f 75 74 20 6f 66 20 62 6f 75 6e | .message.<code>index.out.of.boun |
| 313e0 | 64 73 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e | ds</code>.and.a.stack.trace.</p> |
| 31400 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 61 73 74 2d 4e 65 67 61 74 | ..............<h2.id="Cast-Negat |
| 31420 | 69 76 65 2d 4e 75 6d 62 65 72 2d 74 6f 2d 55 6e 73 69 67 6e 65 64 2d 49 6e 74 65 67 65 72 22 3e | ive-Number-to-Unsigned-Integer"> |
| 31440 | 43 61 73 74 20 4e 65 67 61 74 69 76 65 20 4e 75 6d 62 65 72 20 74 6f 20 55 6e 73 69 67 6e 65 64 | Cast.Negative.Number.to.Unsigned |
| 31460 | 20 49 6e 74 65 67 65 72 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 | .Integer</h2>........<p>At.compi |
| 31480 | 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c | le-time:</p>.......<p.class="fil |
| 314a0 | 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | e">test.zig</p><pre><code.class= |
| 314c0 | 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 76 61 6c 75 65 | "zig">comptime.{.....const.value |
| 314e0 | 3a 20 69 33 32 20 3d 20 2d 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 3d | :.i32.=.-1;.....const.unsigned.= |
| 31500 | 20 75 33 32 28 76 61 6c 75 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e | .u32(value);.}</code></pre><pre> |
| 31520 | 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 | <code.class="shell">$.zig.test.t |
| 31540 | 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 | est.zig.<span.class="t0_1">/home |
| 31560 | 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 | /andy/dev/zig/docgen_tmp/test.zi |
| 31580 | 67 3a 33 3a 32 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f | g:3:25:.</span><span.class="t31_ |
| 315a0 | 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f | 1">error:</span><span.class="t0_ |
| 315c0 | 31 22 3e 20 61 74 74 65 6d 70 74 20 74 6f 20 63 61 73 74 20 6e 65 67 61 74 69 76 65 20 76 61 6c | 1">.attempt.to.cast.negative.val |
| 315e0 | 75 65 20 74 6f 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 3c 2f 73 70 61 6e 3e 0a 20 20 | ue.to.unsigned.integer</span>... |
| 31600 | 20 20 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 3d 20 75 33 32 28 76 61 6c 75 65 29 3b 0a 20 | ..const.unsigned.=.u32(value);.. |
| 31620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 | .......................<span.cla |
| 31640 | 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 | ss="t32_1">^</span>.</code></pre |
| 31660 | 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 | >........<p>At.runtime.crashes.w |
| 31680 | 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 61 74 74 65 6d 70 74 20 74 6f | ith.the.message.<code>attempt.to |
| 316a0 | 20 63 61 73 74 20 6e 65 67 61 74 69 76 65 20 76 61 6c 75 65 20 74 6f 20 75 6e 73 69 67 6e 65 64 | .cast.negative.value.to.unsigned |
| 316c0 | 20 69 6e 74 65 67 65 72 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 | .integer</code>.and.a.stack.trac |
| 316e0 | 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 49 66 20 79 6f 75 20 61 72 | e.</p>.......<p>.......If.you.ar |
| 31700 | 65 20 74 72 79 69 6e 67 20 74 6f 20 6f 62 74 61 69 6e 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 76 | e.trying.to.obtain.the.maximum.v |
| 31720 | 61 6c 75 65 20 6f 66 20 61 6e 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2c 20 75 73 65 | alue.of.an.unsigned.integer,.use |
| 31740 | 20 3c 63 6f 64 65 3e 40 6d 61 78 56 61 6c 75 65 28 54 29 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 | .<code>@maxValue(T)</code>,..... |
| 31760 | 20 20 77 68 65 72 65 20 3c 63 6f 64 65 3e 54 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 69 6e | ..where.<code>T</code>.is.the.in |
| 31780 | 74 65 67 65 72 20 74 79 70 65 2c 20 73 75 63 68 20 61 73 20 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 | teger.type,.such.as.<code>u32</c |
| 317a0 | 6f 64 65 3e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 | ode>........</p>..............<h |
| 317c0 | 32 20 69 64 3d 22 43 61 73 74 2d 54 72 75 6e 63 61 74 65 73 2d 44 61 74 61 22 3e 43 61 73 74 20 | 2.id="Cast-Truncates-Data">Cast. |
| 317e0 | 54 72 75 6e 63 61 74 65 73 20 44 61 74 61 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 | Truncates.Data</h2>........<p>At |
| 31800 | 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 | .compile-time:</p>.......<p.clas |
| 31820 | 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 | s="file">test.zig</p><pre><code. |
| 31840 | 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 | class="zig">comptime.{.....const |
| 31860 | 20 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 3a 20 75 31 36 20 3d 20 33 30 30 3b 0a 20 20 20 20 63 | .spartan_count:.u16.=.300;.....c |
| 31880 | 6f 6e 73 74 20 62 79 74 65 20 3d 20 75 38 28 73 70 61 72 74 61 6e 5f 63 6f 75 6e 74 29 3b 0a 7d | onst.byte.=.u8(spartan_count);.} |
| 318a0 | 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 | </code></pre><pre><code.class="s |
| 318c0 | 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 | hell">$.zig.test.test.zig.<span. |
| 318e0 | 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f | class="t0_1">/home/andy/dev/zig/ |
| 31900 | 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 30 3a 20 3c 2f 73 70 61 6e | docgen_tmp/test.zig:3:20:.</span |
| 31920 | 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 | ><span.class="t31_1">error:</spa |
| 31940 | 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 63 61 73 74 20 66 72 6f 6d 20 | n><span.class="t0_1">.cast.from. |
| 31960 | 27 75 31 36 27 20 74 6f 20 27 75 38 27 20 74 72 75 6e 63 61 74 65 73 20 62 69 74 73 3c 2f 73 70 | 'u16'.to.'u8'.truncates.bits</sp |
| 31980 | 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 62 79 74 65 20 3d 20 75 38 28 73 70 61 72 74 61 6e 5f | an>.....const.byte.=.u8(spartan_ |
| 319a0 | 63 6f 75 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e | count);....................<span |
| 319c0 | 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c | .class="t32_1">^</span>.</code>< |
| 319e0 | 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 | /pre>........<p>At.runtime.crash |
| 31a00 | 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 69 6e 74 65 67 65 | es.with.the.message.<code>intege |
| 31a20 | 72 20 63 61 73 74 20 74 72 75 6e 63 61 74 65 64 20 62 69 74 73 3c 2f 63 6f 64 65 3e 20 61 6e 64 | r.cast.truncated.bits</code>.and |
| 31a40 | 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | .a.stack.trace.</p>.......<p>... |
| 31a60 | 20 20 20 20 49 66 20 79 6f 75 20 61 72 65 20 74 72 79 69 6e 67 20 74 6f 20 74 72 75 6e 63 61 74 | ....If.you.are.trying.to.truncat |
| 31a80 | 65 20 62 69 74 73 2c 20 75 73 65 20 3c 63 6f 64 65 3e 40 74 72 75 6e 63 61 74 65 28 54 2c 20 76 | e.bits,.use.<code>@truncate(T,.v |
| 31aa0 | 61 6c 75 65 29 3c 2f 63 6f 64 65 3e 2c 0a 20 20 20 20 20 20 77 68 65 72 65 20 3c 63 6f 64 65 3e | alue)</code>,.......where.<code> |
| 31ac0 | 54 3c 2f 63 6f 64 65 3e 20 69 73 20 74 68 65 20 69 6e 74 65 67 65 72 20 74 79 70 65 2c 20 73 75 | T</code>.is.the.integer.type,.su |
| 31ae0 | 63 68 20 61 73 20 3c 63 6f 64 65 3e 75 33 32 3c 2f 63 6f 64 65 3e 2c 20 61 6e 64 20 3c 63 6f 64 | ch.as.<code>u32</code>,.and.<cod |
| 31b00 | 65 3e 76 61 6c 75 65 3c 2f 63 6f 64 65 3e 0a 20 20 20 20 20 20 69 73 20 74 68 65 20 76 61 6c 75 | e>value</code>.......is.the.valu |
| 31b20 | 65 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 74 72 75 6e 63 61 74 65 2e 0a 20 20 20 20 20 20 3c 2f | e.you.want.to.truncate........</ |
| 31b40 | 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 74 65 67 65 72 2d | p>..............<h2.id="Integer- |
| 31b60 | 4f 76 65 72 66 6c 6f 77 22 3e 49 6e 74 65 67 65 72 20 4f 76 65 72 66 6c 6f 77 3c 2f 68 32 3e 0a | Overflow">Integer.Overflow</h2>. |
| 31b80 | 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 44 65 66 61 75 6c 74 2d 4f 70 65 72 61 74 69 6f 6e | .......<h3.id="Default-Operation |
| 31ba0 | 73 22 3e 44 65 66 61 75 6c 74 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 68 33 3e 0a 0a 20 20 20 20 | s">Default.Operations</h3>...... |
| 31bc0 | 20 20 3c 70 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6f 70 65 72 61 74 6f 72 73 20 63 61 6e | ..<p>The.following.operators.can |
| 31be0 | 20 63 61 75 73 65 20 69 6e 74 65 67 65 72 20 6f 76 65 72 66 6c 6f 77 3a 3c 2f 70 3e 0a 20 20 20 | .cause.integer.overflow:</p>.... |
| 31c00 | 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2b 3c 2f 63 6f 64 | ...<ul>.........<li><code>+</cod |
| 31c20 | 65 3e 20 28 61 64 64 69 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | e>.(addition)</li>.........<li>< |
| 31c40 | 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 20 28 73 75 62 74 72 61 63 74 69 6f 6e 29 3c 2f 6c 69 3e | code>-</code>.(subtraction)</li> |
| 31c60 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2d 3c 2f 63 6f 64 65 3e 20 28 6e 65 67 | .........<li><code>-</code>.(neg |
| 31c80 | 61 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2a 3c | ation)</li>.........<li><code>*< |
| 31ca0 | 2f 63 6f 64 65 3e 20 28 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 | /code>.(multiplication)</li>.... |
| 31cc0 | 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2f 3c 2f 63 6f 64 65 3e 20 28 64 69 76 69 73 69 6f | .....<li><code>/</code>.(divisio |
| 31ce0 | 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 54 72 | n)</li>.........<li><code>@divTr |
| 31d00 | 75 6e 63 3c 2f 63 6f 64 65 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 | unc</code>.(division)</li>...... |
| 31d20 | 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 64 69 76 46 6c 6f 6f 72 3c 2f 63 6f 64 65 3e 20 28 64 | ...<li><code>@divFloor</code>.(d |
| 31d40 | 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e | ivision)</li>.........<li><code> |
| 31d60 | 40 64 69 76 45 78 61 63 74 3c 2f 63 6f 64 65 3e 20 28 64 69 76 69 73 69 6f 6e 29 3c 2f 6c 69 3e | @divExact</code>.(division)</li> |
| 31d80 | 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 45 78 61 6d 70 6c 65 20 77 69 | .......</ul>.......<p>Example.wi |
| 31da0 | 74 68 20 61 64 64 69 74 69 6f 6e 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e | th.addition.at.compile-time:</p> |
| 31dc0 | 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c | .......<p.class="file">test.zig< |
| 31de0 | 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 | /p><pre><code.class="zig">compti |
| 31e00 | 6d 65 20 7b 0a 20 20 20 20 76 61 72 20 62 79 74 65 3a 20 75 38 20 3d 20 32 35 35 3b 0a 20 20 20 | me.{.....var.byte:.u8.=.255;.... |
| 31e20 | 20 62 79 74 65 20 2b 3d 20 31 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c | .byte.+=.1;.}</code></pre><pre>< |
| 31e40 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 | code.class="shell">$.zig.test.te |
| 31e60 | 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f | st.zig.<span.class="t0_1">/home/ |
| 31e80 | 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 | andy/dev/zig/docgen_tmp/test.zig |
| 31ea0 | 3a 33 3a 31 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 | :3:10:.</span><span.class="t31_1 |
| 31ec0 | 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | ">error:</span><span.class="t0_1 |
| 31ee0 | 22 3e 20 6f 70 65 72 61 74 69 6f 6e 20 63 61 75 73 65 64 20 6f 76 65 72 66 6c 6f 77 3c 2f 73 70 | ">.operation.caused.overflow</sp |
| 31f00 | 61 6e 3e 0a 20 20 20 20 62 79 74 65 20 2b 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 3c 73 70 61 | an>.....byte.+=.1;..........<spa |
| 31f20 | 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e | n.class="t32_1">^</span>.</code> |
| 31f40 | 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 | </pre>........<p>At.runtime.cras |
| 31f60 | 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 69 6e 74 65 67 | hes.with.the.message.<code>integ |
| 31f80 | 65 72 20 6f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 | er.overflow</code>.and.a.stack.t |
| 31fa0 | 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 53 | race.</p>..............<h3.id="S |
| 31fc0 | 74 61 6e 64 61 72 64 2d 4c 69 62 72 61 72 79 2d 4d 61 74 68 2d 46 75 6e 63 74 69 6f 6e 73 22 3e | tandard-Library-Math-Functions"> |
| 31fe0 | 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 4d 61 74 68 20 46 75 6e 63 74 69 6f 6e 73 3c | Standard.Library.Math.Functions< |
| 32000 | 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 70 | /h3>........<p>These.functions.p |
| 32020 | 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 79 20 | rovided.by.the.standard.library. |
| 32040 | 72 65 74 75 72 6e 20 70 6f 73 73 69 62 6c 65 20 65 72 72 6f 72 73 2e 3c 2f 70 3e 0a 20 20 20 20 | return.possible.errors.</p>..... |
| 32060 | 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 | ..<ul>.........<li><code>@import |
| 32080 | 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 61 64 64 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 | ("std").math.add</code></li>.... |
| 320a0 | 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 | .....<li><code>@import("std").ma |
| 320c0 | 74 68 2e 73 75 62 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c | th.sub</code></li>.........<li>< |
| 320e0 | 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 6d 75 6c 3c 2f 63 6f | code>@import("std").math.mul</co |
| 32100 | 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f | de></li>.........<li><code>@impo |
| 32120 | 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e 64 69 76 54 72 75 6e 63 3c 2f 63 6f 64 65 3e 3c 2f | rt("std").math.divTrunc</code></ |
| 32140 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 | li>.........<li><code>@import("s |
| 32160 | 74 64 22 29 2e 6d 61 74 68 2e 64 69 76 46 6c 6f 6f 72 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 | td").math.divFloor</code></li>.. |
| 32180 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e | .......<li><code>@import("std"). |
| 321a0 | 6d 61 74 68 2e 64 69 76 45 78 61 63 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | math.divExact</code></li>....... |
| 321c0 | 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 2e 6d 61 74 68 2e | ..<li><code>@import("std").math. |
| 321e0 | 73 68 6c 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 | shl</code></li>.......</ul>..... |
| 32200 | 20 20 3c 70 3e 45 78 61 6d 70 6c 65 20 6f 66 20 63 61 74 63 68 69 6e 67 20 61 6e 20 6f 76 65 72 | ..<p>Example.of.catching.an.over |
| 32220 | 66 6c 6f 77 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 | flow.for.addition:</p>.......<p. |
| 32240 | 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 | class="file">test.zig</p><pre><c |
| 32260 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 6d 61 74 68 20 3d 20 40 69 6d | ode.class="zig">const.math.=.@im |
| 32280 | 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 6d 61 74 68 3b 0a 63 6f 6e 73 | port("std").math;.cons |
| 322a0 | 74 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b | t.warn.=.@import("std" |
| 322c0 | 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 21 76 6f 69 | ).debug.warn;.pub.fn.main().!voi |
| 322e0 | 64 20 7b 0a 20 20 20 20 76 61 72 20 62 79 74 65 3a 20 75 38 20 3d 20 32 35 35 3b 0a 0a 20 20 20 | d.{.....var.byte:.u8.=.255;..... |
| 32300 | 20 62 79 74 65 20 3d 20 69 66 20 28 6d 61 74 68 2e 61 64 64 28 75 38 2c 20 62 79 74 65 2c 20 31 | .byte.=.if.(math.add(u8,.byte,.1 |
| 32320 | 29 29 20 7c 72 65 73 75 6c 74 7c 20 72 65 73 75 6c 74 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a | )).|result|.result.else.|err|.{. |
| 32340 | 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 75 6e 61 62 6c 65 20 74 6f 20 61 64 64 | ........warn("unable.to.add |
| 32360 | 20 6f 6e 65 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 20 40 65 72 72 6f 72 4e 61 6d 65 28 65 72 72 | .one:.{}\n",.@errorName(err |
| 32380 | 29 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 3b 0a 20 20 20 20 7d 3b 0a 0a | ));.........return.err;.....};.. |
| 323a0 | 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 72 65 73 75 6c 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 | ....warn("result:.{}\n" |
| 323c0 | 3b 2c 20 62 79 74 65 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f | ;,.byte);.}</code></pre><pre><co |
| 323e0 | 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 | de.class="shell">$.zig.build-exe |
| 32400 | 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 75 6e 61 62 6c 65 20 74 6f 20 61 64 64 | .test.zig.$../test.unable.to.add |
| 32420 | 20 6f 6e 65 3a 20 4f 76 65 72 66 6c 6f 77 0a 65 72 72 6f 72 3a 20 4f 76 65 72 66 6c 6f 77 0a 3c | .one:.Overflow.error:.Overflow.< |
| 32440 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 37 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 | span.class="t37_1">/home/andy/de |
| 32460 | 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 38 3a 39 3c 2f 73 | v/zig/docgen_tmp/test.zig:8:9</s |
| 32480 | 70 61 6e 3e 3a 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 32 5f 30 22 3e 30 78 32 31 64 33 65 | pan>:.<span.class="t2_0">0x21d3e |
| 324a0 | 35 20 69 6e 20 3f 3f 3f 20 28 74 65 73 74 29 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 72 | 5.in.???.(test)</span>.........r |
| 324c0 | 65 74 75 72 6e 20 65 72 72 3b 0a 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 | eturn.err;.........<span.class=" |
| 324e0 | 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 | t32_1">^</span>.</code></pre>... |
| 32500 | 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 42 75 69 6c 74 69 6e 2d 4f 76 65 72 | ............<h3.id="Builtin-Over |
| 32520 | 66 6c 6f 77 2d 46 75 6e 63 74 69 6f 6e 73 22 3e 42 75 69 6c 74 69 6e 20 4f 76 65 72 66 6c 6f 77 | flow-Functions">Builtin.Overflow |
| 32540 | 20 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 33 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 | .Functions</h3>........<p>...... |
| 32560 | 20 54 68 65 73 65 20 62 75 69 6c 74 69 6e 73 20 72 65 74 75 72 6e 20 61 20 3c 63 6f 64 65 3e 62 | .These.builtins.return.a.<code>b |
| 32580 | 6f 6f 6c 3c 2f 63 6f 64 65 3e 20 6f 66 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 6f 76 65 | ool</code>.of.whether.or.not.ove |
| 325a0 | 72 66 6c 6f 77 0a 20 20 20 20 20 20 6f 63 63 75 72 72 65 64 2c 20 61 73 20 77 65 6c 6c 20 61 73 | rflow.......occurred,.as.well.as |
| 325c0 | 20 72 65 74 75 72 6e 69 6e 67 20 74 68 65 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 3a 0a | .returning.the.overflowed.bits:. |
| 325e0 | 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c | ......</p>.......<ul>.........<l |
| 32600 | 69 3e 3c 63 6f 64 65 3e 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c | i><code>@addWithOverflow</code>< |
| 32620 | 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 73 75 62 57 69 74 68 4f | /li>.........<li><code>@subWithO |
| 32640 | 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e | verflow</code></li>.........<li> |
| 32660 | 3c 63 6f 64 65 3e 40 6d 75 6c 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 6c | <code>@mulWithOverflow</code></l |
| 32680 | 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 40 73 68 6c 57 69 74 68 4f 76 65 | i>.........<li><code>@shlWithOve |
| 326a0 | 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 | rflow</code></li>.......</ul>... |
| 326c0 | 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 20 3c 63 6f 64 65 3e 40 | ....<p>.......Example.of.<code>@ |
| 326e0 | 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f | addWithOverflow</code>:.......</ |
| 32700 | 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 | p>.......<p.class="file">test.zi |
| 32720 | 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 | g</p><pre><code.class="zig">cons |
| 32740 | 74 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b | t.warn.=.@import("std" |
| 32760 | 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 76 6f 69 64 | ).debug.warn;.pub.fn.main().void |
| 32780 | 20 7b 0a 20 20 20 20 76 61 72 20 62 79 74 65 3a 20 75 38 20 3d 20 32 35 35 3b 0a 0a 20 20 20 20 | .{.....var.byte:.u8.=.255;...... |
| 327a0 | 76 61 72 20 72 65 73 75 6c 74 3a 20 75 38 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 | var.result:.u8.=.undefined;..... |
| 327c0 | 69 66 20 28 40 61 64 64 57 69 74 68 4f 76 65 72 66 6c 6f 77 28 75 38 2c 20 62 79 74 65 2c 20 31 | if.(@addWithOverflow(u8,.byte,.1 |
| 327e0 | 30 2c 20 26 61 6d 70 3b 72 65 73 75 6c 74 29 29 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 | 0,.&result)).{.........warn( |
| 32800 | 26 71 75 6f 74 3b 6f 76 65 72 66 6c 6f 77 65 64 20 72 65 73 75 6c 74 3a 20 7b 7d 5c 6e 26 71 75 | "overflowed.result:.{}\n&qu |
| 32820 | 6f 74 3b 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 | ot;,.result);.....}.else.{...... |
| 32840 | 20 20 20 77 61 72 6e 28 26 71 75 6f 74 3b 72 65 73 75 6c 74 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b | ...warn("result:.{}\n" |
| 32860 | 2c 20 72 65 73 75 6c 74 29 3b 0a 20 20 20 20 7d 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c | ,.result);.....}.}</code></pre>< |
| 32880 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 | pre><code.class="shell">$.zig.bu |
| 328a0 | 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e 2f 74 65 73 74 0a 6f 76 65 72 66 6c | ild-exe.test.zig.$../test.overfl |
| 328c0 | 6f 77 65 64 20 72 65 73 75 6c 74 3a 20 39 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 | owed.result:.9.</code></pre>.... |
| 328e0 | 20 20 20 20 0a 20 20 20 20 20 20 3c 68 33 20 69 64 3d 22 57 72 61 70 70 69 6e 67 2d 4f 70 65 72 | ...........<h3.id="Wrapping-Oper |
| 32900 | 61 74 69 6f 6e 73 22 3e 57 72 61 70 70 69 6e 67 20 4f 70 65 72 61 74 69 6f 6e 73 3c 2f 68 33 3e | ations">Wrapping.Operations</h3> |
| 32920 | 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 6f 70 65 72 61 74 69 6f | ........<p>.......These.operatio |
| 32940 | 6e 73 20 68 61 76 65 20 67 75 61 72 61 6e 74 65 65 64 20 77 72 61 70 61 72 6f 75 6e 64 20 73 65 | ns.have.guaranteed.wraparound.se |
| 32960 | 6d 61 6e 74 69 63 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 | mantics........</p>.......<ul>.. |
| 32980 | 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2b 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 | .......<li><code>+%</code>.(wrap |
| 329a0 | 61 72 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | around.addition)</li>.........<l |
| 329c0 | 69 3e 3c 63 6f 64 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 73 75 | i><code>-%</code>.(wraparound.su |
| 329e0 | 62 74 72 61 63 74 69 6f 6e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 | btraction)</li>.........<li><cod |
| 32a00 | 65 3e 2d 25 3c 2f 63 6f 64 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 6e 65 67 61 74 69 6f 6e | e>-%</code>.(wraparound.negation |
| 32a20 | 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 2a 25 3c 2f 63 6f 64 | )</li>.........<li><code>*%</cod |
| 32a40 | 65 3e 20 28 77 72 61 70 61 72 6f 75 6e 64 20 6d 75 6c 74 69 70 6c 69 63 61 74 69 6f 6e 29 3c 2f | e>.(wraparound.multiplication)</ |
| 32a60 | 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 | li>.......</ul>.......<p.class=" |
| 32a80 | 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 | file">test.zig</p><pre><code.cla |
| 32aa0 | 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 61 73 73 65 72 74 20 3d 20 40 69 6d 70 6f 72 74 28 | ss="zig">const.assert.=.@import( |
| 32ac0 | 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 61 73 73 65 72 74 3b 0a 0a | "std").debug.assert;.. |
| 32ae0 | 74 65 73 74 20 26 71 75 6f 74 3b 77 72 61 70 61 72 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 20 61 | test."wraparound.addition.a |
| 32b00 | 6e 64 20 73 75 62 74 72 61 63 74 69 6f 6e 26 71 75 6f 74 3b 20 7b 0a 20 20 20 20 63 6f 6e 73 74 | nd.subtraction".{.....const |
| 32b20 | 20 78 3a 20 69 33 32 20 3d 20 40 6d 61 78 56 61 6c 75 65 28 69 33 32 29 3b 0a 20 20 20 20 63 6f | .x:.i32.=.@maxValue(i32);.....co |
| 32b40 | 6e 73 74 20 6d 69 6e 5f 76 61 6c 20 3d 20 78 20 2b 25 20 31 3b 0a 20 20 20 20 61 73 73 65 72 74 | nst.min_val.=.x.+%.1;.....assert |
| 32b60 | 28 6d 69 6e 5f 76 61 6c 20 3d 3d 20 40 6d 69 6e 56 61 6c 75 65 28 69 33 32 29 29 3b 0a 20 20 20 | (min_val.==.@minValue(i32));.... |
| 32b80 | 20 63 6f 6e 73 74 20 6d 61 78 5f 76 61 6c 20 3d 20 6d 69 6e 5f 76 61 6c 20 2d 25 20 31 3b 0a 20 | .const.max_val.=.min_val.-%.1;.. |
| 32ba0 | 20 20 20 61 73 73 65 72 74 28 6d 61 78 5f 76 61 6c 20 3d 3d 20 40 6d 61 78 56 61 6c 75 65 28 69 | ...assert(max_val.==.@maxValue(i |
| 32bc0 | 33 32 29 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 | 32));.}</code></pre><pre><code.c |
| 32be0 | 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 | lass="shell">$.zig.test.test.zig |
| 32c00 | 0a 54 65 73 74 20 31 2f 31 20 77 72 61 70 61 72 6f 75 6e 64 20 61 64 64 69 74 69 6f 6e 20 61 6e | .Test.1/1.wraparound.addition.an |
| 32c20 | 64 20 73 75 62 74 72 61 63 74 69 6f 6e 2e 2e 2e 4f 4b 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | d.subtraction...OK.</code></pre> |
| 32c40 | 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 78 | ......................<h2.id="Ex |
| 32c60 | 61 63 74 2d 4c 65 66 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 22 3e 45 78 61 63 74 20 4c | act-Left-Shift-Overflow">Exact.L |
| 32c80 | 65 66 74 20 53 68 69 66 74 20 4f 76 65 72 66 6c 6f 77 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | eft.Shift.Overflow</h2>........< |
| 32ca0 | 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 | p>At.compile-time:</p>.......<p. |
| 32cc0 | 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 | class="file">test.zig</p><pre><c |
| 32ce0 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 | ode.class="zig">comptime.{.....c |
| 32d00 | 6f 6e 73 74 20 78 20 3d 20 40 73 68 6c 45 78 61 63 74 28 75 38 28 30 62 30 31 30 31 30 31 30 31 | onst.x.=.@shlExact(u8(0b01010101 |
| 32d20 | 29 2c 20 32 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 | ),.2);.}</code></pre><pre><code. |
| 32d40 | 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 | class="shell">$.zig.test.test.zi |
| 32d60 | 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f | g.<span.class="t0_1">/home/andy/ |
| 32d80 | 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 32 3a 31 35 | dev/zig/docgen_tmp/test.zig:2:15 |
| 32da0 | 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 | :.</span><span.class="t31_1">err |
| 32dc0 | 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 6f 70 | or:</span><span.class="t0_1">.op |
| 32de0 | 65 72 61 74 69 6f 6e 20 63 61 75 73 65 64 20 6f 76 65 72 66 6c 6f 77 3c 2f 73 70 61 6e 3e 0a 20 | eration.caused.overflow</span>.. |
| 32e00 | 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 6c 45 78 61 63 74 28 75 38 28 30 62 30 31 30 31 | ...const.x.=.@shlExact(u8(0b0101 |
| 32e20 | 30 31 30 31 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 | 0101),.2);...............<span.c |
| 32e40 | 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 | lass="t32_1">^</span>.</code></p |
| 32e60 | 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 | re>........<p>At.runtime.crashes |
| 32e80 | 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 6c 65 66 74 20 73 68 69 | .with.the.message.<code>left.shi |
| 32ea0 | 66 74 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 74 73 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 | ft.overflowed.bits</code>.and.a. |
| 32ec0 | 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 | stack.trace.</p>..............<h |
| 32ee0 | 32 20 69 64 3d 22 45 78 61 63 74 2d 52 69 67 68 74 2d 53 68 69 66 74 2d 4f 76 65 72 66 6c 6f 77 | 2.id="Exact-Right-Shift-Overflow |
| 32f00 | 22 3e 45 78 61 63 74 20 52 69 67 68 74 20 53 68 69 66 74 20 4f 76 65 72 66 6c 6f 77 3c 2f 68 32 | ">Exact.Right.Shift.Overflow</h2 |
| 32f20 | 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e | >........<p>At.compile-time:</p> |
| 32f40 | 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c | .......<p.class="file">test.zig< |
| 32f60 | 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 | /p><pre><code.class="zig">compti |
| 32f80 | 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 72 45 78 61 63 74 28 75 38 28 | me.{.....const.x.=.@shrExact(u8( |
| 32fa0 | 30 62 31 30 31 30 31 30 31 30 29 2c 20 32 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c | 0b10101010),.2);.}</code></pre>< |
| 32fc0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 | pre><code.class="shell">$.zig.te |
| 32fe0 | 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f | st.test.zig.<span.class="t0_1">/ |
| 33000 | 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 | home/andy/dev/zig/docgen_tmp/tes |
| 33020 | 74 2e 7a 69 67 3a 32 3a 31 35 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 | t.zig:2:15:.</span><span.class=" |
| 33040 | 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d | t31_1">error:</span><span.class= |
| 33060 | 22 74 30 5f 31 22 3e 20 65 78 61 63 74 20 73 68 69 66 74 20 73 68 69 66 74 65 64 20 6f 75 74 20 | "t0_1">.exact.shift.shifted.out. |
| 33080 | 31 20 62 69 74 73 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 78 20 3d 20 40 73 68 72 | 1.bits</span>.....const.x.=.@shr |
| 330a0 | 45 78 61 63 74 28 75 38 28 30 62 31 30 31 30 31 30 31 30 29 2c 20 32 29 3b 0a 20 20 20 20 20 20 | Exact(u8(0b10101010),.2);....... |
| 330c0 | 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 | ........<span.class="t32_1">^</s |
| 330e0 | 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 | pan>.</code></pre>........<p>At. |
| 33100 | 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 | runtime.crashes.with.the.message |
| 33120 | 20 3c 63 6f 64 65 3e 72 69 67 68 74 20 73 68 69 66 74 20 6f 76 65 72 66 6c 6f 77 65 64 20 62 69 | .<code>right.shift.overflowed.bi |
| 33140 | 74 73 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e | ts</code>.and.a.stack.trace.</p> |
| 33160 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 44 69 76 69 73 69 6f 6e 2d 62 | ..............<h2.id="Division-b |
| 33180 | 79 2d 5a 65 72 6f 22 3e 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 68 32 3e 0a 0a 20 | y-Zero">Division.by.Zero</h2>... |
| 331a0 | 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 | .....<p>At.compile-time:</p>.... |
| 331c0 | 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c | ...<p.class="file">test.zig</p>< |
| 331e0 | 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b | pre><code.class="zig">comptime.{ |
| 33200 | 0a 20 20 20 20 63 6f 6e 73 74 20 61 3a 20 69 33 32 20 3d 20 31 3b 0a 20 20 20 20 63 6f 6e 73 74 | .....const.a:.i32.=.1;.....const |
| 33220 | 20 62 3a 20 69 33 32 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 2f 20 62 | .b:.i32.=.0;.....const.c.=.a./.b |
| 33240 | 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 | ;.}</code></pre><pre><code.class |
| 33260 | 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 | ="shell">$.zig.test.test.zig.<sp |
| 33280 | 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a | an.class="t0_1">/home/andy/dev/z |
| 332a0 | 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 31 37 3a 20 3c 2f 73 | ig/docgen_tmp/test.zig:4:17:.</s |
| 332c0 | 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f | pan><span.class="t31_1">error:</ |
| 332e0 | 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 64 69 76 69 73 69 6f | span><span.class="t0_1">.divisio |
| 33300 | 6e 20 62 79 20 7a 65 72 6f 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 | n.by.zero</span>.....const.c.=.a |
| 33320 | 20 2f 20 62 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 | ./.b;.................<span.clas |
| 33340 | 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | s="t32_1">^</span>.</code></pre> |
| 33360 | 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 | ........<p>At.runtime.crashes.wi |
| 33380 | 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 64 69 76 69 73 69 6f 6e 20 62 79 | th.the.message.<code>division.by |
| 333a0 | 20 7a 65 72 6f 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c | .zero</code>.and.a.stack.trace.< |
| 333c0 | 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 52 65 6d 61 69 6e | /p>...............<h2.id="Remain |
| 333e0 | 64 65 72 2d 44 69 76 69 73 69 6f 6e 2d 62 79 2d 5a 65 72 6f 22 3e 52 65 6d 61 69 6e 64 65 72 20 | der-Division-by-Zero">Remainder. |
| 33400 | 44 69 76 69 73 69 6f 6e 20 62 79 20 5a 65 72 6f 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e | Division.by.Zero</h2>........<p> |
| 33420 | 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c | At.compile-time:</p>.......<p.cl |
| 33440 | 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 | ass="file">test.zig</p><pre><cod |
| 33460 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e | e.class="zig">comptime.{.....con |
| 33480 | 73 74 20 61 3a 20 69 33 32 20 3d 20 31 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 62 3a 20 69 33 32 | st.a:.i32.=.10;.....const.b:.i32 |
| 334a0 | 20 3d 20 30 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 25 20 62 3b 0a 7d 3c 2f 63 6f | .=.0;.....const.c.=.a.%.b;.}</co |
| 334c0 | 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c | de></pre><pre><code.class="shell |
| 334e0 | 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 | ">$.zig.test.test.zig.<span.clas |
| 33500 | 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 | s="t0_1">/home/andy/dev/zig/docg |
| 33520 | 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 31 37 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 | en_tmp/test.zig:4:17:.</span><sp |
| 33540 | 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 | an.class="t31_1">error:</span><s |
| 33560 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 | pan.class="t0_1">.division.by.ze |
| 33580 | 72 6f 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 63 20 3d 20 61 20 25 20 62 3b 0a 20 | ro</span>.....const.c.=.a.%.b;.. |
| 335a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f | ...............<span.class="t32_ |
| 335c0 | 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 | 1">^</span>.</code></pre>....... |
| 335e0 | 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 | .<p>At.runtime.crashes.with.the. |
| 33600 | 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 72 65 6d 61 69 6e 64 65 72 20 64 69 76 69 73 69 6f 6e | message.<code>remainder.division |
| 33620 | 20 62 79 20 7a 65 72 6f 3c 2f 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 | .by.zero</code>.and.a.stack.trac |
| 33640 | 65 2e 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 45 78 61 | e.</p>...............<h2.id="Exa |
| 33660 | 63 74 2d 44 69 76 69 73 69 6f 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 45 78 61 63 74 20 44 69 76 | ct-Division-Remainder">Exact.Div |
| 33680 | 69 73 69 6f 6e 20 52 65 6d 61 69 6e 64 65 72 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 | ision.Remainder</h2>........<p>T |
| 336a0 | 4f 44 4f 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 53 6c 69 | ODO</p>..............<h2.id="Sli |
| 336c0 | 63 65 2d 57 69 64 65 6e 2d 52 65 6d 61 69 6e 64 65 72 22 3e 53 6c 69 63 65 20 57 69 64 65 6e 20 | ce-Widen-Remainder">Slice.Widen. |
| 336e0 | 52 65 6d 61 69 6e 64 65 72 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3c 2f 70 | Remainder</h2>........<p>TODO</p |
| 33700 | 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 74 74 65 6d 70 74 2d 74 | >..............<h2.id="Attempt-t |
| 33720 | 6f 2d 55 6e 77 72 61 70 2d 4e 75 6c 6c 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 | o-Unwrap-Null">Attempt.to.Unwrap |
| 33740 | 20 4e 75 6c 6c 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d | .Null</h2>........<p>At.compile- |
| 33760 | 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e | time:</p>.......<p.class="file"> |
| 33780 | 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | test.zig</p><pre><code.class="zi |
| 337a0 | 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6c 6c 61 62 6c 65 | g">comptime.{.....const.nullable |
| 337c0 | 5f 6e 75 6d 62 65 72 3a 20 3f 69 33 32 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 63 6f 6e 73 74 20 | _number:.?i32.=.null;.....const. |
| 337e0 | 6e 75 6d 62 65 72 20 3d 20 3f 3f 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 72 3b 0a 7d 3c 2f 63 | number.=.??nullable_number;.}</c |
| 33800 | 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c | ode></pre><pre><code.class="shel |
| 33820 | 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 | l">$.zig.test.test.zig.<span.cla |
| 33840 | 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 | ss="t0_1">/home/andy/dev/zig/doc |
| 33860 | 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 33 3a 32 30 3a 20 3c 2f 73 70 61 6e 3e 3c 73 | gen_tmp/test.zig:3:20:.</span><s |
| 33880 | 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c | pan.class="t31_1">error:</span>< |
| 338a0 | 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 75 6e 61 62 6c 65 20 74 6f 20 75 6e 77 | span.class="t0_1">.unable.to.unw |
| 338c0 | 72 61 70 20 6e 75 6c 6c 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 | rap.null</span>.....const.number |
| 338e0 | 20 3d 20 3f 3f 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 72 3b 0a 20 20 20 20 20 20 20 20 20 20 | .=.??nullable_number;........... |
| 33900 | 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f | .........<span.class="t32_1">^</ |
| 33920 | 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 | span>.</code></pre>........<p>At |
| 33940 | 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 | .runtime.crashes.with.the.messag |
| 33960 | 65 20 3c 63 6f 64 65 3e 61 74 74 65 6d 70 74 20 74 6f 20 75 6e 77 72 61 70 20 6e 75 6c 6c 3c 2f | e.<code>attempt.to.unwrap.null</ |
| 33980 | 63 6f 64 65 3e 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 | code>.and.a.stack.trace.</p>.... |
| 339a0 | 20 20 20 3c 70 3e 4f 6e 65 20 77 61 79 20 74 6f 20 61 76 6f 69 64 20 74 68 69 73 20 63 72 61 73 | ...<p>One.way.to.avoid.this.cras |
| 339c0 | 68 20 69 73 20 74 6f 20 74 65 73 74 20 66 6f 72 20 6e 75 6c 6c 20 69 6e 73 74 65 61 64 20 6f 66 | h.is.to.test.for.null.instead.of |
| 339e0 | 20 61 73 73 75 6d 69 6e 67 20 6e 6f 6e 2d 6e 75 6c 6c 2c 20 77 69 74 68 0a 20 20 20 20 20 20 74 | .assuming.non-null,.with.......t |
| 33a00 | 68 65 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 73 73 69 6f 6e 3a 3c 2f | he.<code>if</code>.expression:</ |
| 33a20 | 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 | p>.......<p.class="file">test.zi |
| 33a40 | 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 | g</p><pre><code.class="zig">cons |
| 33a60 | 74 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b | t.warn.=.@import("std" |
| 33a80 | 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 76 6f 69 64 | ).debug.warn;.pub.fn.main().void |
| 33aa0 | 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d 62 65 72 3a 20 3f 69 | .{.....const.nullable_number:.?i |
| 33ac0 | 33 32 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 69 66 20 28 6e 75 6c 6c 61 62 6c 65 5f 6e 75 6d | 32.=.null;......if.(nullable_num |
| 33ae0 | 62 65 72 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 75 | ber).|number|.{.........warn(&qu |
| 33b00 | 6f 74 3b 67 6f 74 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 20 6e 75 6d 62 65 | ot;got.number:.{}\n",.numbe |
| 33b20 | 72 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 | r);.....}.else.{.........warn(&q |
| 33b40 | 75 6f 74 3b 69 74 27 73 20 6e 75 6c 6c 5c 6e 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 7d 0a 7d 3c | uot;it's.null\n");.....}.}< |
| 33b60 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 | /code></pre><pre><code.class="sh |
| 33b80 | 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 | ell">$.zig.build-exe.test.zig.$. |
| 33ba0 | 2e 2f 74 65 73 74 0a 69 74 27 73 20 6e 75 6c 6c 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a | ./test.it's.null.</code></pre>.. |
| 33bc0 | 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 41 74 74 65 6d 70 74 2d 74 6f 2d | .............<h2.id="Attempt-to- |
| 33be0 | 55 6e 77 72 61 70 2d 45 72 72 6f 72 22 3e 41 74 74 65 6d 70 74 20 74 6f 20 55 6e 77 72 61 70 20 | Unwrap-Error">Attempt.to.Unwrap. |
| 33c00 | 45 72 72 6f 72 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 63 6f 6d 70 69 6c 65 2d | Error</h2>........<p>At.compile- |
| 33c20 | 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e | time:</p>.......<p.class="file"> |
| 33c40 | 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 | test.zig</p><pre><code.class="zi |
| 33c60 | 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6e 75 6d 62 65 72 20 3d | g">comptime.{.....const.number.= |
| 33c80 | 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 20 63 61 74 63 68 20 75 6e 72 65 61 63 68 | .getNumberOrFail().catch.unreach |
| 33ca0 | 61 62 6c 65 3b 0a 7d 0a 0a 66 6e 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 20 21 69 | able;.}..fn.getNumberOrFail().!i |
| 33cc0 | 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 2e 55 6e 61 62 6c 65 54 6f 52 65 | 32.{.....return.error.UnableToRe |
| 33ce0 | 74 75 72 6e 4e 75 6d 62 65 72 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c | turnNumber;.}</code></pre><pre>< |
| 33d00 | 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 | code.class="shell">$.zig.test.te |
| 33d20 | 73 74 2e 7a 69 67 0a 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f | st.zig.<span.class="t0_1">/home/ |
| 33d40 | 61 6e 64 79 2f 64 65 76 2f 7a 69 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 | andy/dev/zig/docgen_tmp/test.zig |
| 33d60 | 3a 32 3a 33 38 3a 20 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 | :2:38:.</span><span.class="t31_1 |
| 33d80 | 22 3e 65 72 72 6f 72 3a 3c 2f 73 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 | ">error:</span><span.class="t0_1 |
| 33da0 | 22 3e 20 63 61 75 67 68 74 20 75 6e 65 78 70 65 63 74 65 64 20 65 72 72 6f 72 20 27 55 6e 61 62 | ">.caught.unexpected.error.'Unab |
| 33dc0 | 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 27 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 63 6f 6e | leToReturnNumber'</span>.....con |
| 33de0 | 73 74 20 6e 75 6d 62 65 72 20 3d 20 67 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 20 63 61 | st.number.=.getNumberOrFail().ca |
| 33e00 | 74 63 68 20 75 6e 72 65 61 63 68 61 62 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tch.unreachable;................ |
| 33e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 | ......................<span.clas |
| 33e40 | 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e | s="t32_1">^</span>.</code></pre> |
| 33e60 | 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 | ........<p>At.runtime.crashes.wi |
| 33e80 | 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 20 3c 63 6f 64 65 3e 61 74 74 65 6d 70 74 20 74 6f 20 | th.the.message.<code>attempt.to. |
| 33ea0 | 75 6e 77 72 61 70 20 65 72 72 6f 72 3a 20 45 72 72 6f 72 43 6f 64 65 3c 2f 63 6f 64 65 3e 20 61 | unwrap.error:.ErrorCode</code>.a |
| 33ec0 | 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 4f | nd.a.stack.trace.</p>.......<p>O |
| 33ee0 | 6e 65 20 77 61 79 20 74 6f 20 61 76 6f 69 64 20 74 68 69 73 20 63 72 61 73 68 20 69 73 20 74 6f | ne.way.to.avoid.this.crash.is.to |
| 33f00 | 20 74 65 73 74 20 66 6f 72 20 61 6e 20 65 72 72 6f 72 20 69 6e 73 74 65 61 64 20 6f 66 20 61 73 | .test.for.an.error.instead.of.as |
| 33f20 | 73 75 6d 69 6e 67 20 61 20 73 75 63 63 65 73 73 66 75 6c 20 72 65 73 75 6c 74 2c 20 77 69 74 68 | suming.a.successful.result,.with |
| 33f40 | 0a 20 20 20 20 20 20 74 68 65 20 3c 63 6f 64 65 3e 69 66 3c 2f 63 6f 64 65 3e 20 65 78 70 72 65 | .......the.<code>if</code>.expre |
| 33f60 | 73 73 69 6f 6e 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 | ssion:</p>.......<p.class="file" |
| 33f80 | 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a | >test.zig</p><pre><code.class="z |
| 33fa0 | 69 67 22 3e 63 6f 6e 73 74 20 77 61 72 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 | ig">const.warn.=.@import("s |
| 33fc0 | 74 64 26 71 75 6f 74 3b 29 2e 64 65 62 75 67 2e 77 61 72 6e 3b 0a 0a 70 75 62 20 66 6e 20 6d 61 | td").debug.warn;..pub.fn.ma |
| 33fe0 | 69 6e 28 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 75 6c 74 20 3d 20 67 | in().void.{.....const.result.=.g |
| 34000 | 65 74 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 3b 0a 0a 20 20 20 20 69 66 20 28 72 65 73 75 6c | etNumberOrFail();......if.(resul |
| 34020 | 74 29 20 7c 6e 75 6d 62 65 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 6e 28 26 71 75 6f 74 | t).|number|.{.........warn(" |
| 34040 | 3b 67 6f 74 20 6e 75 6d 62 65 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 20 6e 75 6d 62 65 72 29 | ;got.number:.{}\n",.number) |
| 34060 | 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7c 65 72 72 7c 20 7b 0a 20 20 20 20 20 20 20 20 77 61 72 | ;.....}.else.|err|.{.........war |
| 34080 | 6e 28 26 71 75 6f 74 3b 67 6f 74 20 65 72 72 6f 72 3a 20 7b 7d 5c 6e 26 71 75 6f 74 3b 2c 20 40 | n("got.error:.{}\n",.@ |
| 340a0 | 65 72 72 6f 72 4e 61 6d 65 28 65 72 72 29 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 66 6e 20 67 65 74 | errorName(err));.....}.}..fn.get |
| 340c0 | 4e 75 6d 62 65 72 4f 72 46 61 69 6c 28 29 20 21 69 33 32 20 7b 0a 20 20 20 20 72 65 74 75 72 6e | NumberOrFail().!i32.{.....return |
| 340e0 | 20 65 72 72 6f 72 2e 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e 75 6d 62 65 72 3b 0a 7d 3c 2f | .error.UnableToReturnNumber;.}</ |
| 34100 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 | code></pre><pre><code.class="she |
| 34120 | 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 0a 24 20 2e | ll">$.zig.build-exe.test.zig.$.. |
| 34140 | 2f 74 65 73 74 0a 67 6f 74 20 65 72 72 6f 72 3a 20 55 6e 61 62 6c 65 54 6f 52 65 74 75 72 6e 4e | /test.got.error:.UnableToReturnN |
| 34160 | 75 6d 62 65 72 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 | umber.</code></pre>............. |
| 34180 | 20 20 3c 68 32 20 69 64 3d 22 49 6e 76 61 6c 69 64 2d 45 72 72 6f 72 2d 43 6f 64 65 22 3e 49 6e | ..<h2.id="Invalid-Error-Code">In |
| 341a0 | 76 61 6c 69 64 20 45 72 72 6f 72 20 43 6f 64 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e | valid.Error.Code</h2>........<p> |
| 341c0 | 41 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c | At.compile-time:</p>.......<p.cl |
| 341e0 | 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 | ass="file">test.zig</p><pre><cod |
| 34200 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6d 70 74 69 6d 65 20 7b 0a 20 20 20 20 63 6f 6e | e.class="zig">comptime.{.....con |
| 34220 | 73 74 20 65 72 72 20 3d 20 65 72 72 6f 72 2e 41 6e 45 72 72 6f 72 3b 0a 20 20 20 20 63 6f 6e 73 | st.err.=.error.AnError;.....cons |
| 34240 | 74 20 6e 75 6d 62 65 72 20 3d 20 75 33 32 28 65 72 72 29 20 2b 20 31 30 3b 0a 20 20 20 20 63 6f | t.number.=.u32(err).+.10;.....co |
| 34260 | 6e 73 74 20 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 65 72 72 6f 72 28 6e 75 6d 62 65 72 29 3b | nst.invalid_err.=.error(number); |
| 34280 | 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d | .}</code></pre><pre><code.class= |
| 342a0 | 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 65 73 74 20 74 65 73 74 2e 7a 69 67 0a 3c 73 70 61 | "shell">$.zig.test.test.zig.<spa |
| 342c0 | 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 2f 68 6f 6d 65 2f 61 6e 64 79 2f 64 65 76 2f 7a 69 | n.class="t0_1">/home/andy/dev/zi |
| 342e0 | 67 2f 64 6f 63 67 65 6e 5f 74 6d 70 2f 74 65 73 74 2e 7a 69 67 3a 34 3a 33 30 3a 20 3c 2f 73 70 | g/docgen_tmp/test.zig:4:30:.</sp |
| 34300 | 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 31 5f 31 22 3e 65 72 72 6f 72 3a 3c 2f 73 | an><span.class="t31_1">error:</s |
| 34320 | 70 61 6e 3e 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 30 5f 31 22 3e 20 69 6e 74 65 67 65 72 20 | pan><span.class="t0_1">.integer. |
| 34340 | 76 61 6c 75 65 20 31 31 20 72 65 70 72 65 73 65 6e 74 73 20 6e 6f 20 65 72 72 6f 72 3c 2f 73 70 | value.11.represents.no.error</sp |
| 34360 | 61 6e 3e 0a 20 20 20 20 63 6f 6e 73 74 20 69 6e 76 61 6c 69 64 5f 65 72 72 20 3d 20 65 72 72 6f | an>.....const.invalid_err.=.erro |
| 34380 | 72 28 6e 75 6d 62 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r(number);...................... |
| 343a0 | 20 20 20 20 20 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 3d 22 74 33 32 5f 31 22 3e 5e 3c 2f 73 | ........<span.class="t32_1">^</s |
| 343c0 | 70 61 6e 3e 0a 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 41 74 20 | pan>.</code></pre>........<p>At. |
| 343e0 | 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 6d 65 73 73 61 67 65 | runtime.crashes.with.the.message |
| 34400 | 20 3c 63 6f 64 65 3e 69 6e 76 61 6c 69 64 20 65 72 72 6f 72 20 63 6f 64 65 3c 2f 63 6f 64 65 3e | .<code>invalid.error.code</code> |
| 34420 | 20 61 6e 64 20 61 20 73 74 61 63 6b 20 74 72 61 63 65 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 | .and.a.stack.trace.</p>......... |
| 34440 | 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6e 76 61 6c 69 64 2d 45 6e 75 6d 2d 43 61 73 74 22 3e | .....<h2.id="Invalid-Enum-Cast"> |
| 34460 | 49 6e 76 61 6c 69 64 20 45 6e 75 6d 20 43 61 73 74 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 | Invalid.Enum.Cast</h2>........<p |
| 34480 | 3e 54 4f 44 4f 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 | >TODO</p>...............<h2.id=" |
| 344a0 | 49 6e 63 6f 72 72 65 63 74 2d 50 6f 69 6e 74 65 72 2d 41 6c 69 67 6e 6d 65 6e 74 22 3e 49 6e 63 | Incorrect-Pointer-Alignment">Inc |
| 344c0 | 6f 72 72 65 63 74 20 50 6f 69 6e 74 65 72 20 41 6c 69 67 6e 6d 65 6e 74 3c 2f 68 32 3e 0a 0a 20 | orrect.Pointer.Alignment</h2>... |
| 344e0 | 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c | .....<p>TODO</p>...............< |
| 34500 | 68 32 20 69 64 3d 22 57 72 6f 6e 67 2d 55 6e 69 6f 6e 2d 46 69 65 6c 64 2d 41 63 63 65 73 73 22 | h2.id="Wrong-Union-Field-Access" |
| 34520 | 3e 57 72 6f 6e 67 20 55 6e 69 6f 6e 20 46 69 65 6c 64 20 41 63 63 65 73 73 3c 2f 68 32 3e 0a 0a | >Wrong.Union.Field.Access</h2>.. |
| 34540 | 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3c 2f 70 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | ......<p>TODO</p>............... |
| 34560 | 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 4d 65 6d 6f 72 79 22 3e 4d 65 6d 6f 72 79 3c 2f 68 | .......<h1.id="Memory">Memory</h |
| 34580 | 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 6e 6f 20 64 65 | 1>........<p>TODO:.explain.no.de |
| 345a0 | 66 61 75 6c 74 20 61 6c 6c 6f 63 61 74 6f 72 20 69 6e 20 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 | fault.allocator.in.zig</p>...... |
| 345c0 | 20 3c 70 3e 54 4f 44 4f 3a 20 73 68 6f 77 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 65 20 61 6c | .<p>TODO:.show.how.to.use.the.al |
| 345e0 | 6c 6f 63 61 74 6f 72 20 69 6e 74 65 72 66 61 63 65 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 | locator.interface</p>.......<p>T |
| 34600 | 4f 44 4f 3a 20 6d 65 6e 74 69 6f 6e 20 64 65 62 75 67 20 61 6c 6c 6f 63 61 74 6f 72 3c 2f 70 3e | ODO:.mention.debug.allocator</p> |
| 34620 | 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 69 6d 70 6f 72 74 61 6e 63 65 20 6f 66 20 63 68 | .......<p>TODO:.importance.of.ch |
| 34640 | 65 63 6b 69 6e 67 20 66 6f 72 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 66 61 69 6c 75 72 65 3c 2f 70 | ecking.for.allocation.failure</p |
| 34660 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6d 65 6e 74 69 6f 6e 20 6f 76 65 72 63 6f 6d | >.......<p>TODO:.mention.overcom |
| 34680 | 6d 69 74 20 61 6e 64 20 74 68 65 20 4f 4f 4d 20 4b 69 6c 6c 65 72 3c 2f 70 3e 0a 20 20 20 20 20 | mit.and.the.OOM.Killer</p>...... |
| 346a0 | 20 3c 70 3e 54 4f 44 4f 3a 20 6d 65 6e 74 69 6f 6e 20 72 65 63 75 72 73 69 6f 6e 3c 2f 70 3e 0a | .<p>TODO:.mention.recursion</p>. |
| 346c0 | 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c | ......<p>See.also:</p><ul>.<li>< |
| 346e0 | 61 20 68 72 65 66 3d 22 23 50 6f 69 6e 74 65 72 73 22 3e 50 6f 69 6e 74 65 72 73 3c 2f 61 3e 3c | a.href="#Pointers">Pointers</a>< |
| 34700 | 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 | /li>.</ul>................<h1.id |
| 34720 | 3d 22 43 6f 6d 70 69 6c 65 2d 56 61 72 69 61 62 6c 65 73 22 3e 43 6f 6d 70 69 6c 65 20 56 61 72 | ="Compile-Variables">Compile.Var |
| 34740 | 69 61 62 6c 65 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 43 6f 6d | iables</h1>........<p>.......Com |
| 34760 | 70 69 6c 65 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 61 63 63 65 73 73 69 62 6c 65 20 62 79 | pile.variables.are.accessible.by |
| 34780 | 20 69 6d 70 6f 72 74 69 6e 67 20 74 68 65 20 3c 63 6f 64 65 3e 22 62 75 69 6c 74 69 6e 22 3c 2f | .importing.the.<code>"builtin"</ |
| 347a0 | 63 6f 64 65 3e 20 70 61 63 6b 61 67 65 2c 0a 20 20 20 20 20 20 77 68 69 63 68 20 74 68 65 20 63 | code>.package,.......which.the.c |
| 347c0 | 6f 6d 70 69 6c 65 72 20 6d 61 6b 65 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 65 76 65 72 79 | ompiler.makes.available.to.every |
| 347e0 | 20 5a 69 67 20 73 6f 75 72 63 65 20 66 69 6c 65 2e 20 49 74 20 63 6f 6e 74 61 69 6e 73 0a 20 20 | .Zig.source.file..It.contains... |
| 34800 | 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 63 6f 6e 73 74 61 6e 74 73 20 73 75 63 68 20 | ....compile-time.constants.such. |
| 34820 | 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 61 72 67 65 74 2c 20 65 6e 64 69 61 6e 6e 65 73 | as.the.current.target,.endiannes |
| 34840 | 73 2c 20 61 6e 64 20 72 65 6c 65 61 73 65 20 6d 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a | s,.and.release.mode........</p>. |
| 34860 | 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e | ......<pre><code.class="zig">con |
| 34880 | 73 74 20 62 75 69 6c 74 69 6e 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 62 75 69 6c 74 | st.builtin.=.@import("built |
| 348a0 | 69 6e 26 71 75 6f 74 3b 29 3b 0a 63 6f 6e 73 74 20 73 65 70 61 72 61 74 6f 72 20 3d 20 69 66 20 | in");.const.separator.=.if. |
| 348c0 | 28 62 75 69 6c 74 69 6e 2e 6f 73 20 3d 3d 20 62 75 69 6c 74 69 6e 2e 4f 73 2e 77 69 6e 64 6f 77 | (builtin.os.==.builtin.Os.window |
| 348e0 | 73 29 20 27 5c 5c 27 20 65 6c 73 65 20 27 2f 27 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 | s).'\\'.else.'/';</code></pre>.. |
| 34900 | 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 45 78 61 6d 70 6c 65 20 6f 66 20 77 68 61 74 20 69 | .....<p>.......Example.of.what.i |
| 34920 | 73 20 69 6d 70 6f 72 74 65 64 20 77 69 74 68 20 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 62 | s.imported.with.<code>@import("b |
| 34940 | 75 69 6c 74 69 6e 22 29 3c 2f 63 6f 64 65 3e 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 | uiltin")</code>:.......</p>..... |
| 34960 | 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 70 75 62 20 63 6f 6e | ..<pre><code.class="zig">pub.con |
| 34980 | 73 74 20 53 74 61 63 6b 54 72 61 63 65 20 3d 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 69 6e 64 | st.StackTrace.=.struct.{.....ind |
| 349a0 | 65 78 3a 20 75 73 69 7a 65 2c 0a 20 20 20 20 69 6e 73 74 72 75 63 74 69 6f 6e 5f 61 64 64 72 65 | ex:.usize,.....instruction_addre |
| 349c0 | 73 73 65 73 3a 20 5b 5d 75 73 69 7a 65 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 4f 73 20 | sses:.[]usize,.};..pub.const.Os. |
| 349e0 | 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 66 72 65 65 73 74 61 6e 64 69 6e 67 2c 0a 20 20 20 20 61 | =.enum.{.....freestanding,.....a |
| 34a00 | 6e 61 6e 61 73 2c 0a 20 20 20 20 63 6c 6f 75 64 61 62 69 2c 0a 20 20 20 20 64 72 61 67 6f 6e 66 | nanas,.....cloudabi,.....dragonf |
| 34a20 | 6c 79 2c 0a 20 20 20 20 66 72 65 65 62 73 64 2c 0a 20 20 20 20 66 75 63 68 73 69 61 2c 0a 20 20 | ly,.....freebsd,.....fuchsia,... |
| 34a40 | 20 20 69 6f 73 2c 0a 20 20 20 20 6b 66 72 65 65 62 73 64 2c 0a 20 20 20 20 6c 69 6e 75 78 2c 0a | ..ios,.....kfreebsd,.....linux,. |
| 34a60 | 20 20 20 20 6c 76 32 2c 0a 20 20 20 20 6d 61 63 6f 73 78 2c 0a 20 20 20 20 6e 65 74 62 73 64 2c | ....lv2,.....macosx,.....netbsd, |
| 34a80 | 0a 20 20 20 20 6f 70 65 6e 62 73 64 2c 0a 20 20 20 20 73 6f 6c 61 72 69 73 2c 0a 20 20 20 20 77 | .....openbsd,.....solaris,.....w |
| 34aa0 | 69 6e 64 6f 77 73 2c 0a 20 20 20 20 68 61 69 6b 75 2c 0a 20 20 20 20 6d 69 6e 69 78 2c 0a 20 20 | indows,.....haiku,.....minix,... |
| 34ac0 | 20 20 72 74 65 6d 73 2c 0a 20 20 20 20 6e 61 63 6c 2c 0a 20 20 20 20 63 6e 6b 2c 0a 20 20 20 20 | ..rtems,.....nacl,.....cnk,..... |
| 34ae0 | 62 69 74 72 69 67 2c 0a 20 20 20 20 61 69 78 2c 0a 20 20 20 20 63 75 64 61 2c 0a 20 20 20 20 6e | bitrig,.....aix,.....cuda,.....n |
| 34b00 | 76 63 6c 2c 0a 20 20 20 20 61 6d 64 68 73 61 2c 0a 20 20 20 20 70 73 34 2c 0a 20 20 20 20 65 6c | vcl,.....amdhsa,.....ps4,.....el |
| 34b20 | 66 69 61 6d 63 75 2c 0a 20 20 20 20 74 76 6f 73 2c 0a 20 20 20 20 77 61 74 63 68 6f 73 2c 0a 20 | fiamcu,.....tvos,.....watchos,.. |
| 34b40 | 20 20 20 6d 65 73 61 33 64 2c 0a 20 20 20 20 63 6f 6e 74 69 6b 69 2c 0a 20 20 20 20 7a 65 6e 2c | ...mesa3d,.....contiki,.....zen, |
| 34b60 | 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 41 72 63 68 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 | .};..pub.const.Arch.=.enum.{.... |
| 34b80 | 20 61 72 6d 76 38 5f 32 61 2c 0a 20 20 20 20 61 72 6d 76 38 5f 31 61 2c 0a 20 20 20 20 61 72 6d | .armv8_2a,.....armv8_1a,.....arm |
| 34ba0 | 76 38 2c 0a 20 20 20 20 61 72 6d 76 38 72 2c 0a 20 20 20 20 61 72 6d 76 38 6d 5f 62 61 73 65 6c | v8,.....armv8r,.....armv8m_basel |
| 34bc0 | 69 6e 65 2c 0a 20 20 20 20 61 72 6d 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 2c 0a 20 20 20 20 61 72 | ine,.....armv8m_mainline,.....ar |
| 34be0 | 6d 76 37 2c 0a 20 20 20 20 61 72 6d 76 37 65 6d 2c 0a 20 20 20 20 61 72 6d 76 37 6d 2c 0a 20 20 | mv7,.....armv7em,.....armv7m,... |
| 34c00 | 20 20 61 72 6d 76 37 73 2c 0a 20 20 20 20 61 72 6d 76 37 6b 2c 0a 20 20 20 20 61 72 6d 76 37 76 | ..armv7s,.....armv7k,.....armv7v |
| 34c20 | 65 2c 0a 20 20 20 20 61 72 6d 76 36 2c 0a 20 20 20 20 61 72 6d 76 36 6d 2c 0a 20 20 20 20 61 72 | e,.....armv6,.....armv6m,.....ar |
| 34c40 | 6d 76 36 6b 2c 0a 20 20 20 20 61 72 6d 76 36 74 32 2c 0a 20 20 20 20 61 72 6d 76 35 2c 0a 20 20 | mv6k,.....armv6t2,.....armv5,... |
| 34c60 | 20 20 61 72 6d 76 35 74 65 2c 0a 20 20 20 20 61 72 6d 76 34 74 2c 0a 20 20 20 20 61 72 6d 65 62 | ..armv5te,.....armv4t,.....armeb |
| 34c80 | 2c 0a 20 20 20 20 61 61 72 63 68 36 34 2c 0a 20 20 20 20 61 61 72 63 68 36 34 5f 62 65 2c 0a 20 | ,.....aarch64,.....aarch64_be,.. |
| 34ca0 | 20 20 20 61 76 72 2c 0a 20 20 20 20 62 70 66 65 6c 2c 0a 20 20 20 20 62 70 66 65 62 2c 0a 20 20 | ...avr,.....bpfel,.....bpfeb,... |
| 34cc0 | 20 20 68 65 78 61 67 6f 6e 2c 0a 20 20 20 20 6d 69 70 73 2c 0a 20 20 20 20 6d 69 70 73 65 6c 2c | ..hexagon,.....mips,.....mipsel, |
| 34ce0 | 0a 20 20 20 20 6d 69 70 73 36 34 2c 0a 20 20 20 20 6d 69 70 73 36 34 65 6c 2c 0a 20 20 20 20 6d | .....mips64,.....mips64el,.....m |
| 34d00 | 73 70 34 33 30 2c 0a 20 20 20 20 6e 69 6f 73 32 2c 0a 20 20 20 20 70 6f 77 65 72 70 63 2c 0a 20 | sp430,.....nios2,.....powerpc,.. |
| 34d20 | 20 20 20 70 6f 77 65 72 70 63 36 34 2c 0a 20 20 20 20 70 6f 77 65 72 70 63 36 34 6c 65 2c 0a 20 | ...powerpc64,.....powerpc64le,.. |
| 34d40 | 20 20 20 72 36 30 30 2c 0a 20 20 20 20 61 6d 64 67 63 6e 2c 0a 20 20 20 20 72 69 73 63 76 33 32 | ...r600,.....amdgcn,.....riscv32 |
| 34d60 | 2c 0a 20 20 20 20 72 69 73 63 76 36 34 2c 0a 20 20 20 20 73 70 61 72 63 2c 0a 20 20 20 20 73 70 | ,.....riscv64,.....sparc,.....sp |
| 34d80 | 61 72 63 76 39 2c 0a 20 20 20 20 73 70 61 72 63 65 6c 2c 0a 20 20 20 20 73 33 39 30 78 2c 0a 20 | arcv9,.....sparcel,.....s390x,.. |
| 34da0 | 20 20 20 74 63 65 2c 0a 20 20 20 20 74 63 65 6c 65 2c 0a 20 20 20 20 74 68 75 6d 62 2c 0a 20 20 | ...tce,.....tcele,.....thumb,... |
| 34dc0 | 20 20 74 68 75 6d 62 65 62 2c 0a 20 20 20 20 69 33 38 36 2c 0a 20 20 20 20 78 38 36 5f 36 34 2c | ..thumbeb,.....i386,.....x86_64, |
| 34de0 | 0a 20 20 20 20 78 63 6f 72 65 2c 0a 20 20 20 20 6e 76 70 74 78 2c 0a 20 20 20 20 6e 76 70 74 78 | .....xcore,.....nvptx,.....nvptx |
| 34e00 | 36 34 2c 0a 20 20 20 20 6c 65 33 32 2c 0a 20 20 20 20 6c 65 36 34 2c 0a 20 20 20 20 61 6d 64 69 | 64,.....le32,.....le64,.....amdi |
| 34e20 | 6c 2c 0a 20 20 20 20 61 6d 64 69 6c 36 34 2c 0a 20 20 20 20 68 73 61 69 6c 2c 0a 20 20 20 20 68 | l,.....amdil64,.....hsail,.....h |
| 34e40 | 73 61 69 6c 36 34 2c 0a 20 20 20 20 73 70 69 72 2c 0a 20 20 20 20 73 70 69 72 36 34 2c 0a 20 20 | sail64,.....spir,.....spir64,... |
| 34e60 | 20 20 6b 61 6c 69 6d 62 61 76 33 2c 0a 20 20 20 20 6b 61 6c 69 6d 62 61 76 34 2c 0a 20 20 20 20 | ..kalimbav3,.....kalimbav4,..... |
| 34e80 | 6b 61 6c 69 6d 62 61 76 35 2c 0a 20 20 20 20 73 68 61 76 65 2c 0a 20 20 20 20 6c 61 6e 61 69 2c | kalimbav5,.....shave,.....lanai, |
| 34ea0 | 0a 20 20 20 20 77 61 73 6d 33 32 2c 0a 20 20 20 20 77 61 73 6d 36 34 2c 0a 20 20 20 20 72 65 6e | .....wasm32,.....wasm64,.....ren |
| 34ec0 | 64 65 72 73 63 72 69 70 74 33 32 2c 0a 20 20 20 20 72 65 6e 64 65 72 73 63 72 69 70 74 36 34 2c | derscript32,.....renderscript64, |
| 34ee0 | 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 45 6e 76 69 72 6f 6e 20 3d 20 65 6e 75 6d 20 7b 0a | .};..pub.const.Environ.=.enum.{. |
| 34f00 | 20 20 20 20 75 6e 6b 6e 6f 77 6e 2c 0a 20 20 20 20 67 6e 75 2c 0a 20 20 20 20 67 6e 75 61 62 69 | ....unknown,.....gnu,.....gnuabi |
| 34f20 | 36 34 2c 0a 20 20 20 20 67 6e 75 65 61 62 69 2c 0a 20 20 20 20 67 6e 75 65 61 62 69 68 66 2c 0a | 64,.....gnueabi,.....gnueabihf,. |
| 34f40 | 20 20 20 20 67 6e 75 78 33 32 2c 0a 20 20 20 20 63 6f 64 65 31 36 2c 0a 20 20 20 20 65 61 62 69 | ....gnux32,.....code16,.....eabi |
| 34f60 | 2c 0a 20 20 20 20 65 61 62 69 68 66 2c 0a 20 20 20 20 61 6e 64 72 6f 69 64 2c 0a 20 20 20 20 6d | ,.....eabihf,.....android,.....m |
| 34f80 | 75 73 6c 2c 0a 20 20 20 20 6d 75 73 6c 65 61 62 69 2c 0a 20 20 20 20 6d 75 73 6c 65 61 62 69 68 | usl,.....musleabi,.....musleabih |
| 34fa0 | 66 2c 0a 20 20 20 20 6d 73 76 63 2c 0a 20 20 20 20 69 74 61 6e 69 75 6d 2c 0a 20 20 20 20 63 79 | f,.....msvc,.....itanium,.....cy |
| 34fc0 | 67 6e 75 73 2c 0a 20 20 20 20 61 6d 64 6f 70 65 6e 63 6c 2c 0a 20 20 20 20 63 6f 72 65 63 6c 72 | gnus,.....amdopencl,.....coreclr |
| 34fe0 | 2c 0a 20 20 20 20 6f 70 65 6e 63 6c 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 4f 62 6a 65 | ,.....opencl,.};..pub.const.Obje |
| 35000 | 63 74 46 6f 72 6d 61 74 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 75 6e 6b 6e 6f 77 6e 2c 0a 20 | ctFormat.=.enum.{.....unknown,.. |
| 35020 | 20 20 20 63 6f 66 66 2c 0a 20 20 20 20 65 6c 66 2c 0a 20 20 20 20 6d 61 63 68 6f 2c 0a 20 20 20 | ...coff,.....elf,.....macho,.... |
| 35040 | 20 77 61 73 6d 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 47 6c 6f 62 61 6c 4c 69 6e 6b 61 | .wasm,.};..pub.const.GlobalLinka |
| 35060 | 67 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 49 6e 74 65 72 6e 61 6c 2c 0a 20 20 20 20 53 74 | ge.=.enum.{.....Internal,.....St |
| 35080 | 72 6f 6e 67 2c 0a 20 20 20 20 57 65 61 6b 2c 0a 20 20 20 20 4c 69 6e 6b 4f 6e 63 65 2c 0a 7d 3b | rong,.....Weak,.....LinkOnce,.}; |
| 350a0 | 0a 0a 70 75 62 20 63 6f 6e 73 74 20 41 74 6f 6d 69 63 4f 72 64 65 72 20 3d 20 65 6e 75 6d 20 7b | ..pub.const.AtomicOrder.=.enum.{ |
| 350c0 | 0a 20 20 20 20 55 6e 6f 72 64 65 72 65 64 2c 0a 20 20 20 20 4d 6f 6e 6f 74 6f 6e 69 63 2c 0a 20 | .....Unordered,.....Monotonic,.. |
| 350e0 | 20 20 20 41 63 71 75 69 72 65 2c 0a 20 20 20 20 52 65 6c 65 61 73 65 2c 0a 20 20 20 20 41 63 71 | ...Acquire,.....Release,.....Acq |
| 35100 | 52 65 6c 2c 0a 20 20 20 20 53 65 71 43 73 74 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 4d | Rel,.....SeqCst,.};..pub.const.M |
| 35120 | 6f 64 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 44 65 62 75 67 2c 0a 20 20 20 20 52 65 6c 65 | ode.=.enum.{.....Debug,.....Rele |
| 35140 | 61 73 65 53 61 66 65 2c 0a 20 20 20 20 52 65 6c 65 61 73 65 46 61 73 74 2c 0a 7d 3b 0a 0a 70 75 | aseSafe,.....ReleaseFast,.};..pu |
| 35160 | 62 20 63 6f 6e 73 74 20 54 79 70 65 49 64 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 54 79 70 65 | b.const.TypeId.=.enum.{.....Type |
| 35180 | 2c 0a 20 20 20 20 56 6f 69 64 2c 0a 20 20 20 20 42 6f 6f 6c 2c 0a 20 20 20 20 4e 6f 52 65 74 75 | ,.....Void,.....Bool,.....NoRetu |
| 351a0 | 72 6e 2c 0a 20 20 20 20 49 6e 74 2c 0a 20 20 20 20 46 6c 6f 61 74 2c 0a 20 20 20 20 50 6f 69 6e | rn,.....Int,.....Float,.....Poin |
| 351c0 | 74 65 72 2c 0a 20 20 20 20 41 72 72 61 79 2c 0a 20 20 20 20 53 74 72 75 63 74 2c 0a 20 20 20 20 | ter,.....Array,.....Struct,..... |
| 351e0 | 46 6c 6f 61 74 4c 69 74 65 72 61 6c 2c 0a 20 20 20 20 49 6e 74 4c 69 74 65 72 61 6c 2c 0a 20 20 | FloatLiteral,.....IntLiteral,... |
| 35200 | 20 20 55 6e 64 65 66 69 6e 65 64 4c 69 74 65 72 61 6c 2c 0a 20 20 20 20 4e 75 6c 6c 4c 69 74 65 | ..UndefinedLiteral,.....NullLite |
| 35220 | 72 61 6c 2c 0a 20 20 20 20 4e 75 6c 6c 61 62 6c 65 2c 0a 20 20 20 20 45 72 72 6f 72 55 6e 69 6f | ral,.....Nullable,.....ErrorUnio |
| 35240 | 6e 2c 0a 20 20 20 20 45 72 72 6f 72 2c 0a 20 20 20 20 45 6e 75 6d 2c 0a 20 20 20 20 55 6e 69 6f | n,.....Error,.....Enum,.....Unio |
| 35260 | 6e 2c 0a 20 20 20 20 46 6e 2c 0a 20 20 20 20 4e 61 6d 65 73 70 61 63 65 2c 0a 20 20 20 20 42 6c | n,.....Fn,.....Namespace,.....Bl |
| 35280 | 6f 63 6b 2c 0a 20 20 20 20 42 6f 75 6e 64 46 6e 2c 0a 20 20 20 20 41 72 67 54 75 70 6c 65 2c 0a | ock,.....BoundFn,.....ArgTuple,. |
| 352a0 | 20 20 20 20 4f 70 61 71 75 65 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 46 6c 6f 61 74 4d | ....Opaque,.};..pub.const.FloatM |
| 352c0 | 6f 64 65 20 3d 20 65 6e 75 6d 20 7b 0a 20 20 20 20 4f 70 74 69 6d 69 7a 65 64 2c 0a 20 20 20 20 | ode.=.enum.{.....Optimized,..... |
| 352e0 | 53 74 72 69 63 74 2c 0a 7d 3b 0a 0a 70 75 62 20 63 6f 6e 73 74 20 45 6e 64 69 61 6e 20 3d 20 65 | Strict,.};..pub.const.Endian.=.e |
| 35300 | 6e 75 6d 20 7b 0a 20 20 20 20 42 69 67 2c 0a 20 20 20 20 4c 69 74 74 6c 65 2c 0a 7d 3b 0a 0a 70 | num.{.....Big,.....Little,.};..p |
| 35320 | 75 62 20 63 6f 6e 73 74 20 65 6e 64 69 61 6e 20 3d 20 45 6e 64 69 61 6e 2e 4c 69 74 74 6c 65 3b | ub.const.endian.=.Endian.Little; |
| 35340 | 0a 70 75 62 20 63 6f 6e 73 74 20 69 73 5f 74 65 73 74 20 3d 20 66 61 6c 73 65 3b 0a 70 75 62 20 | .pub.const.is_test.=.false;.pub. |
| 35360 | 63 6f 6e 73 74 20 6f 73 20 3d 20 4f 73 2e 6c 69 6e 75 78 3b 0a 70 75 62 20 63 6f 6e 73 74 20 61 | const.os.=.Os.linux;.pub.const.a |
| 35380 | 72 63 68 20 3d 20 41 72 63 68 2e 78 38 36 5f 36 34 3b 0a 70 75 62 20 63 6f 6e 73 74 20 65 6e 76 | rch.=.Arch.x86_64;.pub.const.env |
| 353a0 | 69 72 6f 6e 20 3d 20 45 6e 76 69 72 6f 6e 2e 67 6e 75 3b 0a 70 75 62 20 63 6f 6e 73 74 20 6f 62 | iron.=.Environ.gnu;.pub.const.ob |
| 353c0 | 6a 65 63 74 5f 66 6f 72 6d 61 74 20 3d 20 4f 62 6a 65 63 74 46 6f 72 6d 61 74 2e 65 6c 66 3b 0a | ject_format.=.ObjectFormat.elf;. |
| 353e0 | 70 75 62 20 63 6f 6e 73 74 20 6d 6f 64 65 20 3d 20 4d 6f 64 65 2e 44 65 62 75 67 3b 0a 70 75 62 | pub.const.mode.=.Mode.Debug;.pub |
| 35400 | 20 63 6f 6e 73 74 20 6c 69 6e 6b 5f 6c 69 62 63 20 3d 20 66 61 6c 73 65 3b 0a 70 75 62 20 63 6f | .const.link_libc.=.false;.pub.co |
| 35420 | 6e 73 74 20 68 61 76 65 5f 65 72 72 6f 72 5f 72 65 74 75 72 6e 5f 74 72 61 63 69 6e 67 20 3d 20 | nst.have_error_return_tracing.=. |
| 35440 | 74 72 75 65 3b 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 | true;</code></pre>.......<p>See. |
| 35460 | 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 42 75 69 6c | also:</p><ul>.<li><a.href="#Buil |
| 35480 | 64 2d 4d 6f 64 65 22 3e 42 75 69 6c 64 20 4d 6f 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c | d-Mode">Build.Mode</a></li>.</ul |
| 354a0 | 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 52 6f 6f 74 2d 53 6f 75 | >...............<h1.id="Root-Sou |
| 354c0 | 72 63 65 2d 46 69 6c 65 22 3e 52 6f 6f 74 20 53 6f 75 72 63 65 20 46 69 6c 65 3c 2f 68 31 3e 0a | rce-File">Root.Source.File</h1>. |
| 354e0 | 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 68 6f 77 20 72 6f 6f 74 | .......<p>TODO:.explain.how.root |
| 35500 | 20 73 6f 75 72 63 65 20 66 69 6c 65 20 66 69 6e 64 73 20 6f 74 68 65 72 20 66 69 6c 65 73 3c 2f | .source.file.finds.other.files</ |
| 35520 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 75 62 20 66 6e 20 6d 61 69 6e 3c 2f 70 | p>.......<p>TODO:.pub.fn.main</p |
| 35540 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 70 75 62 20 66 6e 20 70 61 6e 69 63 3c 2f 70 | >.......<p>TODO:.pub.fn.panic</p |
| 35560 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 69 66 20 6c 69 6e 6b 69 6e 67 20 77 69 74 68 | >.......<p>TODO:.if.linking.with |
| 35580 | 20 6c 69 62 63 20 79 6f 75 20 63 61 6e 20 75 73 65 20 65 78 70 6f 72 74 20 66 6e 20 6d 61 69 6e | .libc.you.can.use.export.fn.main |
| 355a0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6f 72 64 65 72 20 69 6e 64 65 70 65 | </p>.......<p>TODO:.order.indepe |
| 355c0 | 6e 64 65 6e 74 20 74 6f 70 20 6c 65 76 65 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 3c 2f 70 3e | ndent.top.level.declarations</p> |
| 355e0 | 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6c 61 7a 79 20 61 6e 61 6c 79 73 69 73 3c 2f 70 | .......<p>TODO:.lazy.analysis</p |
| 35600 | 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 75 73 69 6e 67 20 63 6f 6d 70 74 69 6d 65 20 | >.......<p>TODO:.using.comptime. |
| 35620 | 7b 20 5f 20 3d 20 40 69 6d 70 6f 72 74 28 29 20 7d 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 | {._.=.@import().}</p>........... |
| 35640 | 20 20 20 3c 68 31 20 69 64 3d 22 5a 69 67 2d 54 65 73 74 22 3e 5a 69 67 20 54 65 73 74 3c 2f 68 | ...<h1.id="Zig-Test">Zig.Test</h |
| 35660 | 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 62 61 73 69 63 20 75 73 61 67 65 3c 2f | 1>........<p>TODO:.basic.usage</ |
| 35680 | 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 6c 61 7a 79 20 61 6e 61 6c 79 73 69 73 3c | p>.......<p>TODO:.lazy.analysis< |
| 356a0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 2d 2d 74 65 73 74 2d 66 69 6c 74 65 72 | /p>.......<p>TODO:.--test-filter |
| 356c0 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 2d 2d 74 65 73 74 2d 6e 61 6d 65 2d | </p>.......<p>TODO:.--test-name- |
| 356e0 | 70 72 65 66 69 78 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 74 65 73 74 69 6e | prefix</p>.......<p>TODO:.testin |
| 35700 | 67 20 69 6e 20 72 65 6c 65 61 73 65 66 61 73 74 20 61 6e 64 20 72 65 6c 65 61 73 65 73 61 66 65 | g.in.releasefast.and.releasesafe |
| 35720 | 20 6d 6f 64 65 2e 20 61 73 73 65 72 74 20 73 74 69 6c 6c 20 77 6f 72 6b 73 3c 2f 70 3e 0a 20 20 | .mode..assert.still.works</p>... |
| 35740 | 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 | ...........<h1.id="Zig-Build-Sys |
| 35760 | 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 53 79 73 74 65 6d 3c 2f 68 31 3e 0a 0a 20 20 20 20 | tem">Zig.Build.System</h1>...... |
| 35780 | 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 70 6c 61 69 6e 20 70 75 72 70 6f 73 65 2c 20 69 74 27 73 | ..<p>TODO:.explain.purpose,.it's |
| 357a0 | 20 73 75 70 70 6f 73 65 64 20 74 6f 20 72 65 70 6c 61 63 65 20 6d 61 6b 65 2f 63 6d 61 6b 65 3c | .supposed.to.replace.make/cmake< |
| 357c0 | 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 62 75 | /p>.......<p>TODO:.example.of.bu |
| 357e0 | 69 6c 64 69 6e 67 20 61 20 7a 69 67 20 65 78 65 63 75 74 61 62 6c 65 3c 2f 70 3e 0a 20 20 20 20 | ilding.a.zig.executable</p>..... |
| 35800 | 20 20 3c 70 3e 54 4f 44 4f 3a 20 65 78 61 6d 70 6c 65 20 6f 66 20 62 75 69 6c 64 69 6e 67 20 61 | ..<p>TODO:.example.of.building.a |
| 35820 | 20 43 20 6c 69 62 72 61 72 79 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 | .C.library</p>..............<h1. |
| 35840 | 69 64 3d 22 43 22 3e 43 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 41 | id="C">C</h1>........<p>.......A |
| 35860 | 6c 74 68 6f 75 67 68 20 5a 69 67 20 69 73 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 6f 66 20 43 2c | lthough.Zig.is.independent.of.C, |
| 35880 | 20 61 6e 64 2c 20 75 6e 6c 69 6b 65 20 6d 6f 73 74 20 6f 74 68 65 72 20 6c 61 6e 67 75 61 67 65 | .and,.unlike.most.other.language |
| 358a0 | 73 2c 20 64 6f 65 73 20 6e 6f 74 20 64 65 70 65 6e 64 20 6f 6e 20 6c 69 62 63 2c 0a 20 20 20 20 | s,.does.not.depend.on.libc,..... |
| 358c0 | 20 20 5a 69 67 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 20 74 68 65 20 69 6d 70 6f 72 74 61 6e 63 | ..Zig.acknowledges.the.importanc |
| 358e0 | 65 20 6f 66 20 69 6e 74 65 72 61 63 74 69 6e 67 20 77 69 74 68 20 65 78 69 73 74 69 6e 67 20 43 | e.of.interacting.with.existing.C |
| 35900 | 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 | .code........</p>.......<p>..... |
| 35920 | 20 20 54 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 77 61 79 73 20 74 68 61 74 20 5a 69 67 20 | ..There.are.a.few.ways.that.Zig. |
| 35940 | 66 61 63 69 6c 69 74 61 74 65 73 20 43 20 69 6e 74 65 72 6f 70 2e 0a 20 20 20 20 20 20 3c 2f 70 | facilitates.C.interop........</p |
| 35960 | 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 2d 54 79 70 65 2d 50 72 69 6d 69 74 69 76 65 | >.......<h2.id="C-Type-Primitive |
| 35980 | 73 22 3e 43 20 54 79 70 65 20 50 72 69 6d 69 74 69 76 65 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 | s">C.Type.Primitives</h2>....... |
| 359a0 | 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 73 65 20 68 61 76 65 20 67 75 61 72 61 6e 74 65 65 64 | .<p>.......These.have.guaranteed |
| 359c0 | 20 43 20 41 42 49 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20 63 61 6e 20 62 65 20 | .C.ABI.compatibility.and.can.be. |
| 359e0 | 75 73 65 64 20 6c 69 6b 65 20 61 6e 79 20 6f 74 68 65 72 20 74 79 70 65 2e 0a 20 20 20 20 20 20 | used.like.any.other.type........ |
| 35a00 | 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 | </p>.......<ul>.........<li><cod |
| 35a20 | 65 3e 63 5f 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c | e>c_short</code></li>.........<l |
| 35a40 | 69 3e 3c 63 6f 64 65 3e 63 5f 75 73 68 6f 72 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 | i><code>c_ushort</code></li>.... |
| 35a60 | 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 69 6e 74 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e | .....<li><code>c_int</code></li> |
| 35a80 | 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 75 69 6e 74 3c 2f 63 6f 64 65 3e | .........<li><code>c_uint</code> |
| 35aa0 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 3c 2f | </li>.........<li><code>c_long</ |
| 35ac0 | 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 75 | code></li>.........<li><code>c_u |
| 35ae0 | 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f | long</code></li>.........<li><co |
| 35b00 | 64 65 3e 63 5f 6c 6f 6e 67 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 | de>c_longlong</code></li>....... |
| 35b20 | 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 75 6c 6f 6e 67 6c 6f 6e 67 3c 2f 63 6f 64 65 3e 3c 2f | ..<li><code>c_ulonglong</code></ |
| 35b40 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 3e 63 5f 6c 6f 6e 67 64 6f 75 62 | li>.........<li><code>c_longdoub |
| 35b60 | 6c 65 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 3c 63 6f 64 65 | le</code></li>.........<li><code |
| 35b80 | 3e 63 5f 76 6f 69 64 3c 2f 63 6f 64 65 3e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a | >c_void</code></li>.......</ul>. |
| 35ba0 | 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c | ......<p>See.also:</p><ul>.<li>< |
| 35bc0 | 61 20 68 72 65 66 3d 22 23 50 72 69 6d 69 74 69 76 65 2d 54 79 70 65 73 22 3e 50 72 69 6d 69 74 | a.href="#Primitive-Types">Primit |
| 35be0 | 69 76 65 20 54 79 70 65 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 | ive.Types</a></li>.</ul>........ |
| 35c00 | 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 43 2d 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c 73 | .......<h2.id="C-String-Literals |
| 35c20 | 22 3e 43 20 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 | ">C.String.Literals</h2>........ |
| 35c40 | 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 | <p.class="file">test.zig</p><pre |
| 35c60 | 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 65 78 74 65 72 6e 20 66 6e 20 70 75 74 | ><code.class="zig">extern.fn.put |
| 35c80 | 73 28 26 61 6d 70 3b 63 6f 6e 73 74 20 75 38 29 20 76 6f 69 64 3b 0a 0a 70 75 62 20 66 6e 20 6d | s(&const.u8).void;..pub.fn.m |
| 35ca0 | 61 69 6e 28 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 70 75 74 73 28 63 26 71 75 6f 74 3b 74 68 69 | ain().void.{.....puts(c"thi |
| 35cc0 | 73 20 68 61 73 20 61 20 6e 75 6c 6c 20 74 65 72 6d 69 6e 61 74 6f 72 26 71 75 6f 74 3b 29 3b 0a | s.has.a.null.terminator");. |
| 35ce0 | 20 20 20 20 70 75 74 73 28 0a 20 20 20 20 20 20 20 20 63 5c 5c 61 6e 64 20 73 6f 0a 20 20 20 20 | ....puts(.........c\\and.so..... |
| 35d00 | 20 20 20 20 63 5c 5c 64 6f 65 73 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 63 5c 5c 6d 75 6c 74 | ....c\\does.this.........c\\mult |
| 35d20 | 69 6c 69 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 0a 20 20 20 20 29 3b 0a 7d 3c | iline.C.string.literal.....);.}< |
| 35d40 | 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 | /code></pre><pre><code.class="sh |
| 35d60 | 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 20 2d 2d | ell">$.zig.build-exe.test.zig.-- |
| 35d80 | 6c 69 62 72 61 72 79 20 63 0a 24 20 2e 2f 74 65 73 74 0a 74 68 69 73 20 68 61 73 20 61 20 6e 75 | library.c.$../test.this.has.a.nu |
| 35da0 | 6c 6c 20 74 65 72 6d 69 6e 61 74 6f 72 0a 61 6e 64 20 73 6f 0a 64 6f 65 73 20 74 68 69 73 0a 6d | ll.terminator.and.so.does.this.m |
| 35dc0 | 75 6c 74 69 6c 69 6e 65 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 0a 3c 2f 63 6f 64 65 | ultiline.C.string.literal.</code |
| 35de0 | 3e 3c 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c | ></pre>........<p>See.also:</p>< |
| 35e00 | 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 53 74 72 69 6e 67 2d 4c 69 74 65 72 61 6c | ul>.<li><a.href="#String-Literal |
| 35e20 | 73 22 3e 53 74 72 69 6e 67 20 4c 69 74 65 72 61 6c 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c | s">String.Literals</a></li>.</ul |
| 35e40 | 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 49 6d 70 6f 72 74 2d 66 | >...............<h2.id="Import-f |
| 35e60 | 72 6f 6d 2d 43 2d 48 65 61 64 65 72 2d 46 69 6c 65 22 3e 49 6d 70 6f 72 74 20 66 72 6f 6d 20 43 | rom-C-Header-File">Import.from.C |
| 35e80 | 20 48 65 61 64 65 72 20 46 69 6c 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 | .Header.File</h2>........<p>.... |
| 35ea0 | 20 20 20 54 68 65 20 3c 63 6f 64 65 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 20 62 75 69 | ...The.<code>@cImport</code>.bui |
| 35ec0 | 6c 74 69 6e 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 75 73 65 64 0a 20 20 20 20 20 20 | ltin.function.can.be.used....... |
| 35ee0 | 74 6f 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f 72 74 20 73 79 6d 62 6f 6c 73 20 66 72 6f 6d 20 | to.directly.import.symbols.from. |
| 35f00 | 2e 68 20 66 69 6c 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c | .h.files:.......</p>.......<p.cl |
| 35f20 | 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 7a 69 67 3c 2f 70 3e 3c 70 72 65 3e 3c 63 6f 64 | ass="file">test.zig</p><pre><cod |
| 35f40 | 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 63 20 3d 20 40 63 49 6d 70 6f 72 74 | e.class="zig">const.c.=.@cImport |
| 35f60 | 28 7b 0a 20 20 20 20 2f 2f 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | ({.....//.See.https://github.com |
| 35f80 | 2f 7a 69 67 2d 6c 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 35 31 35 0a 20 20 20 20 40 63 44 | /zig-lang/zig/issues/515.....@cD |
| 35fa0 | 65 66 69 6e 65 28 26 71 75 6f 74 3b 5f 4e 4f 5f 43 52 54 5f 53 54 44 49 4f 5f 49 4e 4c 49 4e 45 | efine("_NO_CRT_STDIO_INLINE |
| 35fc0 | 26 71 75 6f 74 3b 2c 20 26 71 75 6f 74 3b 31 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 40 63 49 6e | ",."1");.....@cIn |
| 35fe0 | 63 6c 75 64 65 28 26 71 75 6f 74 3b 73 74 64 69 6f 2e 68 26 71 75 6f 74 3b 29 3b 0a 7d 29 3b 0a | clude("stdio.h");.});. |
| 36000 | 70 75 62 20 66 6e 20 6d 61 69 6e 28 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 5f 20 3d 20 63 2e 70 | pub.fn.main().void.{....._.=.c.p |
| 36020 | 72 69 6e 74 66 28 63 26 71 75 6f 74 3b 68 65 6c 6c 6f 5c 6e 26 71 75 6f 74 3b 29 3b 0a 7d 3c 2f | rintf(c"hello\n");.}</ |
| 36040 | 63 6f 64 65 3e 3c 2f 70 72 65 3e 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 | code></pre><pre><code.class="she |
| 36060 | 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 2d 65 78 65 20 74 65 73 74 2e 7a 69 67 20 2d 2d 6c | ll">$.zig.build-exe.test.zig.--l |
| 36080 | 69 62 72 61 72 79 20 63 0a 24 20 2e 2f 74 65 73 74 0a 68 65 6c 6c 6f 0a 3c 2f 63 6f 64 65 3e 3c | ibrary.c.$../test.hello.</code>< |
| 360a0 | 2f 70 72 65 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 54 68 65 20 3c 63 6f 64 65 | /pre>........<p>.......The.<code |
| 360c0 | 3e 40 63 49 6d 70 6f 72 74 3c 2f 63 6f 64 65 3e 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 | >@cImport</code>.function.takes. |
| 360e0 | 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 61 73 20 61 20 70 61 72 61 6d 65 74 65 72 2e 0a 20 20 | an.expression.as.a.parameter.... |
| 36100 | 20 20 20 20 54 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 | ....This.expression.is.evaluated |
| 36120 | 20 61 74 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 61 6e 64 20 69 73 20 75 73 65 64 20 74 6f 20 | .at.compile-time.and.is.used.to. |
| 36140 | 63 6f 6e 74 72 6f 6c 0a 20 20 20 20 20 20 70 72 65 70 72 6f 63 65 73 73 6f 72 20 64 69 72 65 63 | control.......preprocessor.direc |
| 36160 | 74 69 76 65 73 20 61 6e 64 20 69 6e 63 6c 75 64 65 20 6d 75 6c 74 69 70 6c 65 20 2e 68 20 66 69 | tives.and.include.multiple..h.fi |
| 36180 | 6c 65 73 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 | les:.......</p>.......<pre><code |
| 361a0 | 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 62 75 69 6c 74 69 6e 20 3d 20 40 69 6d | .class="zig">const.builtin.=.@im |
| 361c0 | 70 6f 72 74 28 26 71 75 6f 74 3b 62 75 69 6c 74 69 6e 26 71 75 6f 74 3b 29 3b 0a 0a 63 6f 6e 73 | port("builtin");..cons |
| 361e0 | 74 20 63 20 3d 20 40 63 49 6d 70 6f 72 74 28 7b 0a 20 20 20 20 40 63 44 65 66 69 6e 65 28 26 71 | t.c.=.@cImport({.....@cDefine(&q |
| 36200 | 75 6f 74 3b 4e 44 45 42 55 47 26 71 75 6f 74 3b 2c 20 62 75 69 6c 74 69 6e 2e 6d 6f 64 65 20 3d | uot;NDEBUG",.builtin.mode.= |
| 36220 | 3d 20 62 75 69 6c 74 69 6e 2e 4d 6f 64 65 2e 52 65 6c 65 61 73 65 46 61 73 74 29 3b 0a 20 20 20 | =.builtin.Mode.ReleaseFast);.... |
| 36240 | 20 69 66 20 28 73 6f 6d 65 74 68 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 20 20 40 63 44 65 66 69 | .if.(something).{.........@cDefi |
| 36260 | 6e 65 28 26 71 75 6f 74 3b 5f 47 4e 55 5f 53 4f 55 52 43 45 26 71 75 6f 74 3b 2c 20 7b 7d 29 3b | ne("_GNU_SOURCE",.{}); |
| 36280 | 0a 20 20 20 20 7d 0a 20 20 20 20 40 63 49 6e 63 6c 75 64 65 28 26 71 75 6f 74 3b 73 74 64 6c 69 | .....}.....@cInclude("stdli |
| 362a0 | 62 2e 68 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 69 66 20 28 73 6f 6d 65 74 68 69 6e 67 29 20 7b | b.h");.....if.(something).{ |
| 362c0 | 0a 20 20 20 20 20 20 20 20 40 63 55 6e 64 65 66 28 26 71 75 6f 74 3b 5f 47 4e 55 5f 53 4f 55 52 | .........@cUndef("_GNU_SOUR |
| 362e0 | 43 45 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 40 63 49 6e 63 6c 75 64 65 28 26 | CE");.....}.....@cInclude(& |
| 36300 | 71 75 6f 74 3b 73 6f 75 6e 64 69 6f 2e 68 26 71 75 6f 74 3b 29 3b 0a 7d 29 3b 3c 2f 63 6f 64 65 | quot;soundio.h");.});</code |
| 36320 | 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 | ></pre>.......<p>See.also:</p><u |
| 36340 | 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6d 70 6f 72 74 22 3e 40 63 49 6d 70 6f | l>.<li><a.href="#cImport">@cImpo |
| 36360 | 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 49 6e 63 6c 75 | rt</a></li>.<li><a.href="#cInclu |
| 36380 | 64 65 22 3e 40 63 49 6e 63 6c 75 64 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 | de">@cInclude</a></li>.<li><a.hr |
| 363a0 | 65 66 3d 22 23 63 44 65 66 69 6e 65 22 3e 40 63 44 65 66 69 6e 65 3c 2f 61 3e 3c 2f 6c 69 3e 0a | ef="#cDefine">@cDefine</a></li>. |
| 363c0 | 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 63 55 6e 64 65 66 22 3e 40 63 55 6e 64 65 66 3c 2f 61 | <li><a.href="#cUndef">@cUndef</a |
| 363e0 | 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 69 6d 70 6f 72 74 22 3e 40 69 6d | ></li>.<li><a.href="#import">@im |
| 36400 | 70 6f 72 74 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 20 20 | port</a></li>.</ul>............. |
| 36420 | 20 20 3c 68 32 20 69 64 3d 22 4d 69 78 69 6e 67 2d 4f 62 6a 65 63 74 2d 46 69 6c 65 73 22 3e 4d | ..<h2.id="Mixing-Object-Files">M |
| 36440 | 69 78 69 6e 67 20 4f 62 6a 65 63 74 20 46 69 6c 65 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | ixing.Object.Files</h2>........< |
| 36460 | 70 3e 0a 20 20 20 20 20 20 59 6f 75 20 63 61 6e 20 6d 69 78 20 5a 69 67 20 6f 62 6a 65 63 74 20 | p>.......You.can.mix.Zig.object. |
| 36480 | 66 69 6c 65 73 20 77 69 74 68 20 61 6e 79 20 6f 74 68 65 72 20 6f 62 6a 65 63 74 20 66 69 6c 65 | files.with.any.other.object.file |
| 364a0 | 73 20 74 68 61 74 20 72 65 73 70 65 63 74 20 74 68 65 20 43 20 41 42 49 2e 20 45 78 61 6d 70 6c | s.that.respect.the.C.ABI..Exampl |
| 364c0 | 65 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 | e:.......</p>.......<p.class="fi |
| 364e0 | 6c 65 22 3e 62 61 73 65 36 34 2e 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | le">base64.zig</p>.......<pre><c |
| 36500 | 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 62 61 73 65 36 34 20 3d 20 40 | ode.class="zig">const.base64.=.@ |
| 36520 | 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e 62 61 73 65 36 34 3b 0a | import("std").base64;. |
| 36540 | 0a 65 78 70 6f 72 74 20 66 6e 20 64 65 63 6f 64 65 5f 62 61 73 65 5f 36 34 28 64 65 73 74 5f 70 | .export.fn.decode_base_64(dest_p |
| 36560 | 74 72 3a 20 26 61 6d 70 3b 75 38 2c 20 64 65 73 74 5f 6c 65 6e 3a 20 75 73 69 7a 65 2c 0a 20 20 | tr:.&u8,.dest_len:.usize,... |
| 36580 | 20 20 73 6f 75 72 63 65 5f 70 74 72 3a 20 26 61 6d 70 3b 63 6f 6e 73 74 20 75 38 2c 20 73 6f 75 | ..source_ptr:.&const.u8,.sou |
| 365a0 | 72 63 65 5f 6c 65 6e 3a 20 75 73 69 7a 65 29 20 75 73 69 7a 65 0a 7b 0a 20 20 20 20 63 6f 6e 73 | rce_len:.usize).usize.{.....cons |
| 365c0 | 74 20 73 72 63 20 3d 20 73 6f 75 72 63 65 5f 70 74 72 5b 30 2e 2e 73 6f 75 72 63 65 5f 6c 65 6e | t.src.=.source_ptr[0..source_len |
| 365e0 | 5d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 64 65 73 74 20 3d 20 64 65 73 74 5f 70 74 72 5b 30 2e 2e | ];.....const.dest.=.dest_ptr[0.. |
| 36600 | 64 65 73 74 5f 6c 65 6e 5d 3b 0a 20 20 20 20 63 6f 6e 73 74 20 62 61 73 65 36 34 5f 64 65 63 6f | dest_len];.....const.base64_deco |
| 36620 | 64 65 72 20 3d 20 62 61 73 65 36 34 2e 73 74 61 6e 64 61 72 64 5f 64 65 63 6f 64 65 72 5f 75 6e | der.=.base64.standard_decoder_un |
| 36640 | 73 61 66 65 3b 0a 20 20 20 20 63 6f 6e 73 74 20 64 65 63 6f 64 65 64 5f 73 69 7a 65 20 3d 20 62 | safe;.....const.decoded_size.=.b |
| 36660 | 61 73 65 36 34 5f 64 65 63 6f 64 65 72 2e 63 61 6c 63 53 69 7a 65 28 73 72 63 29 3b 0a 20 20 20 | ase64_decoder.calcSize(src);.... |
| 36680 | 20 62 61 73 65 36 34 5f 64 65 63 6f 64 65 72 2e 64 65 63 6f 64 65 28 64 65 73 74 5b 30 2e 2e 64 | .base64_decoder.decode(dest[0..d |
| 366a0 | 65 63 6f 64 65 64 5f 73 69 7a 65 5d 2c 20 73 72 63 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 64 | ecoded_size],.src);.....return.d |
| 366c0 | 65 63 6f 64 65 64 5f 73 69 7a 65 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 | ecoded_size;.}</code></pre>..... |
| 366e0 | 20 20 3c 70 20 63 6c 61 73 73 3d 22 66 69 6c 65 22 3e 74 65 73 74 2e 63 3c 2f 70 3e 0a 20 20 20 | ..<p.class="file">test.c</p>.... |
| 36700 | 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 63 70 70 22 3e 2f 2f 20 54 68 69 | ...<pre><code.class="cpp">//.Thi |
| 36720 | 73 20 68 65 61 64 65 72 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 7a 69 67 20 66 72 6f | s.header.is.generated.by.zig.fro |
| 36740 | 6d 20 62 61 73 65 36 34 2e 7a 69 67 0a 23 69 6e 63 6c 75 64 65 20 22 62 61 73 65 36 34 2e 68 22 | m.base64.zig.#include."base64.h" |
| 36760 | 0a 0a 23 69 6e 63 6c 75 64 65 20 26 6c 74 3b 73 74 72 69 6e 67 2e 68 26 67 74 3b 0a 23 69 6e 63 | ..#include.<string.h>.#inc |
| 36780 | 6c 75 64 65 20 26 6c 74 3b 73 74 64 69 6f 2e 68 26 67 74 3b 0a 0a 69 6e 74 20 6d 61 69 6e 28 69 | lude.<stdio.h>..int.main(i |
| 367a0 | 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 2a 61 72 67 76 29 20 7b 0a 20 20 20 20 63 6f 6e 73 | nt.argc,.char.**argv).{.....cons |
| 367c0 | 74 20 63 68 61 72 20 2a 65 6e 63 6f 64 65 64 20 3d 20 22 59 57 78 73 49 48 6c 76 64 58 49 67 59 | t.char.*encoded.=."YWxsIHlvdXIgY |
| 367e0 | 6d 46 7a 5a 53 42 68 63 6d 55 67 59 6d 56 73 62 32 35 6e 49 48 52 76 49 48 56 7a 22 3b 0a 20 20 | mFzZSBhcmUgYmVsb25nIHRvIHVz";... |
| 36800 | 20 20 63 68 61 72 20 62 75 66 5b 32 30 30 5d 3b 0a 0a 20 20 20 20 73 69 7a 65 5f 74 20 6c 65 6e | ..char.buf[200];......size_t.len |
| 36820 | 20 3d 20 64 65 63 6f 64 65 5f 62 61 73 65 5f 36 34 28 62 75 66 2c 20 32 30 30 2c 20 65 6e 63 6f | .=.decode_base_64(buf,.200,.enco |
| 36840 | 64 65 64 2c 20 73 74 72 6c 65 6e 28 65 6e 63 6f 64 65 64 29 29 3b 0a 20 20 20 20 62 75 66 5b 6c | ded,.strlen(encoded));.....buf[l |
| 36860 | 65 6e 5d 20 3d 20 30 3b 0a 20 20 20 20 70 75 74 73 28 62 75 66 29 3b 0a 0a 20 20 20 20 72 65 74 | en].=.0;.....puts(buf);......ret |
| 36880 | 75 72 6e 20 30 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 20 63 | urn.0;.}</code></pre>.......<p.c |
| 368a0 | 6c 61 73 73 3d 22 66 69 6c 65 22 3e 62 75 69 6c 64 2e 7a 69 67 3c 2f 70 3e 0a 20 20 20 20 20 20 | lass="file">build.zig</p>....... |
| 368c0 | 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 6f 6e 73 74 20 42 75 69 | <pre><code.class="zig">const.Bui |
| 368e0 | 6c 64 65 72 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 75 6f 74 3b 73 74 64 26 71 75 6f 74 3b 29 2e | lder.=.@import("std"). |
| 36900 | 62 75 69 6c 64 2e 42 75 69 6c 64 65 72 3b 0a 0a 70 75 62 20 66 6e 20 62 75 69 6c 64 28 62 3a 20 | build.Builder;..pub.fn.build(b:. |
| 36920 | 26 61 6d 70 3b 42 75 69 6c 64 65 72 29 20 76 6f 69 64 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 6f | &Builder).void.{.....const.o |
| 36940 | 62 6a 20 3d 20 62 2e 61 64 64 4f 62 6a 65 63 74 28 26 71 75 6f 74 3b 62 61 73 65 36 34 26 71 75 | bj.=.b.addObject("base64&qu |
| 36960 | 6f 74 3b 2c 20 26 71 75 6f 74 3b 62 61 73 65 36 34 2e 7a 69 67 26 71 75 6f 74 3b 29 3b 0a 0a 20 | ot;,."base64.zig");... |
| 36980 | 20 20 20 63 6f 6e 73 74 20 65 78 65 20 3d 20 62 2e 61 64 64 43 45 78 65 63 75 74 61 62 6c 65 28 | ...const.exe.=.b.addCExecutable( |
| 369a0 | 26 71 75 6f 74 3b 74 65 73 74 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 65 78 65 2e 61 64 64 43 6f | "test");.....exe.addCo |
| 369c0 | 6d 70 69 6c 65 46 6c 61 67 73 28 5b 5d 5b 5d 63 6f 6e 73 74 20 75 38 20 7b 0a 20 20 20 20 20 20 | mpileFlags([][]const.u8.{....... |
| 369e0 | 20 20 26 71 75 6f 74 3b 2d 73 74 64 3d 63 39 39 26 71 75 6f 74 3b 2c 0a 20 20 20 20 7d 29 3b 0a | .."-std=c99",.....});. |
| 36a00 | 20 20 20 20 65 78 65 2e 61 64 64 53 6f 75 72 63 65 46 69 6c 65 28 26 71 75 6f 74 3b 74 65 73 74 | ....exe.addSourceFile("test |
| 36a20 | 2e 63 26 71 75 6f 74 3b 29 3b 0a 20 20 20 20 65 78 65 2e 61 64 64 4f 62 6a 65 63 74 28 6f 62 6a | .c");.....exe.addObject(obj |
| 36a40 | 29 3b 0a 20 20 20 20 65 78 65 2e 73 65 74 4f 75 74 70 75 74 50 61 74 68 28 26 71 75 6f 74 3b 2e | );.....exe.setOutputPath(". |
| 36a60 | 26 71 75 6f 74 3b 29 3b 0a 0a 20 20 20 20 62 2e 64 65 66 61 75 6c 74 5f 73 74 65 70 2e 64 65 70 | ");......b.default_step.dep |
| 36a80 | 65 6e 64 4f 6e 28 26 61 6d 70 3b 65 78 65 2e 73 74 65 70 29 3b 0a 7d 3c 2f 63 6f 64 65 3e 3c 2f | endOn(&exe.step);.}</code></ |
| 36aa0 | 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 54 65 72 6d 69 6e | pre>..............<h2.id="Termin |
| 36ac0 | 61 6c 22 3e 54 65 72 6d 69 6e 61 6c 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | al">Terminal</h2>........<pre><c |
| 36ae0 | 6f 64 65 20 63 6c 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 62 75 69 6c 64 0a 24 20 | ode.class="shell">$.zig.build.$. |
| 36b00 | 2e 2f 74 65 73 74 0a 61 6c 6c 20 79 6f 75 72 20 62 61 73 65 20 61 72 65 20 62 65 6c 6f 6e 67 20 | ./test.all.your.base.are.belong. |
| 36b20 | 74 6f 20 75 73 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 53 65 65 20 | to.us</code></pre>.......<p>See. |
| 36b40 | 61 6c 73 6f 3a 3c 2f 70 3e 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 22 23 54 61 72 67 | also:</p><ul>.<li><a.href="#Targ |
| 36b60 | 65 74 73 22 3e 54 61 72 67 65 74 73 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 | ets">Targets</a></li>.<li><a.hre |
| 36b80 | 66 3d 22 23 5a 69 67 2d 42 75 69 6c 64 2d 53 79 73 74 65 6d 22 3e 5a 69 67 20 42 75 69 6c 64 20 | f="#Zig-Build-System">Zig.Build. |
| 36ba0 | 53 79 73 74 65 6d 3c 2f 61 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 20 20 20 20 20 20 0a 20 20 | System</a></li>.</ul>........... |
| 36bc0 | 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 54 61 72 67 65 74 73 22 3e 54 61 72 67 | ...........<h1.id="Targets">Targ |
| 36be0 | 65 74 73 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 20 20 20 20 5a 69 67 20 73 75 | ets</h1>........<p>.......Zig.su |
| 36c00 | 70 70 6f 72 74 73 20 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 64 65 20 66 6f 72 20 61 6c 6c 20 74 | pports.generating.code.for.all.t |
| 36c20 | 61 72 67 65 74 73 20 74 68 61 74 20 4c 4c 56 4d 20 73 75 70 70 6f 72 74 73 2e 20 48 65 72 65 20 | argets.that.LLVM.supports..Here. |
| 36c40 | 69 73 0a 20 20 20 20 20 20 77 68 61 74 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 6f 20 65 | is.......what.it.looks.like.to.e |
| 36c60 | 78 65 63 75 74 65 20 3c 63 6f 64 65 3e 7a 69 67 20 74 61 72 67 65 74 73 3c 2f 63 6f 64 65 3e 20 | xecute.<code>zig.targets</code>. |
| 36c80 | 6f 6e 20 61 20 4c 69 6e 75 78 20 78 38 36 5f 36 34 0a 20 20 20 20 20 20 63 6f 6d 70 75 74 65 72 | on.a.Linux.x86_64.......computer |
| 36ca0 | 3a 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c | :.......</p>.......<pre><code.cl |
| 36cc0 | 61 73 73 3d 22 73 68 65 6c 6c 22 3e 24 20 7a 69 67 20 74 61 72 67 65 74 73 0a 41 72 63 68 69 74 | ass="shell">$.zig.targets.Archit |
| 36ce0 | 65 63 74 75 72 65 73 3a 0a 20 20 61 72 6d 76 38 5f 32 61 0a 20 20 61 72 6d 76 38 5f 31 61 0a 20 | ectures:...armv8_2a...armv8_1a.. |
| 36d00 | 20 61 72 6d 76 38 0a 20 20 61 72 6d 76 38 72 0a 20 20 61 72 6d 76 38 6d 5f 62 61 73 65 6c 69 6e | .armv8...armv8r...armv8m_baselin |
| 36d20 | 65 0a 20 20 61 72 6d 76 38 6d 5f 6d 61 69 6e 6c 69 6e 65 0a 20 20 61 72 6d 76 37 0a 20 20 61 72 | e...armv8m_mainline...armv7...ar |
| 36d40 | 6d 76 37 65 6d 0a 20 20 61 72 6d 76 37 6d 0a 20 20 61 72 6d 76 37 73 0a 20 20 61 72 6d 76 37 6b | mv7em...armv7m...armv7s...armv7k |
| 36d60 | 0a 20 20 61 72 6d 76 37 76 65 0a 20 20 61 72 6d 76 36 0a 20 20 61 72 6d 76 36 6d 0a 20 20 61 72 | ...armv7ve...armv6...armv6m...ar |
| 36d80 | 6d 76 36 6b 0a 20 20 61 72 6d 76 36 74 32 0a 20 20 61 72 6d 76 35 0a 20 20 61 72 6d 76 35 74 65 | mv6k...armv6t2...armv5...armv5te |
| 36da0 | 0a 20 20 61 72 6d 76 34 74 0a 20 20 61 72 6d 65 62 0a 20 20 61 61 72 63 68 36 34 0a 20 20 61 61 | ...armv4t...armeb...aarch64...aa |
| 36dc0 | 72 63 68 36 34 5f 62 65 0a 20 20 61 76 72 0a 20 20 62 70 66 65 6c 0a 20 20 62 70 66 65 62 0a 20 | rch64_be...avr...bpfel...bpfeb.. |
| 36de0 | 20 68 65 78 61 67 6f 6e 0a 20 20 6d 69 70 73 0a 20 20 6d 69 70 73 65 6c 0a 20 20 6d 69 70 73 36 | .hexagon...mips...mipsel...mips6 |
| 36e00 | 34 0a 20 20 6d 69 70 73 36 34 65 6c 0a 20 20 6d 73 70 34 33 30 0a 20 20 6e 69 6f 73 32 0a 20 20 | 4...mips64el...msp430...nios2... |
| 36e20 | 70 6f 77 65 72 70 63 0a 20 20 70 6f 77 65 72 70 63 36 34 0a 20 20 70 6f 77 65 72 70 63 36 34 6c | powerpc...powerpc64...powerpc64l |
| 36e40 | 65 0a 20 20 72 36 30 30 0a 20 20 61 6d 64 67 63 6e 0a 20 20 72 69 73 63 76 33 32 0a 20 20 72 69 | e...r600...amdgcn...riscv32...ri |
| 36e60 | 73 63 76 36 34 0a 20 20 73 70 61 72 63 0a 20 20 73 70 61 72 63 76 39 0a 20 20 73 70 61 72 63 65 | scv64...sparc...sparcv9...sparce |
| 36e80 | 6c 0a 20 20 73 33 39 30 78 0a 20 20 74 63 65 0a 20 20 74 63 65 6c 65 0a 20 20 74 68 75 6d 62 0a | l...s390x...tce...tcele...thumb. |
| 36ea0 | 20 20 74 68 75 6d 62 65 62 0a 20 20 69 33 38 36 0a 20 20 78 38 36 5f 36 34 20 28 6e 61 74 69 76 | ..thumbeb...i386...x86_64.(nativ |
| 36ec0 | 65 29 0a 20 20 78 63 6f 72 65 0a 20 20 6e 76 70 74 78 0a 20 20 6e 76 70 74 78 36 34 0a 20 20 6c | e)...xcore...nvptx...nvptx64...l |
| 36ee0 | 65 33 32 0a 20 20 6c 65 36 34 0a 20 20 61 6d 64 69 6c 0a 20 20 61 6d 64 69 6c 36 34 0a 20 20 68 | e32...le64...amdil...amdil64...h |
| 36f00 | 73 61 69 6c 0a 20 20 68 73 61 69 6c 36 34 0a 20 20 73 70 69 72 0a 20 20 73 70 69 72 36 34 0a 20 | sail...hsail64...spir...spir64.. |
| 36f20 | 20 6b 61 6c 69 6d 62 61 76 33 0a 20 20 6b 61 6c 69 6d 62 61 76 34 0a 20 20 6b 61 6c 69 6d 62 61 | .kalimbav3...kalimbav4...kalimba |
| 36f40 | 76 35 0a 20 20 73 68 61 76 65 0a 20 20 6c 61 6e 61 69 0a 20 20 77 61 73 6d 33 32 0a 20 20 77 61 | v5...shave...lanai...wasm32...wa |
| 36f60 | 73 6d 36 34 0a 20 20 72 65 6e 64 65 72 73 63 72 69 70 74 33 32 0a 20 20 72 65 6e 64 65 72 73 63 | sm64...renderscript32...rendersc |
| 36f80 | 72 69 70 74 36 34 0a 0a 4f 70 65 72 61 74 69 6e 67 20 53 79 73 74 65 6d 73 3a 0a 20 20 66 72 65 | ript64..Operating.Systems:...fre |
| 36fa0 | 65 73 74 61 6e 64 69 6e 67 0a 20 20 61 6e 61 6e 61 73 0a 20 20 63 6c 6f 75 64 61 62 69 0a 20 20 | estanding...ananas...cloudabi... |
| 36fc0 | 64 72 61 67 6f 6e 66 6c 79 0a 20 20 66 72 65 65 62 73 64 0a 20 20 66 75 63 68 73 69 61 0a 20 20 | dragonfly...freebsd...fuchsia... |
| 36fe0 | 69 6f 73 0a 20 20 6b 66 72 65 65 62 73 64 0a 20 20 6c 69 6e 75 78 20 28 6e 61 74 69 76 65 29 0a | ios...kfreebsd...linux.(native). |
| 37000 | 20 20 6c 76 32 0a 20 20 6d 61 63 6f 73 78 0a 20 20 6e 65 74 62 73 64 0a 20 20 6f 70 65 6e 62 73 | ..lv2...macosx...netbsd...openbs |
| 37020 | 64 0a 20 20 73 6f 6c 61 72 69 73 0a 20 20 77 69 6e 64 6f 77 73 0a 20 20 68 61 69 6b 75 0a 20 20 | d...solaris...windows...haiku... |
| 37040 | 6d 69 6e 69 78 0a 20 20 72 74 65 6d 73 0a 20 20 6e 61 63 6c 0a 20 20 63 6e 6b 0a 20 20 62 69 74 | minix...rtems...nacl...cnk...bit |
| 37060 | 72 69 67 0a 20 20 61 69 78 0a 20 20 63 75 64 61 0a 20 20 6e 76 63 6c 0a 20 20 61 6d 64 68 73 61 | rig...aix...cuda...nvcl...amdhsa |
| 37080 | 0a 20 20 70 73 34 0a 20 20 65 6c 66 69 61 6d 63 75 0a 20 20 74 76 6f 73 0a 20 20 77 61 74 63 68 | ...ps4...elfiamcu...tvos...watch |
| 370a0 | 6f 73 0a 20 20 6d 65 73 61 33 64 0a 20 20 63 6f 6e 74 69 6b 69 0a 20 20 7a 65 6e 0a 0a 45 6e 76 | os...mesa3d...contiki...zen..Env |
| 370c0 | 69 72 6f 6e 6d 65 6e 74 73 3a 0a 20 20 75 6e 6b 6e 6f 77 6e 0a 20 20 67 6e 75 20 28 6e 61 74 69 | ironments:...unknown...gnu.(nati |
| 370e0 | 76 65 29 0a 20 20 67 6e 75 61 62 69 36 34 0a 20 20 67 6e 75 65 61 62 69 0a 20 20 67 6e 75 65 61 | ve)...gnuabi64...gnueabi...gnuea |
| 37100 | 62 69 68 66 0a 20 20 67 6e 75 78 33 32 0a 20 20 63 6f 64 65 31 36 0a 20 20 65 61 62 69 0a 20 20 | bihf...gnux32...code16...eabi... |
| 37120 | 65 61 62 69 68 66 0a 20 20 61 6e 64 72 6f 69 64 0a 20 20 6d 75 73 6c 0a 20 20 6d 75 73 6c 65 61 | eabihf...android...musl...muslea |
| 37140 | 62 69 0a 20 20 6d 75 73 6c 65 61 62 69 68 66 0a 20 20 6d 73 76 63 0a 20 20 69 74 61 6e 69 75 6d | bi...musleabihf...msvc...itanium |
| 37160 | 0a 20 20 63 79 67 6e 75 73 0a 20 20 61 6d 64 6f 70 65 6e 63 6c 0a 20 20 63 6f 72 65 63 6c 72 0a | ...cygnus...amdopencl...coreclr. |
| 37180 | 20 20 6f 70 65 6e 63 6c 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | ..opencl</code></pre>.......<p>. |
| 371a0 | 20 20 20 20 20 20 54 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 20 28 | ......The.Zig.Standard.Library.( |
| 371c0 | 3c 63 6f 64 65 3e 40 69 6d 70 6f 72 74 28 22 73 74 64 22 29 3c 2f 63 6f 64 65 3e 29 20 68 61 73 | <code>@import("std")</code>).has |
| 371e0 | 20 61 72 63 68 69 74 65 63 74 75 72 65 2c 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2c 20 61 6e 64 20 | .architecture,.environment,.and. |
| 37200 | 6f 70 65 72 61 74 69 6e 67 20 73 79 74 73 65 6d 0a 20 20 20 20 20 20 61 62 73 74 72 61 63 74 69 | operating.sytsem.......abstracti |
| 37220 | 6f 6e 73 2c 20 61 6e 64 20 74 68 75 73 20 74 61 6b 65 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 77 | ons,.and.thus.takes.additional.w |
| 37240 | 6f 72 6b 20 74 6f 20 73 75 70 70 6f 72 74 20 6d 6f 72 65 20 70 6c 61 74 66 6f 72 6d 73 2e 20 49 | ork.to.support.more.platforms..I |
| 37260 | 74 20 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 73 0a 20 20 20 20 20 20 4c 69 6e 75 78 | t.currently.supports.......Linux |
| 37280 | 20 78 38 36 5f 36 34 2e 20 4e 6f 74 20 61 6c 6c 20 73 74 61 6e 64 61 72 64 20 6c 69 62 72 61 72 | .x86_64..Not.all.standard.librar |
| 372a0 | 79 20 63 6f 64 65 20 72 65 71 75 69 72 65 73 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d | y.code.requires.operating.system |
| 372c0 | 20 61 62 73 74 72 61 63 74 69 6f 6e 73 2c 20 68 6f 77 65 76 65 72 2c 0a 20 20 20 20 20 20 73 6f | .abstractions,.however,.......so |
| 372e0 | 20 74 68 69 6e 67 73 20 73 75 63 68 20 61 73 20 67 65 6e 65 72 69 63 20 64 61 74 61 20 73 74 72 | .things.such.as.generic.data.str |
| 37300 | 75 63 74 75 72 65 73 20 77 6f 72 6b 20 61 6e 20 61 6c 6c 20 61 62 6f 76 65 20 70 6c 61 74 66 6f | uctures.work.an.all.above.platfo |
| 37320 | 72 6d 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 | rms........</p>..............<h1 |
| 37340 | 20 69 64 3d 22 53 74 79 6c 65 2d 47 75 69 64 65 22 3e 53 74 79 6c 65 20 47 75 69 64 65 3c 2f 68 | .id="Style-Guide">Style.Guide</h |
| 37360 | 31 3e 0a 0a 20 20 20 20 20 20 3c 70 3e 0a 54 68 65 73 65 20 63 6f 64 69 6e 67 20 63 6f 6e 76 65 | 1>........<p>.These.coding.conve |
| 37380 | 6e 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 65 6e 66 6f 72 63 65 64 20 62 79 20 74 68 65 20 63 | ntions.are.not.enforced.by.the.c |
| 373a0 | 6f 6d 70 69 6c 65 72 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 20 73 68 69 70 70 65 64 20 69 6e | ompiler,.but.they.are.shipped.in |
| 373c0 | 0a 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 | .this.documentation.along.with.t |
| 373e0 | 68 65 20 63 6f 6d 70 69 6c 65 72 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 72 6f 76 69 64 65 20 | he.compiler.in.order.to.provide. |
| 37400 | 61 20 70 6f 69 6e 74 20 6f 66 0a 72 65 66 65 72 65 6e 63 65 2c 20 73 68 6f 75 6c 64 20 61 6e 79 | a.point.of.reference,.should.any |
| 37420 | 6f 6e 65 20 77 69 73 68 20 74 6f 20 70 6f 69 6e 74 20 74 6f 20 61 6e 20 61 75 74 68 6f 72 69 74 | one.wish.to.point.to.an.authorit |
| 37440 | 79 20 6f 6e 20 61 67 72 65 65 64 20 75 70 6f 6e 20 5a 69 67 0a 63 6f 64 69 6e 67 20 73 74 79 6c | y.on.agreed.upon.Zig.coding.styl |
| 37460 | 65 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 68 32 20 69 64 3d 22 57 68 69 74 | e........</p>.......<h2.id="Whit |
| 37480 | 65 73 70 61 63 65 22 3e 57 68 69 74 65 73 70 61 63 65 3c 2f 68 32 3e 0a 0a 20 20 20 20 20 20 3c | espace">Whitespace</h2>........< |
| 374a0 | 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 34 20 73 70 61 | ul>.........<li>...........4.spa |
| 374c0 | 63 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 | ce.indentation.........</li>.... |
| 374e0 | 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 4f 70 65 6e 20 62 72 61 63 65 73 20 | .....<li>...........Open.braces. |
| 37500 | 6f 6e 20 73 61 6d 65 20 6c 69 6e 65 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 6e 65 65 64 20 74 6f | on.same.line,.unless.you.need.to |
| 37520 | 20 77 72 61 70 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | .wrap..........</li>.........<li |
| 37540 | 3e 49 66 20 61 20 6c 69 73 74 20 6f 66 20 74 68 69 6e 67 73 20 69 73 20 6c 6f 6e 67 65 72 20 74 | >If.a.list.of.things.is.longer.t |
| 37560 | 68 61 6e 20 32 2c 20 70 75 74 20 65 61 63 68 20 69 74 65 6d 20 6f 6e 20 69 74 73 20 6f 77 6e 20 | han.2,.put.each.item.on.its.own. |
| 37580 | 6c 69 6e 65 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 65 78 65 72 63 69 73 65 20 74 68 65 20 | line.and...........exercise.the. |
| 375a0 | 61 62 69 6c 74 79 20 74 6f 20 70 75 74 20 61 6e 20 65 78 74 72 61 20 63 6f 6d 6d 61 20 61 74 20 | abilty.to.put.an.extra.comma.at. |
| 375c0 | 74 68 65 20 65 6e 64 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c | the.end..........</li>.........< |
| 375e0 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 4c 69 6e 65 20 6c 65 6e 67 74 68 3a 20 61 69 6d 20 66 | li>...........Line.length:.aim.f |
| 37600 | 6f 72 20 31 30 30 3b 20 75 73 65 20 63 6f 6d 6d 6f 6e 20 73 65 6e 73 65 2e 0a 20 20 20 20 20 20 | or.100;.use.common.sense........ |
| 37620 | 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | ..</li>.......</ul>............. |
| 37640 | 20 3c 68 32 20 69 64 3d 22 4e 61 6d 65 73 22 3e 4e 61 6d 65 73 3c 2f 68 32 3e 0a 0a 20 20 20 20 | .<h2.id="Names">Names</h2>...... |
| 37660 | 20 20 3c 70 3e 0a 20 20 20 20 20 20 52 6f 75 67 68 6c 79 20 73 70 65 61 6b 69 6e 67 3a 20 3c 63 | ..<p>.......Roughly.speaking:.<c |
| 37680 | 6f 64 65 3e 63 61 6d 65 6c 43 61 73 65 46 75 6e 63 74 69 6f 6e 4e 61 6d 65 3c 2f 63 6f 64 65 3e | ode>camelCaseFunctionName</code> |
| 376a0 | 2c 20 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 65 54 79 70 65 4e 61 6d 65 3c 2f 63 6f 64 65 3e | ,.<code>TitleCaseTypeName</code> |
| 376c0 | 2c 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 73 6e 61 6b 65 5f 63 61 73 65 5f 76 61 72 69 61 62 6c | ,.......<code>snake_case_variabl |
| 376e0 | 65 5f 6e 61 6d 65 3c 2f 63 6f 64 65 3e 2e 20 4d 6f 72 65 20 70 72 65 63 69 73 65 6c 79 3a 0a 20 | e_name</code>..More.precisely:.. |
| 37700 | 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | .....</p>.......<ul>.........<li |
| 37720 | 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 | >...........If.<code>x</code>.is |
| 37740 | 20 61 20 3c 63 6f 64 65 3e 73 74 72 75 63 74 3c 2f 63 6f 64 65 3e 20 28 6f 72 20 61 6e 20 61 6c | .a.<code>struct</code>.(or.an.al |
| 37760 | 69 61 73 20 6f 66 20 61 20 3c 63 6f 64 65 3e 73 74 72 75 63 74 3c 2f 63 6f 64 65 3e 29 2c 0a 20 | ias.of.a.<code>struct</code>),.. |
| 37780 | 20 20 20 20 20 20 20 20 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f | .........then.<code>x</code>.sho |
| 377a0 | 75 6c 64 20 62 65 20 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 | uld.be.<code>TitleCase</code>... |
| 377c0 | 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 | .......</li>.........<li>....... |
| 377e0 | 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 6f 74 68 65 72 77 69 73 65 20 | ....If.<code>x</code>.otherwise. |
| 37800 | 69 64 65 6e 74 69 66 69 65 73 20 61 20 74 79 70 65 2c 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 | identifies.a.type,.<code>x</code |
| 37820 | 3e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 3c 63 6f 64 65 3e 73 6e 61 6b 65 5f 63 61 73 65 3c 2f | >.should.have.<code>snake_case</ |
| 37840 | 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | code>..........</li>.........<li |
| 37860 | 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 | >...........If.<code>x</code>.is |
| 37880 | 20 63 61 6c 6c 61 62 6c 65 2c 20 61 6e 64 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 27 73 20 | .callable,.and.<code>x</code>'s. |
| 378a0 | 72 65 74 75 72 6e 20 74 79 70 65 20 69 73 20 3c 63 6f 64 65 3e 74 79 70 65 3c 2f 63 6f 64 65 3e | return.type.is.<code>type</code> |
| 378c0 | 2c 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 20 62 65 20 | ,.then.<code>x</code>.should.be. |
| 378e0 | 3c 63 6f 64 65 3e 54 69 74 6c 65 43 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 20 20 20 20 | <code>TitleCase</code>.......... |
| 37900 | 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 20 49 66 20 | </li>.........<li>...........If. |
| 37920 | 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 69 73 20 6f 74 68 65 72 77 69 73 65 20 63 61 6c 6c | <code>x</code>.is.otherwise.call |
| 37940 | 61 62 6c 65 2c 20 74 68 65 6e 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c 64 | able,.then.<code>x</code>.should |
| 37960 | 20 62 65 20 3c 63 6f 64 65 3e 63 61 6d 65 6c 43 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 20 20 | .be.<code>camelCase</code>...... |
| 37980 | 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 0a 20 20 20 20 20 20 20 20 20 | ....</li>.........<li>.......... |
| 379a0 | 20 4f 74 68 65 72 77 69 73 65 2c 20 3c 63 6f 64 65 3e 78 3c 2f 63 6f 64 65 3e 20 73 68 6f 75 6c | .Otherwise,.<code>x</code>.shoul |
| 379c0 | 64 20 62 65 20 3c 63 6f 64 65 3e 73 6e 61 6b 65 5f 63 61 73 65 3c 2f 63 6f 64 65 3e 2e 0a 20 20 | d.be.<code>snake_case</code>.... |
| 379e0 | 20 20 20 20 20 20 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 | ......</li>.......</ul>.......<p |
| 37a00 | 3e 0a 20 20 20 20 20 20 41 63 72 6f 6e 79 6d 73 2c 20 69 6e 69 74 69 61 6c 69 73 6d 73 2c 20 70 | >.......Acronyms,.initialisms,.p |
| 37a20 | 72 6f 70 65 72 20 6e 6f 75 6e 73 2c 20 6f 72 20 61 6e 79 20 6f 74 68 65 72 20 77 6f 72 64 20 74 | roper.nouns,.or.any.other.word.t |
| 37a40 | 68 61 74 20 68 61 73 20 63 61 70 69 74 61 6c 69 7a 61 74 69 6f 6e 0a 20 20 20 20 20 20 72 75 6c | hat.has.capitalization.......rul |
| 37a60 | 65 73 20 69 6e 20 77 72 69 74 74 65 6e 20 45 6e 67 6c 69 73 68 20 61 72 65 20 73 75 62 6a 65 63 | es.in.written.English.are.subjec |
| 37a80 | 74 20 74 6f 20 6e 61 6d 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 6a 75 73 74 20 6c 69 6b | t.to.naming.conventions.just.lik |
| 37aa0 | 65 20 61 6e 79 20 6f 74 68 65 72 0a 20 20 20 20 20 20 77 6f 72 64 2e 20 45 76 65 6e 20 61 63 72 | e.any.other.......word..Even.acr |
| 37ac0 | 6f 6e 79 6d 73 20 74 68 61 74 20 61 72 65 20 6f 6e 6c 79 20 32 20 6c 65 74 74 65 72 73 20 6c 6f | onyms.that.are.only.2.letters.lo |
| 37ae0 | 6e 67 20 61 72 65 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 73 65 0a 20 20 20 20 20 20 63 6f | ng.are.subject.to.these.......co |
| 37b00 | 6e 76 65 6e 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 0a | nventions........</p>.......<p>. |
| 37b20 | 20 20 20 20 20 20 54 68 65 73 65 20 61 72 65 20 67 65 6e 65 72 61 6c 20 72 75 6c 65 73 20 6f 66 | ......These.are.general.rules.of |
| 37b40 | 20 74 68 75 6d 62 3b 20 69 66 20 69 74 20 6d 61 6b 65 73 20 73 65 6e 73 65 20 74 6f 20 64 6f 20 | .thumb;.if.it.makes.sense.to.do. |
| 37b60 | 73 6f 6d 65 74 68 69 6e 67 20 64 69 66 66 65 72 65 6e 74 2c 0a 20 20 20 20 20 20 64 6f 20 77 68 | something.different,.......do.wh |
| 37b80 | 61 74 20 6d 61 6b 65 73 20 73 65 6e 73 65 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 | at.makes.sense..For.example,.if. |
| 37ba0 | 74 68 65 72 65 20 69 73 20 61 6e 20 65 73 74 61 62 6c 69 73 68 65 64 20 63 6f 6e 76 65 6e 74 69 | there.is.an.established.conventi |
| 37bc0 | 6f 6e 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 20 3c 63 6f 64 65 3e 45 4e 4f 45 4e 54 3c 2f 63 | on.such.as.......<code>ENOENT</c |
| 37be0 | 6f 64 65 3e 2c 20 66 6f 6c 6c 6f 77 20 74 68 65 20 65 73 74 61 62 6c 69 73 68 65 64 20 63 6f 6e | ode>,.follow.the.established.con |
| 37c00 | 76 65 6e 74 69 6f 6e 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | vention........</p>............. |
| 37c20 | 20 3c 68 32 20 69 64 3d 22 45 78 61 6d 70 6c 65 73 22 3e 45 78 61 6d 70 6c 65 73 3c 2f 68 32 3e | .<h2.id="Examples">Examples</h2> |
| 37c40 | 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 6f 64 65 20 63 6c 61 73 73 3d 22 7a 69 67 22 3e 63 | ........<pre><code.class="zig">c |
| 37c60 | 6f 6e 73 74 20 6e 61 6d 65 73 70 61 63 65 5f 6e 61 6d 65 20 3d 20 40 69 6d 70 6f 72 74 28 26 71 | onst.namespace_name.=.@import(&q |
| 37c80 | 75 6f 74 3b 64 69 72 5f 6e 61 6d 65 2f 66 69 6c 65 5f 6e 61 6d 65 2e 7a 69 67 26 71 75 6f 74 3b | uot;dir_name/file_name.zig" |
| 37ca0 | 29 3b 0a 76 61 72 20 67 6c 6f 62 61 6c 5f 76 61 72 3a 20 69 33 32 20 3d 20 75 6e 64 65 66 69 6e | );.var.global_var:.i32.=.undefin |
| 37cc0 | 65 64 3b 0a 63 6f 6e 73 74 20 63 6f 6e 73 74 5f 6e 61 6d 65 20 3d 20 34 32 3b 0a 63 6f 6e 73 74 | ed;.const.const_name.=.42;.const |
| 37ce0 | 20 70 72 69 6d 69 74 69 76 65 5f 74 79 70 65 5f 61 6c 69 61 73 20 3d 20 66 33 32 3b 0a 63 6f 6e | .primitive_type_alias.=.f32;.con |
| 37d00 | 73 74 20 73 74 72 69 6e 67 5f 61 6c 69 61 73 20 3d 20 5b 5d 75 38 3b 0a 0a 63 6f 6e 73 74 20 53 | st.string_alias.=.[]u8;..const.S |
| 37d20 | 74 72 75 63 74 4e 61 6d 65 20 3d 20 73 74 72 75 63 74 20 7b 7d 3b 0a 63 6f 6e 73 74 20 53 74 72 | tructName.=.struct.{};.const.Str |
| 37d40 | 75 63 74 41 6c 69 61 73 20 3d 20 53 74 72 75 63 74 4e 61 6d 65 3b 0a 0a 66 6e 20 66 75 6e 63 74 | uctAlias.=.StructName;..fn.funct |
| 37d60 | 69 6f 6e 4e 61 6d 65 28 70 61 72 61 6d 5f 6e 61 6d 65 3a 20 54 79 70 65 4e 61 6d 65 29 20 76 6f | ionName(param_name:.TypeName).vo |
| 37d80 | 69 64 20 7b 0a 20 20 20 20 76 61 72 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 65 72 20 3d 20 66 | id.{.....var.functionPointer.=.f |
| 37da0 | 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 65 72 | unctionName;.....functionPointer |
| 37dc0 | 28 29 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 65 72 20 3d 20 6f 74 68 65 72 46 | ();.....functionPointer.=.otherF |
| 37de0 | 75 6e 63 74 69 6f 6e 3b 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 50 6f 69 6e 74 65 72 28 29 3b 0a | unction;.....functionPointer();. |
| 37e00 | 7d 0a 63 6f 6e 73 74 20 66 75 6e 63 74 69 6f 6e 41 6c 69 61 73 20 3d 20 66 75 6e 63 74 69 6f 6e | }.const.functionAlias.=.function |
| 37e20 | 4e 61 6d 65 3b 0a 0a 66 6e 20 4c 69 73 74 54 65 6d 70 6c 61 74 65 46 75 6e 63 74 69 6f 6e 28 63 | Name;..fn.ListTemplateFunction(c |
| 37e40 | 6f 6d 70 74 69 6d 65 20 43 68 69 6c 64 54 79 70 65 3a 20 74 79 70 65 2c 20 63 6f 6d 70 74 69 6d | omptime.ChildType:.type,.comptim |
| 37e60 | 65 20 66 69 78 65 64 5f 73 69 7a 65 3a 20 75 73 69 7a 65 29 20 74 79 70 65 20 7b 0a 20 20 20 20 | e.fixed_size:.usize).type.{..... |
| 37e80 | 72 65 74 75 72 6e 20 4c 69 73 74 28 43 68 69 6c 64 54 79 70 65 2c 20 66 69 78 65 64 5f 73 69 7a | return.List(ChildType,.fixed_siz |
| 37ea0 | 65 29 3b 0a 7d 0a 0a 66 6e 20 53 68 6f 72 74 4c 69 73 74 28 63 6f 6d 70 74 69 6d 65 20 54 3a 20 | e);.}..fn.ShortList(comptime.T:. |
| 37ec0 | 74 79 70 65 2c 20 63 6f 6d 70 74 69 6d 65 20 6e 3a 20 75 73 69 7a 65 29 20 74 79 70 65 20 7b 0a | type,.comptime.n:.usize).type.{. |
| 37ee0 | 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 75 63 74 20 7b 0a 20 20 20 20 20 20 20 20 66 69 65 6c | ....return.struct.{.........fiel |
| 37f00 | 64 5f 6e 61 6d 65 3a 20 5b 6e 5d 54 2c 0a 20 20 20 20 20 20 20 20 66 6e 20 6d 65 74 68 6f 64 4e | d_name:.[n]T,.........fn.methodN |
| 37f20 | 61 6d 65 28 29 20 76 6f 69 64 20 7b 7d 0a 20 20 20 20 7d 3b 0a 7d 0a 0a 2f 2f 20 54 68 65 20 77 | ame().void.{}.....};.}..//.The.w |
| 37f40 | 6f 72 64 20 58 4d 4c 20 6c 6f 73 65 73 20 69 74 73 20 63 61 73 69 6e 67 20 77 68 65 6e 20 75 73 | ord.XML.loses.its.casing.when.us |
| 37f60 | 65 64 20 69 6e 20 5a 69 67 20 69 64 65 6e 74 69 66 69 65 72 73 2e 0a 63 6f 6e 73 74 20 78 6d 6c | ed.in.Zig.identifiers..const.xml |
| 37f80 | 5f 64 6f 63 75 6d 65 6e 74 20 3d 0a 20 20 20 20 5c 5c 26 6c 74 3b 3f 78 6d 6c 20 76 65 72 73 69 | _document.=.....\\<?xml.versi |
| 37fa0 | 6f 6e 3d 26 71 75 6f 74 3b 31 2e 30 26 71 75 6f 74 3b 20 65 6e 63 6f 64 69 6e 67 3d 26 71 75 6f | on="1.0".encoding=&quo |
| 37fc0 | 74 3b 55 54 46 2d 38 26 71 75 6f 74 3b 3f 26 67 74 3b 0a 20 20 20 20 5c 5c 26 6c 74 3b 64 6f 63 | t;UTF-8"?>.....\\<doc |
| 37fe0 | 75 6d 65 6e 74 26 67 74 3b 0a 20 20 20 20 5c 5c 26 6c 74 3b 2f 64 6f 63 75 6d 65 6e 74 26 67 74 | ument>.....\\</document> |
| 38000 | 3b 0a 3b 0a 63 6f 6e 73 74 20 58 6d 6c 50 61 72 73 65 72 20 3d 20 73 74 72 75 63 74 20 7b 7d 3b | ;.;.const.XmlParser.=.struct.{}; |
| 38020 | 0a 0a 2f 2f 20 54 68 65 20 69 6e 69 74 69 61 6c 73 20 42 45 20 28 42 69 67 20 45 6e 64 69 61 6e | ..//.The.initials.BE.(Big.Endian |
| 38040 | 29 20 61 72 65 20 6a 75 73 74 20 61 6e 6f 74 68 65 72 20 77 6f 72 64 20 69 6e 20 5a 69 67 20 69 | ).are.just.another.word.in.Zig.i |
| 38060 | 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65 73 2e 0a 66 6e 20 72 65 61 64 55 33 32 42 65 28 29 20 | dentifier.names..fn.readU32Be(). |
| 38080 | 75 33 32 20 7b 7d 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 3c 70 3e 0a 20 20 | u32.{}</code></pre>.......<p>... |
| 380a0 | 20 20 20 20 53 65 65 20 74 68 65 20 5a 69 67 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 | ....See.the.Zig.Standard.Library |
| 380c0 | 20 66 6f 72 20 6d 6f 72 65 20 65 78 61 6d 70 6c 65 73 2e 0a 20 20 20 20 20 20 3c 2f 70 3e 0a 20 | .for.more.examples........</p>.. |
| 380e0 | 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 53 6f 75 72 63 | ...................<h1.id="Sourc |
| 38100 | 65 2d 45 6e 63 6f 64 69 6e 67 22 3e 53 6f 75 72 63 65 20 45 6e 63 6f 64 69 6e 67 3c 2f 68 31 3e | e-Encoding">Source.Encoding</h1> |
| 38120 | 0a 0a 20 20 20 20 20 20 3c 70 3e 5a 69 67 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 65 6e | ........<p>Zig.source.code.is.en |
| 38140 | 63 6f 64 65 64 20 69 6e 20 55 54 46 2d 38 2e 20 41 6e 20 69 6e 76 61 6c 69 64 20 55 54 46 2d 38 | coded.in.UTF-8..An.invalid.UTF-8 |
| 38160 | 20 62 79 74 65 20 73 65 71 75 65 6e 63 65 20 72 65 73 75 6c 74 73 20 69 6e 20 61 20 63 6f 6d 70 | .byte.sequence.results.in.a.comp |
| 38180 | 69 6c 65 20 65 72 72 6f 72 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 72 6f 75 67 68 6f | ile.error.</p>.......<p>Througho |
| 381a0 | 75 74 20 61 6c 6c 20 7a 69 67 20 73 6f 75 72 63 65 20 63 6f 64 65 20 28 69 6e 63 6c 75 64 69 6e | ut.all.zig.source.code.(includin |
| 381c0 | 67 20 69 6e 20 63 6f 6d 6d 65 6e 74 73 29 2c 20 73 6f 6d 65 20 63 6f 64 65 70 6f 69 6e 74 73 20 | g.in.comments),.some.codepoints. |
| 381e0 | 61 72 65 20 6e 65 76 65 72 20 61 6c 6c 6f 77 65 64 3a 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 75 6c | are.never.allowed:</p>.......<ul |
| 38200 | 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 73 63 69 69 20 63 6f 6e 74 72 6f 6c 20 63 68 61 72 | >.........<li>Ascii.control.char |
| 38220 | 61 63 74 65 72 73 2c 20 65 78 63 65 70 74 20 66 6f 72 20 55 2b 30 30 30 61 20 28 4c 46 29 3a 20 | acters,.except.for.U+000a.(LF):. |
| 38240 | 55 2b 30 30 30 30 20 2d 20 55 2b 30 30 30 39 2c 20 55 2b 30 30 30 62 20 2d 20 55 2b 30 30 30 31 | U+0000.-.U+0009,.U+000b.-.U+0001 |
| 38260 | 66 2c 20 55 2b 30 30 37 66 2e 20 28 4e 6f 74 65 20 74 68 61 74 20 57 69 6e 64 6f 77 73 20 6c 69 | f,.U+007f..(Note.that.Windows.li |
| 38280 | 6e 65 20 65 6e 64 69 6e 67 73 20 28 43 52 4c 46 29 20 61 72 65 20 6e 6f 74 20 61 6c 6c 6f 77 65 | ne.endings.(CRLF).are.not.allowe |
| 382a0 | 64 2c 20 61 6e 64 20 68 61 72 64 20 74 61 62 73 20 61 72 65 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 | d,.and.hard.tabs.are.not.allowed |
| 382c0 | 2e 29 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4e 6f 6e 2d 41 73 63 69 69 20 55 6e | .)</li>.........<li>Non-Ascii.Un |
| 382e0 | 69 63 6f 64 65 20 6c 69 6e 65 20 65 6e 64 69 6e 67 73 3a 20 55 2b 30 30 38 35 20 28 4e 45 4c 29 | icode.line.endings:.U+0085.(NEL) |
| 38300 | 2c 20 55 2b 32 30 32 38 20 28 4c 53 29 2c 20 55 2b 32 30 32 39 20 28 50 53 29 2e 3c 2f 6c 69 3e | ,.U+2028.(LS),.U+2029.(PS).</li> |
| 38320 | 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 3c 70 3e 54 68 65 20 63 6f 64 65 70 6f | .......</ul>.......<p>The.codepo |
| 38340 | 69 6e 74 20 55 2b 30 30 30 61 20 28 4c 46 29 20 28 77 68 69 63 68 20 69 73 20 65 6e 63 6f 64 65 | int.U+000a.(LF).(which.is.encode |
| 38360 | 64 20 61 73 20 74 68 65 20 73 69 6e 67 6c 65 2d 62 79 74 65 20 76 61 6c 75 65 20 30 78 30 61 29 | d.as.the.single-byte.value.0x0a) |
| 38380 | 20 69 73 20 74 68 65 20 6c 69 6e 65 20 74 65 72 6d 69 6e 61 74 6f 72 20 63 68 61 72 61 63 74 65 | .is.the.line.terminator.characte |
| 383a0 | 72 2e 20 54 68 69 73 20 63 68 61 72 61 63 74 65 72 20 61 6c 77 61 79 73 20 74 65 72 6d 69 6e 61 | r..This.character.always.termina |
| 383c0 | 74 65 73 20 61 20 6c 69 6e 65 20 6f 66 20 7a 69 67 20 73 6f 75 72 63 65 20 63 6f 64 65 20 28 65 | tes.a.line.of.zig.source.code.(e |
| 383e0 | 78 63 65 70 74 20 70 6f 73 73 62 6c 79 20 74 68 65 20 6c 61 73 74 20 6c 69 6e 65 20 6f 66 20 74 | xcept.possbly.the.last.line.of.t |
| 38400 | 68 65 20 66 69 6c 65 29 2e 3c 2f 70 3e 0a 20 20 20 20 20 20 3c 70 3e 46 6f 72 20 73 6f 6d 65 20 | he.file).</p>.......<p>For.some. |
| 38420 | 64 69 73 63 75 73 73 69 6f 6e 20 6f 6e 20 74 68 65 20 72 61 74 69 6f 6e 61 6c 65 20 62 65 68 69 | discussion.on.the.rationale.behi |
| 38440 | 6e 64 20 74 68 65 73 65 20 64 65 73 69 67 6e 20 64 65 63 69 73 69 6f 6e 73 2c 20 73 65 65 20 3c | nd.these.design.decisions,.see.< |
| 38460 | 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 69 67 2d 6c | a.href="https://github.com/zig-l |
| 38480 | 61 6e 67 2f 7a 69 67 2f 69 73 73 75 65 73 2f 36 36 33 22 3e 69 73 73 75 65 20 23 36 36 33 3c 2f | ang/zig/issues/663">issue.#663</ |
| 384a0 | 61 3e 3c 2f 70 3e 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3c 68 31 20 69 64 3d 22 47 72 61 6d | a></p>..............<h1.id="Gram |
| 384c0 | 6d 61 72 22 3e 47 72 61 6d 6d 61 72 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 20 3c 70 72 65 3e 3c 63 | mar">Grammar</h1>........<pre><c |
| 384e0 | 6f 64 65 20 63 6c 61 73 73 3d 22 6e 6f 68 69 67 68 6c 69 67 68 74 22 3e 52 6f 6f 74 20 3d 20 6d | ode.class="nohighlight">Root.=.m |
| 38500 | 61 6e 79 28 54 6f 70 4c 65 76 65 6c 49 74 65 6d 29 20 45 4f 46 0a 0a 54 6f 70 4c 65 76 65 6c 49 | any(TopLevelItem).EOF..TopLevelI |
| 38520 | 74 65 6d 20 3d 20 43 6f 6d 70 54 69 6d 65 45 78 70 72 65 73 73 69 6f 6e 28 42 6c 6f 63 6b 29 20 | tem.=.CompTimeExpression(Block). |
| 38540 | 7c 20 54 6f 70 4c 65 76 65 6c 44 65 63 6c 20 7c 20 54 65 73 74 44 65 63 6c 0a 0a 54 65 73 74 44 | |.TopLevelDecl.|.TestDecl..TestD |
| 38560 | 65 63 6c 20 3d 20 22 74 65 73 74 22 20 53 74 72 69 6e 67 20 42 6c 6f 63 6b 0a 0a 54 6f 70 4c 65 | ecl.=."test".String.Block..TopLe |
| 38580 | 76 65 6c 44 65 63 6c 20 3d 20 6f 70 74 69 6f 6e 28 22 70 75 62 22 29 20 28 46 6e 44 65 66 20 7c | velDecl.=.option("pub").(FnDef.| |
| 385a0 | 20 45 78 74 65 72 6e 44 65 63 6c 20 7c 20 47 6c 6f 62 61 6c 56 61 72 44 65 63 6c 20 7c 20 55 73 | .ExternDecl.|.GlobalVarDecl.|.Us |
| 385c0 | 65 44 65 63 6c 29 0a 0a 47 6c 6f 62 61 6c 56 61 72 44 65 63 6c 20 3d 20 6f 70 74 69 6f 6e 28 22 | eDecl)..GlobalVarDecl.=.option(" |
| 385e0 | 65 78 70 6f 72 74 22 29 20 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 20 22 3b 22 | export").VariableDeclaration.";" |
| 38600 | 0a 0a 4c 6f 63 61 6c 56 61 72 44 65 63 6c 20 3d 20 6f 70 74 69 6f 6e 28 22 63 6f 6d 70 74 69 6d | ..LocalVarDecl.=.option("comptim |
| 38620 | 65 22 29 20 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 0a 0a 56 61 72 69 61 62 6c | e").VariableDeclaration..Variabl |
| 38640 | 65 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 28 22 76 61 72 22 20 7c 20 22 63 6f 6e 73 74 22 29 | eDeclaration.=.("var".|."const") |
| 38660 | 20 53 79 6d 62 6f 6c 20 6f 70 74 69 6f 6e 28 22 3a 22 20 54 79 70 65 45 78 70 72 29 20 6f 70 74 | .Symbol.option(":".TypeExpr).opt |
| 38680 | 69 6f 6e 28 22 61 6c 69 67 6e 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 29 20 | ion("align"."(".Expression.")"). |
| 386a0 | 6f 70 74 69 6f 6e 28 22 73 65 63 74 69 6f 6e 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 | option("section"."(".Expression. |
| 386c0 | 22 29 22 29 20 22 3d 22 20 45 78 70 72 65 73 73 69 6f 6e 0a 0a 43 6f 6e 74 61 69 6e 65 72 4d 65 | ")")."=".Expression..ContainerMe |
| 386e0 | 6d 62 65 72 20 3d 20 28 43 6f 6e 74 61 69 6e 65 72 46 69 65 6c 64 20 7c 20 46 6e 44 65 66 20 7c | mber.=.(ContainerField.|.FnDef.| |
| 38700 | 20 47 6c 6f 62 61 6c 56 61 72 44 65 63 6c 29 0a 0a 43 6f 6e 74 61 69 6e 65 72 46 69 65 6c 64 20 | .GlobalVarDecl)..ContainerField. |
| 38720 | 3d 20 53 79 6d 62 6f 6c 20 6f 70 74 69 6f 6e 28 22 3a 22 20 50 72 65 66 69 78 4f 70 45 78 70 72 | =.Symbol.option(":".PrefixOpExpr |
| 38740 | 65 73 73 69 6f 6e 20 6f 70 74 69 6f 6e 28 22 3d 22 20 50 72 65 66 69 78 4f 70 45 78 70 72 65 73 | ession.option("=".PrefixOpExpres |
| 38760 | 73 69 6f 6e 20 22 2c 22 0a 0a 55 73 65 44 65 63 6c 20 3d 20 22 75 73 65 22 20 45 78 70 72 65 73 | sion.","..UseDecl.=."use".Expres |
| 38780 | 73 69 6f 6e 20 22 3b 22 0a 0a 45 78 74 65 72 6e 44 65 63 6c 20 3d 20 22 65 78 74 65 72 6e 22 20 | sion.";"..ExternDecl.=."extern". |
| 387a0 | 6f 70 74 69 6f 6e 28 53 74 72 69 6e 67 29 20 28 46 6e 50 72 6f 74 6f 20 7c 20 56 61 72 69 61 62 | option(String).(FnProto.|.Variab |
| 387c0 | 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 29 20 22 3b 22 0a 0a 46 6e 50 72 6f 74 6f 20 3d 20 6f 70 | leDeclaration).";"..FnProto.=.op |
| 387e0 | 74 69 6f 6e 28 22 6e 61 6b 65 64 63 63 22 20 7c 20 22 73 74 64 63 61 6c 6c 63 63 22 20 7c 20 22 | tion("nakedcc".|."stdcallcc".|." |
| 38800 | 65 78 74 65 72 6e 22 20 7c 20 28 22 61 73 79 6e 63 22 20 6f 70 74 69 6f 6e 28 22 28 22 20 45 78 | extern".|.("async".option("(".Ex |
| 38820 | 70 72 65 73 73 69 6f 6e 20 22 29 22 29 29 29 20 22 66 6e 22 20 6f 70 74 69 6f 6e 28 53 79 6d 62 | pression.")")))."fn".option(Symb |
| 38840 | 6f 6c 29 20 50 61 72 61 6d 44 65 63 6c 4c 69 73 74 20 6f 70 74 69 6f 6e 28 22 61 6c 69 67 6e 22 | ol).ParamDeclList.option("align" |
| 38860 | 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 29 20 6f 70 74 69 6f 6e 28 22 73 65 63 | ."(".Expression.")").option("sec |
| 38880 | 74 69 6f 6e 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 29 20 6f 70 74 69 6f 6e | tion"."(".Expression.")").option |
| 388a0 | 28 22 21 22 29 20 28 54 79 70 65 45 78 70 72 20 7c 20 22 76 61 72 22 29 0a 0a 46 6e 44 65 66 20 | ("!").(TypeExpr.|."var")..FnDef. |
| 388c0 | 3d 20 6f 70 74 69 6f 6e 28 22 69 6e 6c 69 6e 65 22 20 7c 20 22 65 78 70 6f 72 74 22 29 20 46 6e | =.option("inline".|."export").Fn |
| 388e0 | 50 72 6f 74 6f 20 42 6c 6f 63 6b 0a 0a 50 61 72 61 6d 44 65 63 6c 4c 69 73 74 20 3d 20 22 28 22 | Proto.Block..ParamDeclList.=."(" |
| 38900 | 20 6c 69 73 74 28 50 61 72 61 6d 44 65 63 6c 2c 20 22 2c 22 29 20 22 29 22 0a 0a 50 61 72 61 6d | .list(ParamDecl,.",").")"..Param |
| 38920 | 44 65 63 6c 20 3d 20 6f 70 74 69 6f 6e 28 22 6e 6f 61 6c 69 61 73 22 20 7c 20 22 63 6f 6d 70 74 | Decl.=.option("noalias".|."compt |
| 38940 | 69 6d 65 22 29 20 6f 70 74 69 6f 6e 28 53 79 6d 62 6f 6c 20 22 3a 22 29 20 28 54 79 70 65 45 78 | ime").option(Symbol.":").(TypeEx |
| 38960 | 70 72 20 7c 20 22 76 61 72 22 20 7c 20 22 2e 2e 2e 22 29 0a 0a 42 6c 6f 63 6b 20 3d 20 6f 70 74 | pr.|."var".|."...")..Block.=.opt |
| 38980 | 69 6f 6e 28 53 79 6d 62 6f 6c 20 22 3a 22 29 20 22 7b 22 20 6d 61 6e 79 28 53 74 61 74 65 6d 65 | ion(Symbol.":")."{".many(Stateme |
| 389a0 | 6e 74 29 20 22 7d 22 0a 0a 53 74 61 74 65 6d 65 6e 74 20 3d 20 4c 6f 63 61 6c 56 61 72 44 65 63 | nt)."}"..Statement.=.LocalVarDec |
| 389c0 | 6c 20 22 3b 22 20 7c 20 44 65 66 65 72 28 42 6c 6f 63 6b 29 20 7c 20 44 65 66 65 72 28 45 78 70 | l.";".|.Defer(Block).|.Defer(Exp |
| 389e0 | 72 65 73 73 69 6f 6e 29 20 22 3b 22 20 7c 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 42 | ression).";".|.BlockExpression(B |
| 38a00 | 6c 6f 63 6b 29 20 7c 20 45 78 70 72 65 73 73 69 6f 6e 20 22 3b 22 20 7c 20 22 3b 22 0a 0a 54 79 | lock).|.Expression.";".|.";"..Ty |
| 38a20 | 70 65 45 78 70 72 20 3d 20 45 72 72 6f 72 53 65 74 45 78 70 72 0a 0a 45 72 72 6f 72 53 65 74 45 | peExpr.=.ErrorSetExpr..ErrorSetE |
| 38a40 | 78 70 72 20 3d 20 28 50 72 65 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 20 22 21 22 20 50 72 | xpr.=.(PrefixOpExpression."!".Pr |
| 38a60 | 65 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 29 20 7c 20 50 72 65 66 69 78 4f 70 45 78 70 72 | efixOpExpression).|.PrefixOpExpr |
| 38a80 | 65 73 73 69 6f 6e 0a 0a 42 6c 6f 63 6b 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 6c 6f 63 | ession..BlockOrExpression.=.Bloc |
| 38aa0 | 6b 20 7c 20 45 78 70 72 65 73 73 69 6f 6e 0a 0a 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 54 72 79 | k.|.Expression..Expression.=.Try |
| 38ac0 | 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 52 65 74 75 72 6e 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 | Expression.|.ReturnExpression.|. |
| 38ae0 | 42 72 65 61 6b 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 | BreakExpression.|.AssignmentExpr |
| 38b00 | 65 73 73 69 6f 6e 20 7c 20 43 61 6e 63 65 6c 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 52 65 73 75 | ession.|.CancelExpression.|.Resu |
| 38b20 | 6d 65 45 78 70 72 65 73 73 69 6f 6e 0a 0a 41 73 6d 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 61 | meExpression..AsmExpression.=."a |
| 38b40 | 73 6d 22 20 6f 70 74 69 6f 6e 28 22 76 6f 6c 61 74 69 6c 65 22 29 20 22 28 22 20 53 74 72 69 6e | sm".option("volatile")."(".Strin |
| 38b60 | 67 20 6f 70 74 69 6f 6e 28 41 73 6d 4f 75 74 70 75 74 29 20 22 29 22 0a 0a 41 73 6d 4f 75 74 70 | g.option(AsmOutput).")"..AsmOutp |
| 38b80 | 75 74 20 3d 20 22 3a 22 20 6c 69 73 74 28 41 73 6d 4f 75 74 70 75 74 49 74 65 6d 2c 20 22 2c 22 | ut.=.":".list(AsmOutputItem,."," |
| 38ba0 | 29 20 6f 70 74 69 6f 6e 28 41 73 6d 49 6e 70 75 74 29 0a 0a 41 73 6d 49 6e 70 75 74 20 3d 20 22 | ).option(AsmInput)..AsmInput.=." |
| 38bc0 | 3a 22 20 6c 69 73 74 28 41 73 6d 49 6e 70 75 74 49 74 65 6d 2c 20 22 2c 22 29 20 6f 70 74 69 6f | :".list(AsmInputItem,.",").optio |
| 38be0 | 6e 28 41 73 6d 43 6c 6f 62 62 65 72 73 29 0a 0a 41 73 6d 4f 75 74 70 75 74 49 74 65 6d 20 3d 20 | n(AsmClobbers)..AsmOutputItem.=. |
| 38c00 | 22 5b 22 20 53 79 6d 62 6f 6c 20 22 5d 22 20 53 74 72 69 6e 67 20 22 28 22 20 28 53 79 6d 62 6f | "[".Symbol."]".String."(".(Symbo |
| 38c20 | 6c 20 7c 20 22 2d 26 67 74 3b 22 20 54 79 70 65 45 78 70 72 29 20 22 29 22 0a 0a 41 73 6d 49 6e | l.|."->".TypeExpr).")"..AsmIn |
| 38c40 | 70 75 74 49 74 65 6d 20 3d 20 22 5b 22 20 53 79 6d 62 6f 6c 20 22 5d 22 20 53 74 72 69 6e 67 20 | putItem.=."[".Symbol."]".String. |
| 38c60 | 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 0a 0a 41 73 6d 43 6c 6f 62 62 65 72 73 3d | "(".Expression.")"..AsmClobbers= |
| 38c80 | 20 22 3a 22 20 6c 69 73 74 28 53 74 72 69 6e 67 2c 20 22 2c 22 29 0a 0a 55 6e 77 72 61 70 45 78 | .":".list(String,.",")..UnwrapEx |
| 38ca0 | 70 72 65 73 73 69 6f 6e 20 3d 20 42 6f 6f 6c 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 28 55 6e 77 | pression.=.BoolOrExpression.(Unw |
| 38cc0 | 72 61 70 4e 75 6c 6c 61 62 6c 65 20 7c 20 55 6e 77 72 61 70 45 72 72 6f 72 29 20 7c 20 42 6f 6f | rapNullable.|.UnwrapError).|.Boo |
| 38ce0 | 6c 4f 72 45 78 70 72 65 73 73 69 6f 6e 0a 0a 55 6e 77 72 61 70 4e 75 6c 6c 61 62 6c 65 20 3d 20 | lOrExpression..UnwrapNullable.=. |
| 38d00 | 22 3f 3f 22 20 45 78 70 72 65 73 73 69 6f 6e 0a 0a 55 6e 77 72 61 70 45 72 72 6f 72 20 3d 20 22 | "??".Expression..UnwrapError.=." |
| 38d20 | 63 61 74 63 68 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 45 78 | catch".option("|".Symbol."|").Ex |
| 38d40 | 70 72 65 73 73 69 6f 6e 0a 0a 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 20 3d | pression..AssignmentExpression.= |
| 38d60 | 20 55 6e 77 72 61 70 45 78 70 72 65 73 73 69 6f 6e 20 41 73 73 69 67 6e 6d 65 6e 74 4f 70 65 72 | .UnwrapExpression.AssignmentOper |
| 38d80 | 61 74 6f 72 20 55 6e 77 72 61 70 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 55 6e 77 72 61 70 45 78 | ator.UnwrapExpression.|.UnwrapEx |
| 38da0 | 70 72 65 73 73 69 6f 6e 0a 0a 41 73 73 69 67 6e 6d 65 6e 74 4f 70 65 72 61 74 6f 72 20 3d 20 22 | pression..AssignmentOperator.=." |
| 38dc0 | 3d 22 20 7c 20 22 2a 3d 22 20 7c 20 22 2f 3d 22 20 7c 20 22 25 3d 22 20 7c 20 22 2b 3d 22 20 7c | =".|."*=".|."/=".|."%=".|."+=".| |
| 38de0 | 20 22 2d 3d 22 20 7c 20 22 26 6c 74 3b 26 6c 74 3b 3d 22 20 7c 20 22 26 67 74 3b 26 67 74 3b 3d | ."-=".|."<<=".|.">>= |
| 38e00 | 22 20 7c 20 22 26 61 6d 70 3b 3d 22 20 7c 20 22 5e 3d 22 20 7c 20 22 7c 3d 22 20 7c 20 22 2a 25 | ".|."&=".|."^=".|."|=".|."*% |
| 38e20 | 3d 22 20 7c 20 22 2b 25 3d 22 20 7c 20 22 2d 25 3d 22 0a 0a 42 6c 6f 63 6b 45 78 70 72 65 73 73 | =".|."+%=".|."-%="..BlockExpress |
| 38e40 | 69 6f 6e 28 62 6f 64 79 29 20 3d 20 42 6c 6f 63 6b 20 7c 20 49 66 45 78 70 72 65 73 73 69 6f 6e | ion(body).=.Block.|.IfExpression |
| 38e60 | 28 62 6f 64 79 29 20 7c 20 49 66 45 72 72 6f 72 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 | (body).|.IfErrorExpression(body) |
| 38e80 | 20 7c 20 54 65 73 74 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 7c 20 57 68 69 6c 65 45 | .|.TestExpression(body).|.WhileE |
| 38ea0 | 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 7c 20 46 6f 72 45 78 70 72 65 73 73 69 6f 6e 28 | xpression(body).|.ForExpression( |
| 38ec0 | 62 6f 64 79 29 20 7c 20 53 77 69 74 63 68 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 43 6f 6d 70 54 | body).|.SwitchExpression.|.CompT |
| 38ee0 | 69 6d 65 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 7c 20 53 75 73 70 65 6e 64 45 78 70 | imeExpression(body).|.SuspendExp |
| 38f00 | 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 0a 0a 43 6f 6d 70 54 69 6d 65 45 78 70 72 65 73 73 69 6f | ression(body)..CompTimeExpressio |
| 38f20 | 6e 28 62 6f 64 79 29 20 3d 20 22 63 6f 6d 70 74 69 6d 65 22 20 62 6f 64 79 0a 0a 53 77 69 74 63 | n(body).=."comptime".body..Switc |
| 38f40 | 68 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 73 77 69 74 63 68 22 20 22 28 22 20 45 78 70 72 65 | hExpression.=."switch"."(".Expre |
| 38f60 | 73 73 69 6f 6e 20 22 29 22 20 22 7b 22 20 6d 61 6e 79 28 53 77 69 74 63 68 50 72 6f 6e 67 29 20 | ssion.")"."{".many(SwitchProng). |
| 38f80 | 22 7d 22 0a 0a 53 77 69 74 63 68 50 72 6f 6e 67 20 3d 20 28 6c 69 73 74 28 53 77 69 74 63 68 49 | "}"..SwitchProng.=.(list(SwitchI |
| 38fa0 | 74 65 6d 2c 20 22 2c 22 29 20 7c 20 22 65 6c 73 65 22 29 20 22 3d 26 67 74 3b 22 20 6f 70 74 69 | tem,.",").|."else")."=>".opti |
| 38fc0 | 6f 6e 28 22 7c 22 20 6f 70 74 69 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 45 | on("|".option("*").Symbol."|").E |
| 38fe0 | 78 70 72 65 73 73 69 6f 6e 20 22 2c 22 0a 0a 53 77 69 74 63 68 49 74 65 6d 20 3d 20 45 78 70 72 | xpression.","..SwitchItem.=.Expr |
| 39000 | 65 73 73 69 6f 6e 20 7c 20 28 45 78 70 72 65 73 73 69 6f 6e 20 22 2e 2e 2e 22 20 45 78 70 72 65 | ession.|.(Expression."...".Expre |
| 39020 | 73 73 69 6f 6e 29 0a 0a 46 6f 72 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 6f 70 | ssion)..ForExpression(body).=.op |
| 39040 | 74 69 6f 6e 28 53 79 6d 62 6f 6c 20 22 3a 22 29 20 6f 70 74 69 6f 6e 28 22 69 6e 6c 69 6e 65 22 | tion(Symbol.":").option("inline" |
| 39060 | 29 20 22 66 6f 72 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 20 6f 70 74 69 6f | )."for"."(".Expression.")".optio |
| 39080 | 6e 28 22 7c 22 20 6f 70 74 69 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f 6c 20 6f 70 74 69 6f 6e 28 | n("|".option("*").Symbol.option( |
| 390a0 | 22 2c 22 20 53 79 6d 62 6f 6c 29 20 22 7c 22 29 20 62 6f 64 79 20 6f 70 74 69 6f 6e 28 22 65 6c | ",".Symbol)."|").body.option("el |
| 390c0 | 73 65 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 29 0a 0a 42 6f 6f 6c | se".BlockExpression(body))..Bool |
| 390e0 | 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 6f 6f 6c 41 6e 64 45 78 70 72 65 73 73 69 6f 6e | OrExpression.=.BoolAndExpression |
| 39100 | 20 22 6f 72 22 20 42 6f 6f 6c 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 42 6f 6f 6c 41 6e 64 | ."or".BoolOrExpression.|.BoolAnd |
| 39120 | 45 78 70 72 65 73 73 69 6f 6e 0a 0a 52 65 74 75 72 6e 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 | Expression..ReturnExpression.=." |
| 39140 | 72 65 74 75 72 6e 22 20 6f 70 74 69 6f 6e 28 45 78 70 72 65 73 73 69 6f 6e 29 0a 0a 54 72 79 45 | return".option(Expression)..TryE |
| 39160 | 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 74 72 79 22 20 45 78 70 72 65 73 73 69 6f 6e 0a 0a 41 77 | xpression.=."try".Expression..Aw |
| 39180 | 61 69 74 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 61 77 61 69 74 22 20 45 78 70 72 65 73 73 69 | aitExpression.=."await".Expressi |
| 391a0 | 6f 6e 0a 0a 42 72 65 61 6b 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 62 72 65 61 6b 22 20 6f 70 | on..BreakExpression.=."break".op |
| 391c0 | 74 69 6f 6e 28 22 3a 22 20 53 79 6d 62 6f 6c 29 20 6f 70 74 69 6f 6e 28 45 78 70 72 65 73 73 69 | tion(":".Symbol).option(Expressi |
| 391e0 | 6f 6e 29 0a 0a 43 61 6e 63 65 6c 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 63 61 6e 63 65 6c 22 | on)..CancelExpression.=."cancel" |
| 39200 | 20 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 52 65 73 75 6d 65 45 78 70 72 65 73 73 69 6f 6e 20 3d | .Expression;..ResumeExpression.= |
| 39220 | 20 22 72 65 73 75 6d 65 22 20 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 44 65 66 65 72 28 62 6f 64 | ."resume".Expression;..Defer(bod |
| 39240 | 79 29 20 3d 20 28 22 64 65 66 65 72 22 20 7c 20 22 64 65 66 65 72 72 6f 72 22 29 20 62 6f 64 79 | y).=.("defer".|."deferror").body |
| 39260 | 0a 0a 49 66 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 22 69 66 22 20 22 28 22 20 | ..IfExpression(body).=."if"."(". |
| 39280 | 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 20 62 6f 64 79 20 6f 70 74 69 6f 6e 28 22 65 6c 73 65 | Expression.")".body.option("else |
| 392a0 | 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 29 0a 0a 53 75 73 70 65 6e | ".BlockExpression(body))..Suspen |
| 392c0 | 64 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 22 73 75 73 70 65 6e 64 22 20 6f 70 | dExpression(body).=."suspend".op |
| 392e0 | 74 69 6f 6e 28 28 22 7c 22 20 53 79 6d 62 6f 6c 20 22 7c 22 20 62 6f 64 79 29 29 0a 0a 49 66 45 | tion(("|".Symbol."|".body))..IfE |
| 39300 | 72 72 6f 72 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 22 69 66 22 20 22 28 22 20 | rrorExpression(body).=."if"."(". |
| 39320 | 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 6f 70 74 69 6f 6e | Expression.")".option("|".option |
| 39340 | 28 22 2a 22 29 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 62 6f 64 79 20 22 65 6c 73 65 22 20 22 7c | ("*").Symbol."|").body."else"."| |
| 39360 | 22 20 53 79 6d 62 6f 6c 20 22 7c 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 | ".Symbol."|".BlockExpression(bod |
| 39380 | 79 29 0a 0a 54 65 73 74 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 22 69 66 22 20 | y)..TestExpression(body).=."if". |
| 393a0 | 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 6f 70 | "(".Expression.")".option("|".op |
| 393c0 | 74 69 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 62 6f 64 79 20 6f 70 74 69 6f | tion("*").Symbol."|").body.optio |
| 393e0 | 6e 28 22 65 6c 73 65 22 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 29 0a | n("else".BlockExpression(body)). |
| 39400 | 0a 57 68 69 6c 65 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 20 3d 20 6f 70 74 69 6f 6e 28 | .WhileExpression(body).=.option( |
| 39420 | 53 79 6d 62 6f 6c 20 22 3a 22 29 20 6f 70 74 69 6f 6e 28 22 69 6e 6c 69 6e 65 22 29 20 22 77 68 | Symbol.":").option("inline")."wh |
| 39440 | 69 6c 65 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 20 6f 70 74 69 6f 6e 28 22 | ile"."(".Expression.")".option(" |
| 39460 | 7c 22 20 6f 70 74 69 6f 6e 28 22 2a 22 29 20 53 79 6d 62 6f 6c 20 22 7c 22 29 20 6f 70 74 69 6f | |".option("*").Symbol."|").optio |
| 39480 | 6e 28 22 3a 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 29 20 62 6f 64 79 20 6f | n(":"."(".Expression.")").body.o |
| 394a0 | 70 74 69 6f 6e 28 22 65 6c 73 65 22 20 6f 70 74 69 6f 6e 28 22 7c 22 20 53 79 6d 62 6f 6c 20 22 | ption("else".option("|".Symbol." |
| 394c0 | 7c 22 29 20 42 6c 6f 63 6b 45 78 70 72 65 73 73 69 6f 6e 28 62 6f 64 79 29 29 0a 0a 42 6f 6f 6c | |").BlockExpression(body))..Bool |
| 394e0 | 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 43 6f 6d 70 61 72 69 73 6f 6e 45 78 70 72 65 73 | AndExpression.=.ComparisonExpres |
| 39500 | 73 69 6f 6e 20 22 61 6e 64 22 20 42 6f 6f 6c 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 43 | sion."and".BoolAndExpression.|.C |
| 39520 | 6f 6d 70 61 72 69 73 6f 6e 45 78 70 72 65 73 73 69 6f 6e 0a 0a 43 6f 6d 70 61 72 69 73 6f 6e 45 | omparisonExpression..ComparisonE |
| 39540 | 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 69 6e 61 72 79 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 43 | xpression.=.BinaryOrExpression.C |
| 39560 | 6f 6d 70 61 72 69 73 6f 6e 4f 70 65 72 61 74 6f 72 20 42 69 6e 61 72 79 4f 72 45 78 70 72 65 73 | omparisonOperator.BinaryOrExpres |
| 39580 | 73 69 6f 6e 20 7c 20 42 69 6e 61 72 79 4f 72 45 78 70 72 65 73 73 69 6f 6e 0a 0a 43 6f 6d 70 61 | sion.|.BinaryOrExpression..Compa |
| 395a0 | 72 69 73 6f 6e 4f 70 65 72 61 74 6f 72 20 3d 20 22 3d 3d 22 20 7c 20 22 21 3d 22 20 7c 20 22 26 | risonOperator.=."==".|."!=".|."& |
| 395c0 | 6c 74 3b 22 20 7c 20 22 26 67 74 3b 22 20 7c 20 22 26 6c 74 3b 3d 22 20 7c 20 22 26 67 74 3b 3d | lt;".|.">".|."<=".|.">= |
| 395e0 | 22 0a 0a 42 69 6e 61 72 79 4f 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 69 6e 61 72 79 58 6f | "..BinaryOrExpression.=.BinaryXo |
| 39600 | 72 45 78 70 72 65 73 73 69 6f 6e 20 22 7c 22 20 42 69 6e 61 72 79 4f 72 45 78 70 72 65 73 73 69 | rExpression."|".BinaryOrExpressi |
| 39620 | 6f 6e 20 7c 20 42 69 6e 61 72 79 58 6f 72 45 78 70 72 65 73 73 69 6f 6e 0a 0a 42 69 6e 61 72 79 | on.|.BinaryXorExpression..Binary |
| 39640 | 58 6f 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 42 69 6e 61 72 79 41 6e 64 45 78 70 72 65 73 73 | XorExpression.=.BinaryAndExpress |
| 39660 | 69 6f 6e 20 22 5e 22 20 42 69 6e 61 72 79 58 6f 72 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 42 69 | ion."^".BinaryXorExpression.|.Bi |
| 39680 | 6e 61 72 79 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 0a 0a 42 69 6e 61 72 79 41 6e 64 45 78 70 72 | naryAndExpression..BinaryAndExpr |
| 396a0 | 65 73 73 69 6f 6e 20 3d 20 42 69 74 53 68 69 66 74 45 78 70 72 65 73 73 69 6f 6e 20 22 26 61 6d | ession.=.BitShiftExpression."&am |
| 396c0 | 70 3b 22 20 42 69 6e 61 72 79 41 6e 64 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 42 69 74 53 68 69 | p;".BinaryAndExpression.|.BitShi |
| 396e0 | 66 74 45 78 70 72 65 73 73 69 6f 6e 0a 0a 42 69 74 53 68 69 66 74 45 78 70 72 65 73 73 69 6f 6e | ftExpression..BitShiftExpression |
| 39700 | 20 3d 20 41 64 64 69 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 42 69 74 53 68 69 66 74 4f 70 | .=.AdditionExpression.BitShiftOp |
| 39720 | 65 72 61 74 6f 72 20 42 69 74 53 68 69 66 74 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 41 64 64 69 | erator.BitShiftExpression.|.Addi |
| 39740 | 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 0a 0a 42 69 74 53 68 69 66 74 4f 70 65 72 61 74 6f 72 | tionExpression..BitShiftOperator |
| 39760 | 20 3d 20 22 26 6c 74 3b 26 6c 74 3b 22 20 7c 20 22 26 67 74 3b 26 67 74 3b 22 20 7c 20 22 26 6c | .=."<<".|.">>".|."&l |
| 39780 | 74 3b 26 6c 74 3b 22 0a 0a 41 64 64 69 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 4d 75 | t;<"..AdditionExpression.=.Mu |
| 397a0 | 6c 74 69 70 6c 79 45 78 70 72 65 73 73 69 6f 6e 20 41 64 64 69 74 69 6f 6e 4f 70 65 72 61 74 6f | ltiplyExpression.AdditionOperato |
| 397c0 | 72 20 41 64 64 69 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 4d 75 6c 74 69 70 6c 79 45 | r.AdditionExpression.|.MultiplyE |
| 397e0 | 78 70 72 65 73 73 69 6f 6e 0a 0a 41 64 64 69 74 69 6f 6e 4f 70 65 72 61 74 6f 72 20 3d 20 22 2b | xpression..AdditionOperator.=."+ |
| 39800 | 22 20 7c 20 22 2d 22 20 7c 20 22 2b 2b 22 20 7c 20 22 2b 25 22 20 7c 20 22 2d 25 22 0a 0a 4d 75 | ".|."-".|."++".|."+%".|."-%"..Mu |
| 39820 | 6c 74 69 70 6c 79 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 43 75 72 6c 79 53 75 66 66 69 78 45 78 | ltiplyExpression.=.CurlySuffixEx |
| 39840 | 70 72 65 73 73 69 6f 6e 20 4d 75 6c 74 69 70 6c 79 4f 70 65 72 61 74 6f 72 20 4d 75 6c 74 69 70 | pression.MultiplyOperator.Multip |
| 39860 | 6c 79 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 43 75 72 6c 79 53 75 66 66 69 78 45 78 70 72 65 73 | lyExpression.|.CurlySuffixExpres |
| 39880 | 73 69 6f 6e 0a 0a 43 75 72 6c 79 53 75 66 66 69 78 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 54 79 | sion..CurlySuffixExpression.=.Ty |
| 398a0 | 70 65 45 78 70 72 20 6f 70 74 69 6f 6e 28 43 6f 6e 74 61 69 6e 65 72 49 6e 69 74 45 78 70 72 65 | peExpr.option(ContainerInitExpre |
| 398c0 | 73 73 69 6f 6e 29 0a 0a 4d 75 6c 74 69 70 6c 79 4f 70 65 72 61 74 6f 72 20 3d 20 22 7c 7c 22 20 | ssion)..MultiplyOperator.=."||". |
| 398e0 | 7c 20 22 2a 22 20 7c 20 22 2f 22 20 7c 20 22 25 22 20 7c 20 22 2a 2a 22 20 7c 20 22 2a 25 22 0a | |."*".|."/".|."%".|."**".|."*%". |
| 39900 | 0a 50 72 65 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 50 72 65 66 69 78 4f 70 20 45 | .PrefixOpExpression.=.PrefixOp.E |
| 39920 | 72 72 6f 72 53 65 74 45 78 70 72 20 7c 20 53 75 66 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e | rrorSetExpr.|.SuffixOpExpression |
| 39940 | 0a 0a 53 75 66 66 69 78 4f 70 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 22 61 73 79 6e 63 22 20 | ..SuffixOpExpression.=.("async". |
| 39960 | 6f 70 74 69 6f 6e 28 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 29 20 50 72 69 6d 61 | option("(".Expression.")").Prima |
| 39980 | 72 79 45 78 70 72 65 73 73 69 6f 6e 20 46 6e 43 61 6c 6c 45 78 70 72 65 73 73 69 6f 6e 29 20 7c | ryExpression.FnCallExpression).| |
| 399a0 | 20 50 72 69 6d 61 72 79 45 78 70 72 65 73 73 69 6f 6e 20 6f 70 74 69 6f 6e 28 46 6e 43 61 6c 6c | .PrimaryExpression.option(FnCall |
| 399c0 | 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 41 72 72 61 79 41 63 63 65 73 73 45 78 70 72 65 73 73 69 | Expression.|.ArrayAccessExpressi |
| 399e0 | 6f 6e 20 7c 20 46 69 65 6c 64 41 63 63 65 73 73 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 53 6c 69 | on.|.FieldAccessExpression.|.Sli |
| 39a00 | 63 65 45 78 70 72 65 73 73 69 6f 6e 29 0a 0a 46 69 65 6c 64 41 63 63 65 73 73 45 78 70 72 65 73 | ceExpression)..FieldAccessExpres |
| 39a20 | 73 69 6f 6e 20 3d 20 22 2e 22 20 53 79 6d 62 6f 6c 0a 0a 46 6e 43 61 6c 6c 45 78 70 72 65 73 73 | sion.=.".".Symbol..FnCallExpress |
| 39a40 | 69 6f 6e 20 3d 20 22 28 22 20 6c 69 73 74 28 45 78 70 72 65 73 73 69 6f 6e 2c 20 22 2c 22 29 20 | ion.=."(".list(Expression,.","). |
| 39a60 | 22 29 22 0a 0a 41 72 72 61 79 41 63 63 65 73 73 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 5b 22 | ")"..ArrayAccessExpression.=."[" |
| 39a80 | 20 45 78 70 72 65 73 73 69 6f 6e 20 22 5d 22 0a 0a 53 6c 69 63 65 45 78 70 72 65 73 73 69 6f 6e | .Expression."]"..SliceExpression |
| 39aa0 | 20 3d 20 22 5b 22 20 45 78 70 72 65 73 73 69 6f 6e 20 22 2e 2e 22 20 6f 70 74 69 6f 6e 28 45 78 | .=."[".Expression."..".option(Ex |
| 39ac0 | 70 72 65 73 73 69 6f 6e 29 20 22 5d 22 0a 0a 43 6f 6e 74 61 69 6e 65 72 49 6e 69 74 45 78 70 72 | pression)."]"..ContainerInitExpr |
| 39ae0 | 65 73 73 69 6f 6e 20 3d 20 22 7b 22 20 43 6f 6e 74 61 69 6e 65 72 49 6e 69 74 42 6f 64 79 20 22 | ession.=."{".ContainerInitBody." |
| 39b00 | 7d 22 0a 0a 43 6f 6e 74 61 69 6e 65 72 49 6e 69 74 42 6f 64 79 20 3d 20 6c 69 73 74 28 53 74 72 | }"..ContainerInitBody.=.list(Str |
| 39b20 | 75 63 74 4c 69 74 65 72 61 6c 46 69 65 6c 64 2c 20 22 2c 22 29 20 7c 20 6c 69 73 74 28 45 78 70 | uctLiteralField,.",").|.list(Exp |
| 39b40 | 72 65 73 73 69 6f 6e 2c 20 22 2c 22 29 0a 0a 53 74 72 75 63 74 4c 69 74 65 72 61 6c 46 69 65 6c | ression,.",")..StructLiteralFiel |
| 39b60 | 64 20 3d 20 22 2e 22 20 53 79 6d 62 6f 6c 20 22 3d 22 20 45 78 70 72 65 73 73 69 6f 6e 0a 0a 50 | d.=.".".Symbol."=".Expression..P |
| 39b80 | 72 65 66 69 78 4f 70 20 3d 20 22 21 22 20 7c 20 22 2d 22 20 7c 20 22 7e 22 20 7c 20 22 2a 22 20 | refixOp.=."!".|."-".|."~".|."*". |
| 39ba0 | 7c 20 28 22 26 61 6d 70 3b 22 20 6f 70 74 69 6f 6e 28 22 61 6c 69 67 6e 22 20 22 28 22 20 45 78 | |.("&".option("align"."(".Ex |
| 39bc0 | 70 72 65 73 73 69 6f 6e 20 6f 70 74 69 6f 6e 28 22 3a 22 20 49 6e 74 65 67 65 72 20 22 3a 22 20 | pression.option(":".Integer.":". |
| 39be0 | 49 6e 74 65 67 65 72 29 20 22 29 22 20 29 20 6f 70 74 69 6f 6e 28 22 63 6f 6e 73 74 22 29 20 6f | Integer).")".).option("const").o |
| 39c00 | 70 74 69 6f 6e 28 22 76 6f 6c 61 74 69 6c 65 22 29 29 20 7c 20 22 3f 22 20 7c 20 22 3f 3f 22 20 | ption("volatile")).|."?".|."??". |
| 39c20 | 7c 20 22 2d 25 22 20 7c 20 22 74 72 79 22 20 7c 20 22 61 77 61 69 74 22 0a 0a 50 72 69 6d 61 72 | |."-%".|."try".|."await"..Primar |
| 39c40 | 79 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 49 6e 74 65 67 65 72 20 7c 20 46 6c 6f 61 74 20 7c 20 | yExpression.=.Integer.|.Float.|. |
| 39c60 | 53 74 72 69 6e 67 20 7c 20 43 68 61 72 4c 69 74 65 72 61 6c 20 7c 20 4b 65 79 77 6f 72 64 4c 69 | String.|.CharLiteral.|.KeywordLi |
| 39c80 | 74 65 72 61 6c 20 7c 20 47 72 6f 75 70 65 64 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 42 6c 6f 63 | teral.|.GroupedExpression.|.Bloc |
| 39ca0 | 6b 45 78 70 72 65 73 73 69 6f 6e 28 42 6c 6f 63 6b 4f 72 45 78 70 72 65 73 73 69 6f 6e 29 20 7c | kExpression(BlockOrExpression).| |
| 39cc0 | 20 53 79 6d 62 6f 6c 20 7c 20 28 22 40 22 20 53 79 6d 62 6f 6c 20 46 6e 43 61 6c 6c 45 78 70 72 | .Symbol.|.("@".Symbol.FnCallExpr |
| 39ce0 | 65 73 73 69 6f 6e 29 20 7c 20 41 72 72 61 79 54 79 70 65 20 7c 20 46 6e 50 72 6f 74 6f 20 7c 20 | ession).|.ArrayType.|.FnProto.|. |
| 39d00 | 41 73 6d 45 78 70 72 65 73 73 69 6f 6e 20 7c 20 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 20 7c 20 | AsmExpression.|.ContainerDecl.|. |
| 39d20 | 28 22 63 6f 6e 74 69 6e 75 65 22 20 6f 70 74 69 6f 6e 28 22 3a 22 20 53 79 6d 62 6f 6c 29 29 20 | ("continue".option(":".Symbol)). |
| 39d40 | 7c 20 45 72 72 6f 72 53 65 74 44 65 63 6c 0a 0a 41 72 72 61 79 54 79 70 65 20 3a 20 22 5b 22 20 | |.ErrorSetDecl..ArrayType.:."[". |
| 39d60 | 6f 70 74 69 6f 6e 28 45 78 70 72 65 73 73 69 6f 6e 29 20 22 5d 22 20 6f 70 74 69 6f 6e 28 22 61 | option(Expression)."]".option("a |
| 39d80 | 6c 69 67 6e 22 20 22 28 22 20 45 78 70 72 65 73 73 69 6f 6e 20 6f 70 74 69 6f 6e 28 22 3a 22 20 | lign"."(".Expression.option(":". |
| 39da0 | 49 6e 74 65 67 65 72 20 22 3a 22 20 49 6e 74 65 67 65 72 29 20 22 29 22 29 29 20 6f 70 74 69 6f | Integer.":".Integer).")")).optio |
| 39dc0 | 6e 28 22 63 6f 6e 73 74 22 29 20 6f 70 74 69 6f 6e 28 22 76 6f 6c 61 74 69 6c 65 22 29 20 54 79 | n("const").option("volatile").Ty |
| 39de0 | 70 65 45 78 70 72 0a 0a 47 72 6f 75 70 65 64 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 22 28 22 20 | peExpr..GroupedExpression.=."(". |
| 39e00 | 45 78 70 72 65 73 73 69 6f 6e 20 22 29 22 0a 0a 4b 65 79 77 6f 72 64 4c 69 74 65 72 61 6c 20 3d | Expression.")"..KeywordLiteral.= |
| 39e20 | 20 22 74 72 75 65 22 20 7c 20 22 66 61 6c 73 65 22 20 7c 20 22 6e 75 6c 6c 22 20 7c 20 22 75 6e | ."true".|."false".|."null".|."un |
| 39e40 | 64 65 66 69 6e 65 64 22 20 7c 20 22 65 72 72 6f 72 22 20 7c 20 22 74 68 69 73 22 20 7c 20 22 75 | defined".|."error".|."this".|."u |
| 39e60 | 6e 72 65 61 63 68 61 62 6c 65 22 20 7c 20 22 73 75 73 70 65 6e 64 22 0a 0a 45 72 72 6f 72 53 65 | nreachable".|."suspend"..ErrorSe |
| 39e80 | 74 44 65 63 6c 20 3d 20 22 65 72 72 6f 72 22 20 22 7b 22 20 6c 69 73 74 28 53 79 6d 62 6f 6c 2c | tDecl.=."error"."{".list(Symbol, |
| 39ea0 | 20 22 2c 22 29 20 22 7d 22 0a 0a 43 6f 6e 74 61 69 6e 65 72 44 65 63 6c 20 3d 20 6f 70 74 69 6f | .",")."}"..ContainerDecl.=.optio |
| 39ec0 | 6e 28 22 65 78 74 65 72 6e 22 20 7c 20 22 70 61 63 6b 65 64 22 29 0a 20 20 28 22 73 74 72 75 63 | n("extern".|."packed")...("struc |
| 39ee0 | 74 22 20 6f 70 74 69 6f 6e 28 47 72 6f 75 70 65 64 45 78 70 72 65 73 73 69 6f 6e 29 20 7c 20 22 | t".option(GroupedExpression).|." |
| 39f00 | 75 6e 69 6f 6e 22 20 6f 70 74 69 6f 6e 28 22 65 6e 75 6d 22 20 6f 70 74 69 6f 6e 28 47 72 6f 75 | union".option("enum".option(Grou |
| 39f20 | 70 65 64 45 78 70 72 65 73 73 69 6f 6e 29 20 7c 20 47 72 6f 75 70 65 64 45 78 70 72 65 73 73 69 | pedExpression).|.GroupedExpressi |
| 39f40 | 6f 6e 29 20 7c 20 28 22 65 6e 75 6d 22 20 6f 70 74 69 6f 6e 28 47 72 6f 75 70 65 64 45 78 70 72 | on).|.("enum".option(GroupedExpr |
| 39f60 | 65 73 73 69 6f 6e 29 29 29 0a 20 20 22 7b 22 20 6d 61 6e 79 28 43 6f 6e 74 61 69 6e 65 72 4d 65 | ession)))..."{".many(ContainerMe |
| 39f80 | 6d 62 65 72 29 20 22 7d 22 3c 2f 63 6f 64 65 3e 3c 2f 70 72 65 3e 0a 20 20 20 20 20 20 0a 20 20 | mber)."}"</code></pre>.......... |
| 39fa0 | 20 20 20 20 3c 68 31 20 69 64 3d 22 5a 65 6e 22 3e 5a 65 6e 3c 2f 68 31 3e 0a 0a 20 20 20 20 20 | ....<h1.id="Zen">Zen</h1>....... |
| 39fc0 | 20 3c 75 6c 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 43 6f 6d 6d 75 6e 69 63 61 74 65 20 69 6e | .<ul>.........<li>Communicate.in |
| 39fe0 | 74 65 6e 74 20 70 72 65 63 69 73 65 6c 79 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 | tent.precisely.</li>.........<li |
| 3a000 | 3e 45 64 67 65 20 63 61 73 65 73 20 6d 61 74 74 65 72 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 | >Edge.cases.matter.</li>........ |
| 3a020 | 20 3c 6c 69 3e 46 61 76 6f 72 20 72 65 61 64 69 6e 67 20 63 6f 64 65 20 6f 76 65 72 20 77 72 69 | .<li>Favor.reading.code.over.wri |
| 3a040 | 74 69 6e 67 20 63 6f 64 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4f 6e 6c 79 | ting.code.</li>.........<li>Only |
| 3a060 | 20 6f 6e 65 20 6f 62 76 69 6f 75 73 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 6e 67 73 2e 3c 2f | .one.obvious.way.to.do.things.</ |
| 3a080 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 20 | li>.........<li>Runtime.crashes. |
| 3a0a0 | 61 72 65 20 62 65 74 74 65 72 20 74 68 61 6e 20 62 75 67 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 | are.better.than.bugs.</li>...... |
| 3a0c0 | 20 20 20 3c 6c 69 3e 43 6f 6d 70 69 6c 65 20 65 72 72 6f 72 73 20 61 72 65 20 62 65 74 74 65 72 | ...<li>Compile.errors.are.better |
| 3a0e0 | 20 74 68 61 6e 20 72 75 6e 74 69 6d 65 20 63 72 61 73 68 65 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 | .than.runtime.crashes.</li>..... |
| 3a100 | 20 20 20 20 3c 6c 69 3e 49 6e 63 72 65 6d 65 6e 74 61 6c 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 | ....<li>Incremental.improvements |
| 3a120 | 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 41 76 6f 69 64 20 6c 6f 63 61 6c 20 6d | .</li>.........<li>Avoid.local.m |
| 3a140 | 61 78 69 6d 75 6d 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 52 65 64 75 63 65 | aximums.</li>.........<li>Reduce |
| 3a160 | 20 74 68 65 20 61 6d 6f 75 6e 74 20 6f 6e 65 20 6d 75 73 74 20 72 65 6d 65 6d 62 65 72 2e 3c 2f | .the.amount.one.must.remember.</ |
| 3a180 | 6c 69 3e 0a 20 20 20 20 20 20 20 20 3c 6c 69 3e 4d 69 6e 69 6d 69 7a 65 20 65 6e 65 72 67 79 20 | li>.........<li>Minimize.energy. |
| 3a1a0 | 73 70 65 6e 74 20 6f 6e 20 63 6f 64 69 6e 67 20 73 74 79 6c 65 2e 3c 2f 6c 69 3e 0a 20 20 20 20 | spent.on.coding.style.</li>..... |
| 3a1c0 | 20 20 20 20 3c 6c 69 3e 54 6f 67 65 74 68 65 72 20 77 65 20 73 65 72 76 65 20 65 6e 64 20 75 73 | ....<li>Together.we.serve.end.us |
| 3a1e0 | 65 72 73 2e 3c 2f 6c 69 3e 0a 20 20 20 20 20 20 3c 2f 75 6c 3e 0a 20 20 20 20 20 20 0a 20 20 20 | ers.</li>.......</ul>........... |
| 3a200 | 20 3c 2f 64 69 76 3e 0a 20 20 20 20 0a 20 20 20 20 0a 20 20 3c 2f 62 6f 64 79 3e 0a 3c 2f 68 74 | .</div>.............</body>.</ht |
| 3a220 | 6d 6c 3e 0a 0a 50 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 6f 61 ab 2c 14 00 00 00 14 00 00 | ml>..PK............!Roa.,....... |
| 3a240 | 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 69 6d 65 74 79 70 65 50 4b 01 02 14 | ...................mimetypePK... |
| 3a260 | 00 14 00 00 00 00 00 00 00 21 52 6f 92 d0 0a fc 00 00 00 fc 00 00 00 16 00 00 00 00 00 00 00 00 | .........!Ro.................... |
| 3a280 | 00 00 00 00 00 3a 00 00 00 4d 45 54 41 2d 49 4e 46 2f 63 6f 6e 74 61 69 6e 65 72 2e 78 6d 6c 50 | .....:...META-INF/container.xmlP |
| 3a2a0 | 4b 01 02 14 00 14 00 00 00 00 00 00 00 21 52 6a 86 4f 68 a7 02 00 00 a7 02 00 00 11 00 00 00 00 | K............!Rj.Oh............. |
| 3a2c0 | 00 00 00 00 00 00 00 00 00 6a 01 00 00 4f 45 42 50 53 2f 63 6f 6e 74 65 6e 74 2e 6f 70 66 50 4b | .........j...OEBPS/content.opfPK |
| 3a2e0 | 01 02 14 00 14 00 00 00 00 00 00 00 21 52 52 1f 07 5d 86 01 00 00 86 01 00 00 0f 00 00 00 00 00 | ............!RR..].............. |
| 3a300 | 00 00 00 00 00 00 00 00 40 04 00 00 4f 45 42 50 53 2f 6e 61 76 2e 78 68 74 6d 6c 50 4b 01 02 14 | ........@...OEBPS/nav.xhtmlPK... |
| 3a320 | 00 14 00 00 00 00 00 00 00 21 52 29 ef 77 42 03 9c 03 00 03 9c 03 00 11 00 00 00 00 00 00 00 00 | .........!R).wB................. |
| 3a340 | 00 00 00 00 00 f3 05 00 00 4f 45 42 50 53 2f 69 6e 64 65 78 2e 78 68 74 6d 6c 50 4b 05 06 00 00 | .........OEBPS/index.xhtmlPK.... |
| 3a360 | 00 00 05 00 05 00 35 01 00 00 25 a2 03 00 00 00 | ......5...%..... |