unicode.html 254 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <!-- This file is generated by Nim. -->
  4. <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>std/unicode</title>
  9. <!-- Google fonts -->
  10. <link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
  11. <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
  12. <!-- Favicon -->
  13. <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
  14. <link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
  15. <!-- CSS -->
  16. <link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
  17. <!-- JS -->
  18. <script type="text/javascript" src="dochack.js?v=2.3.1"></script>
  19. </head>
  20. <body>
  21. <div class="document" id="documentId">
  22. <div class="container">
  23. <h1 class="title">std/unicode</h1>
  24. <div class="row">
  25. <div class="three columns">
  26. <div class="theme-select-wrapper">
  27. <label for="theme-select">Theme:&nbsp;</label>
  28. <select id="theme-select" onchange="setTheme(this.value)">
  29. <option value="auto">🌗 Match OS</option>
  30. <option value="dark">🌑 Dark</option>
  31. <option value="light">🌕 Light</option>
  32. </select>
  33. </div>
  34. <div id="global-links">
  35. <ul class="simple-boot">
  36. <li><a href="manual.html">Manual</a></li>
  37. <li><a href="lib.html">Standard library</a></li>
  38. <li> <a id="indexLink" href="theindex.html">Index</a></li>
  39. <li><a href="compiler/theindex.html">Compiler docs</a></li>
  40. <li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
  41. <li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
  42. </ul>
  43. </div>
  44. <div id="searchInputDiv">
  45. Search: <input type="search" id="searchInput"
  46. oninput="search()" />
  47. </div>
  48. <ul class="simple simple-toc" id="toc-list">
  49. <li>
  50. <a class="reference reference-toplevel" href="#6" id="56">Imports</a>
  51. </li>
  52. <li>
  53. <details open>
  54. <summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
  55. <ul class="simple simple-toc-section">
  56. <li><a class="reference" href="#Rune" title="Rune = distinct RuneImpl">Rune</a></li>
  57. </ul>
  58. </details>
  59. </li>
  60. <li>
  61. <details open>
  62. <summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
  63. <ul class="simple simple-toc-section">
  64. <ul class="simple nested-toc-section">$
  65. <li><a class="reference" href="#%24%2CRune" title="`$`(rune: Rune): string">`$`(rune: Rune): string</a></li>
  66. <li><a class="reference" href="#%24%2Cseq%5BRune%5D" title="`$`(runes: seq[Rune]): string">`$`(runes: seq[Rune]): string</a></li>
  67. </ul>
  68. <ul class="simple nested-toc-section"><%
  69. <li><a class="reference" href="#%3C%25%2CRune%2CRune" title="`&lt;%`(a, b: Rune): bool">`&lt;%`(a, b: Rune): bool</a></li>
  70. </ul>
  71. <ul class="simple nested-toc-section"><=%
  72. <li><a class="reference" href="#%3C%3D%25%2CRune%2CRune" title="`&lt;=%`(a, b: Rune): bool">`&lt;=%`(a, b: Rune): bool</a></li>
  73. </ul>
  74. <ul class="simple nested-toc-section">==
  75. <li><a class="reference" href="#%3D%3D%2CRune%2CRune" title="`==`(a, b: Rune): bool">`==`(a, b: Rune): bool</a></li>
  76. </ul>
  77. <ul class="simple nested-toc-section">add
  78. <li><a class="reference" href="#add%2Cstring%2CRune" title="add(s: var string; c: Rune)">add(s: var string; c: Rune)</a></li>
  79. </ul>
  80. <ul class="simple nested-toc-section">align
  81. <li><a class="reference" href="#align%2CopenArray%5Bchar%5D%2CNatural" title="align(s: openArray[char]; count: Natural; padding = ' '.Rune): string">align(s: openArray[char]; count: Natural; padding = ' '.Rune): string</a></li>
  82. <li><a class="reference" href="#align%2Cstring%2CNatural" title="align(s: string; count: Natural; padding = ' '.Rune): string">align(s: string; count: Natural; padding = ' '.Rune): string</a></li>
  83. </ul>
  84. <ul class="simple nested-toc-section">alignLeft
  85. <li><a class="reference" href="#alignLeft%2CopenArray%5Bchar%5D%2CNatural" title="alignLeft(s: openArray[char]; count: Natural; padding = ' '.Rune): string">alignLeft(s: openArray[char]; count: Natural; padding = ' '.Rune): string</a></li>
  86. <li><a class="reference" href="#alignLeft%2Cstring%2CNatural" title="alignLeft(s: string; count: Natural; padding = ' '.Rune): string">alignLeft(s: string; count: Natural; padding = ' '.Rune): string</a></li>
  87. </ul>
  88. <ul class="simple nested-toc-section">capitalize
  89. <li><a class="reference" href="#capitalize%2CopenArray%5Bchar%5D" title="capitalize(s: openArray[char]): string">capitalize(s: openArray[char]): string</a></li>
  90. <li><a class="reference" href="#capitalize%2Cstring" title="capitalize(s: string): string">capitalize(s: string): string</a></li>
  91. </ul>
  92. <ul class="simple nested-toc-section">cmpRunesIgnoreCase
  93. <li><a class="reference" href="#cmpRunesIgnoreCase%2CopenArray%5Bchar%5D%2CopenArray%5Bchar%5D" title="cmpRunesIgnoreCase(a, b: openArray[char]): int">cmpRunesIgnoreCase(a, b: openArray[char]): int</a></li>
  94. <li><a class="reference" href="#cmpRunesIgnoreCase%2Cstring%2Cstring" title="cmpRunesIgnoreCase(a, b: string): int">cmpRunesIgnoreCase(a, b: string): int</a></li>
  95. </ul>
  96. <ul class="simple nested-toc-section">graphemeLen
  97. <li><a class="reference" href="#graphemeLen%2CopenArray%5Bchar%5D%2CNatural" title="graphemeLen(s: openArray[char]; i: Natural): Natural">graphemeLen(s: openArray[char]; i: Natural): Natural</a></li>
  98. <li><a class="reference" href="#graphemeLen%2Cstring%2CNatural" title="graphemeLen(s: string; i: Natural): Natural">graphemeLen(s: string; i: Natural): Natural</a></li>
  99. </ul>
  100. <ul class="simple nested-toc-section">isAlpha
  101. <li><a class="reference" href="#isAlpha%2CRune" title="isAlpha(c: Rune): bool">isAlpha(c: Rune): bool</a></li>
  102. <li><a class="reference" href="#isAlpha%2CopenArray%5Bchar%5D" title="isAlpha(s: openArray[char]): bool">isAlpha(s: openArray[char]): bool</a></li>
  103. <li><a class="reference" href="#isAlpha%2Cstring" title="isAlpha(s: string): bool">isAlpha(s: string): bool</a></li>
  104. </ul>
  105. <ul class="simple nested-toc-section">isCombining
  106. <li><a class="reference" href="#isCombining%2CRune" title="isCombining(c: Rune): bool">isCombining(c: Rune): bool</a></li>
  107. </ul>
  108. <ul class="simple nested-toc-section">isLower
  109. <li><a class="reference" href="#isLower%2CRune" title="isLower(c: Rune): bool">isLower(c: Rune): bool</a></li>
  110. </ul>
  111. <ul class="simple nested-toc-section">isSpace
  112. <li><a class="reference" href="#isSpace%2CopenArray%5Bchar%5D" title="isSpace(s: openArray[char]): bool">isSpace(s: openArray[char]): bool</a></li>
  113. <li><a class="reference" href="#isSpace%2Cstring" title="isSpace(s: string): bool">isSpace(s: string): bool</a></li>
  114. </ul>
  115. <ul class="simple nested-toc-section">isTitle
  116. <li><a class="reference" href="#isTitle%2CRune" title="isTitle(c: Rune): bool">isTitle(c: Rune): bool</a></li>
  117. </ul>
  118. <ul class="simple nested-toc-section">isUpper
  119. <li><a class="reference" href="#isUpper%2CRune" title="isUpper(c: Rune): bool">isUpper(c: Rune): bool</a></li>
  120. </ul>
  121. <ul class="simple nested-toc-section">isWhiteSpace
  122. <li><a class="reference" href="#isWhiteSpace%2CRune" title="isWhiteSpace(c: Rune): bool">isWhiteSpace(c: Rune): bool</a></li>
  123. </ul>
  124. <ul class="simple nested-toc-section">lastRune
  125. <li><a class="reference" href="#lastRune%2CopenArray%5Bchar%5D%2Cint" title="lastRune(s: openArray[char]; last: int): (Rune, int)">lastRune(s: openArray[char]; last: int): (Rune, int)</a></li>
  126. <li><a class="reference" href="#lastRune%2Cstring%2Cint" title="lastRune(s: string; last: int): (Rune, int)">lastRune(s: string; last: int): (Rune, int)</a></li>
  127. </ul>
  128. <ul class="simple nested-toc-section">repeat
  129. <li><a class="reference" href="#repeat%2CRune%2CNatural" title="repeat(c: Rune; count: Natural): string">repeat(c: Rune; count: Natural): string</a></li>
  130. </ul>
  131. <ul class="simple nested-toc-section">reversed
  132. <li><a class="reference" href="#reversed%2CopenArray%5Bchar%5D" title="reversed(s: openArray[char]): string">reversed(s: openArray[char]): string</a></li>
  133. <li><a class="reference" href="#reversed%2Cstring" title="reversed(s: string): string">reversed(s: string): string</a></li>
  134. </ul>
  135. <ul class="simple nested-toc-section">runeAt
  136. <li><a class="reference" href="#runeAt%2CopenArray%5Bchar%5D%2CNatural" title="runeAt(s: openArray[char]; i: Natural): Rune">runeAt(s: openArray[char]; i: Natural): Rune</a></li>
  137. <li><a class="reference" href="#runeAt%2Cstring%2CNatural" title="runeAt(s: string; i: Natural): Rune">runeAt(s: string; i: Natural): Rune</a></li>
  138. </ul>
  139. <ul class="simple nested-toc-section">runeAtPos
  140. <li><a class="reference" href="#runeAtPos%2CopenArray%5Bchar%5D%2Cint" title="runeAtPos(s: openArray[char]; pos: int): Rune">runeAtPos(s: openArray[char]; pos: int): Rune</a></li>
  141. <li><a class="reference" href="#runeAtPos%2Cstring%2Cint" title="runeAtPos(s: string; pos: int): Rune">runeAtPos(s: string; pos: int): Rune</a></li>
  142. </ul>
  143. <ul class="simple nested-toc-section">runeLen
  144. <li><a class="reference" href="#runeLen%2CopenArray%5Bchar%5D" title="runeLen(s: openArray[char]): int">runeLen(s: openArray[char]): int</a></li>
  145. <li><a class="reference" href="#runeLen%2Cstring" title="runeLen(s: string): int">runeLen(s: string): int</a></li>
  146. </ul>
  147. <ul class="simple nested-toc-section">runeLenAt
  148. <li><a class="reference" href="#runeLenAt%2CopenArray%5Bchar%5D%2CNatural" title="runeLenAt(s: openArray[char]; i: Natural): int">runeLenAt(s: openArray[char]; i: Natural): int</a></li>
  149. <li><a class="reference" href="#runeLenAt%2Cstring%2CNatural" title="runeLenAt(s: string; i: Natural): int">runeLenAt(s: string; i: Natural): int</a></li>
  150. </ul>
  151. <ul class="simple nested-toc-section">runeOffset
  152. <li><a class="reference" href="#runeOffset%2CopenArray%5Bchar%5D%2CNatural%2CNatural" title="runeOffset(s: openArray[char]; pos: Natural; start: Natural = 0): int">runeOffset(s: openArray[char]; pos: Natural; start: Natural = 0): int</a></li>
  153. <li><a class="reference" href="#runeOffset%2Cstring%2CNatural%2CNatural" title="runeOffset(s: string; pos: Natural; start: Natural = 0): int">runeOffset(s: string; pos: Natural; start: Natural = 0): int</a></li>
  154. </ul>
  155. <ul class="simple nested-toc-section">runeReverseOffset
  156. <li><a class="reference" href="#runeReverseOffset%2CopenArray%5Bchar%5D%2CPositive" title="runeReverseOffset(s: openArray[char]; rev: Positive): (int, int)">runeReverseOffset(s: openArray[char]; rev: Positive): (int, int)</a></li>
  157. <li><a class="reference" href="#runeReverseOffset%2Cstring%2CPositive" title="runeReverseOffset(s: string; rev: Positive): (int, int)">runeReverseOffset(s: string; rev: Positive): (int, int)</a></li>
  158. </ul>
  159. <ul class="simple nested-toc-section">runeStrAtPos
  160. <li><a class="reference" href="#runeStrAtPos%2CopenArray%5Bchar%5D%2CNatural" title="runeStrAtPos(s: openArray[char]; pos: Natural): string">runeStrAtPos(s: openArray[char]; pos: Natural): string</a></li>
  161. <li><a class="reference" href="#runeStrAtPos%2Cstring%2CNatural" title="runeStrAtPos(s: string; pos: Natural): string">runeStrAtPos(s: string; pos: Natural): string</a></li>
  162. </ul>
  163. <ul class="simple nested-toc-section">runeSubStr
  164. <li><a class="reference" href="#runeSubStr%2CopenArray%5Bchar%5D%2Cint%2Cint" title="runeSubStr(s: openArray[char]; pos: int; len: int = int.high): string">runeSubStr(s: openArray[char]; pos: int; len: int = int.high): string</a></li>
  165. <li><a class="reference" href="#runeSubStr%2Cstring%2Cint%2Cint" title="runeSubStr(s: string; pos: int; len: int = int.high): string">runeSubStr(s: string; pos: int; len: int = int.high): string</a></li>
  166. </ul>
  167. <ul class="simple nested-toc-section">size
  168. <li><a class="reference" href="#size%2CRune" title="size(r: Rune): int">size(r: Rune): int</a></li>
  169. </ul>
  170. <ul class="simple nested-toc-section">split
  171. <li><a class="reference" href="#split%2CopenArray%5Bchar%5D%2CRune%2Cint" title="split(s: openArray[char]; sep: Rune; maxsplit: int = -1): seq[string]">split(s: openArray[char]; sep: Rune; maxsplit: int = -1): seq[string]</a></li>
  172. <li><a class="reference" href="#split%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D%2Cint" title="split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
  173. maxsplit: int = -1): seq[string]">split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
  174. maxsplit: int = -1): seq[string]</a></li>
  175. <li><a class="reference" href="#split%2Cstring%2CRune%2Cint" title="split(s: string; sep: Rune; maxsplit: int = -1): seq[string]">split(s: string; sep: Rune; maxsplit: int = -1): seq[string]</a></li>
  176. <li><a class="reference" href="#split%2Cstring%2CopenArray%5BRune%5D%2Cint" title="split(s: string; seps: openArray[Rune] = unicodeSpaces; maxsplit: int = -1): seq[
  177. string]">split(s: string; seps: openArray[Rune] = unicodeSpaces; maxsplit: int = -1): seq[
  178. string]</a></li>
  179. </ul>
  180. <ul class="simple nested-toc-section">splitWhitespace
  181. <li><a class="reference" href="#splitWhitespace%2CopenArray%5Bchar%5D" title="splitWhitespace(s: openArray[char]): seq[string]">splitWhitespace(s: openArray[char]): seq[string]</a></li>
  182. <li><a class="reference" href="#splitWhitespace%2Cstring" title="splitWhitespace(s: string): seq[string]">splitWhitespace(s: string): seq[string]</a></li>
  183. </ul>
  184. <ul class="simple nested-toc-section">strip
  185. <li><a class="reference" href="#strip%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D" title="strip(s: openArray[char]; leading = true; trailing = true;
  186. runes: openArray[Rune] = unicodeSpaces): string">strip(s: openArray[char]; leading = true; trailing = true;
  187. runes: openArray[Rune] = unicodeSpaces): string</a></li>
  188. <li><a class="reference" href="#strip%2Cstring%2CopenArray%5BRune%5D" title="strip(s: string; leading = true; trailing = true;
  189. runes: openArray[Rune] = unicodeSpaces): string">strip(s: string; leading = true; trailing = true;
  190. runes: openArray[Rune] = unicodeSpaces): string</a></li>
  191. </ul>
  192. <ul class="simple nested-toc-section">swapCase
  193. <li><a class="reference" href="#swapCase%2CopenArray%5Bchar%5D" title="swapCase(s: openArray[char]): string">swapCase(s: openArray[char]): string</a></li>
  194. <li><a class="reference" href="#swapCase%2Cstring" title="swapCase(s: string): string">swapCase(s: string): string</a></li>
  195. </ul>
  196. <ul class="simple nested-toc-section">title
  197. <li><a class="reference" href="#title%2CopenArray%5Bchar%5D" title="title(s: openArray[char]): string">title(s: openArray[char]): string</a></li>
  198. <li><a class="reference" href="#title%2Cstring" title="title(s: string): string">title(s: string): string</a></li>
  199. </ul>
  200. <ul class="simple nested-toc-section">toLower
  201. <li><a class="reference" href="#toLower%2CRune" title="toLower(c: Rune): Rune">toLower(c: Rune): Rune</a></li>
  202. <li><a class="reference" href="#toLower%2CopenArray%5Bchar%5D" title="toLower(s: openArray[char]): string">toLower(s: openArray[char]): string</a></li>
  203. <li><a class="reference" href="#toLower%2Cstring" title="toLower(s: string): string">toLower(s: string): string</a></li>
  204. </ul>
  205. <ul class="simple nested-toc-section">toRunes
  206. <li><a class="reference" href="#toRunes%2CopenArray%5Bchar%5D" title="toRunes(s: openArray[char]): seq[Rune]">toRunes(s: openArray[char]): seq[Rune]</a></li>
  207. <li><a class="reference" href="#toRunes%2Cstring" title="toRunes(s: string): seq[Rune]">toRunes(s: string): seq[Rune]</a></li>
  208. </ul>
  209. <ul class="simple nested-toc-section">toTitle
  210. <li><a class="reference" href="#toTitle%2CRune" title="toTitle(c: Rune): Rune">toTitle(c: Rune): Rune</a></li>
  211. </ul>
  212. <ul class="simple nested-toc-section">toUpper
  213. <li><a class="reference" href="#toUpper%2CRune" title="toUpper(c: Rune): Rune">toUpper(c: Rune): Rune</a></li>
  214. <li><a class="reference" href="#toUpper%2CopenArray%5Bchar%5D" title="toUpper(s: openArray[char]): string">toUpper(s: openArray[char]): string</a></li>
  215. <li><a class="reference" href="#toUpper%2Cstring" title="toUpper(s: string): string">toUpper(s: string): string</a></li>
  216. </ul>
  217. <ul class="simple nested-toc-section">toUTF8
  218. <li><a class="reference" href="#toUTF8%2CRune" title="toUTF8(c: Rune): string">toUTF8(c: Rune): string</a></li>
  219. </ul>
  220. <ul class="simple nested-toc-section">translate
  221. <li><a class="reference" href="#translate%2CopenArray%5Bchar%5D%2Cproc%28string%29" title="translate(s: openArray[char]; replacements: proc (key: string): string): string">translate(s: openArray[char]; replacements: proc (key: string): string): string</a></li>
  222. <li><a class="reference" href="#translate%2Cstring%2Cproc%28string%29" title="translate(s: string; replacements: proc (key: string): string): string">translate(s: string; replacements: proc (key: string): string): string</a></li>
  223. </ul>
  224. <ul class="simple nested-toc-section">validateUtf8
  225. <li><a class="reference" href="#validateUtf8%2CopenArray%5Bchar%5D" title="validateUtf8(s: openArray[char]): int">validateUtf8(s: openArray[char]): int</a></li>
  226. <li><a class="reference" href="#validateUtf8%2Cstring" title="validateUtf8(s: string): int">validateUtf8(s: string): int</a></li>
  227. </ul>
  228. </ul>
  229. </details>
  230. </li>
  231. <li>
  232. <details open>
  233. <summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
  234. <ul class="simple simple-toc-section">
  235. <ul class="simple nested-toc-section">runes
  236. <li><a class="reference" href="#runes.i%2CopenArray%5Bchar%5D" title="runes(s: openArray[char]): Rune">runes(s: openArray[char]): Rune</a></li>
  237. <li><a class="reference" href="#runes.i%2Cstring" title="runes(s: string): Rune">runes(s: string): Rune</a></li>
  238. </ul>
  239. <ul class="simple nested-toc-section">split
  240. <li><a class="reference" href="#split.i%2CopenArray%5Bchar%5D%2CRune%2Cint" title="split(s: openArray[char]; sep: Rune; maxsplit: int = -1): string">split(s: openArray[char]; sep: Rune; maxsplit: int = -1): string</a></li>
  241. <li><a class="reference" href="#split.i%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D%2Cint" title="split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
  242. maxsplit: int = -1): string">split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
  243. maxsplit: int = -1): string</a></li>
  244. <li><a class="reference" href="#split.i%2Cstring%2CRune%2Cint" title="split(s: string; sep: Rune; maxsplit: int = -1): string">split(s: string; sep: Rune; maxsplit: int = -1): string</a></li>
  245. <li><a class="reference" href="#split.i%2Cstring%2CopenArray%5BRune%5D%2Cint" title="split(s: string; seps: openArray[Rune] = unicodeSpaces; maxsplit: int = -1): string">split(s: string; seps: openArray[Rune] = unicodeSpaces; maxsplit: int = -1): string</a></li>
  246. </ul>
  247. <ul class="simple nested-toc-section">splitWhitespace
  248. <li><a class="reference" href="#splitWhitespace.i%2CopenArray%5Bchar%5D" title="splitWhitespace(s: openArray[char]): string">splitWhitespace(s: openArray[char]): string</a></li>
  249. <li><a class="reference" href="#splitWhitespace.i%2Cstring" title="splitWhitespace(s: string): string">splitWhitespace(s: string): string</a></li>
  250. </ul>
  251. <ul class="simple nested-toc-section">utf8
  252. <li><a class="reference" href="#utf8.i%2CopenArray%5Bchar%5D" title="utf8(s: openArray[char]): string">utf8(s: openArray[char]): string</a></li>
  253. <li><a class="reference" href="#utf8.i%2Cstring" title="utf8(s: string): string">utf8(s: string): string</a></li>
  254. </ul>
  255. </ul>
  256. </details>
  257. </li>
  258. <li>
  259. <details open>
  260. <summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
  261. <ul class="simple simple-toc-section">
  262. <ul class="simple nested-toc-section">fastRuneAt
  263. <li><a class="reference" href="#fastRuneAt.t%2C%2Cint%2Cuntyped" title="fastRuneAt(s: openArray[char] or string; i: int; result: untyped; doInc = true)">fastRuneAt(s: openArray[char] or string; i: int; result: untyped; doInc = true)</a></li>
  264. </ul>
  265. <ul class="simple nested-toc-section">fastToUTF8Copy
  266. <li><a class="reference" href="#fastToUTF8Copy.t%2CRune%2Cstring%2Cint" title="fastToUTF8Copy(c: Rune; s: var string; pos: int; doInc = true)">fastToUTF8Copy(c: Rune; s: var string; pos: int; doInc = true)</a></li>
  267. </ul>
  268. </ul>
  269. </details>
  270. </li>
  271. </ul>
  272. </div>
  273. <div class="nine columns" id="content">
  274. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  275. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  276. <div id="tocRoot"></div>
  277. <p class="module-desc"><p>This module provides support to handle the Unicode UTF-8 encoding.</p>
  278. <p>There are no specialized <tt class="docutils literal"><span class="pre">insert</span></tt>, <tt class="docutils literal"><span class="pre">delete</span></tt>, <tt class="docutils literal"><span class="pre">add</span></tt> and <tt class="docutils literal"><span class="pre">contains</span></tt> procedures for <tt class="docutils literal"><span class="pre">seq[Rune]</span></tt> in this module because the generic variants of these procedures in the system module already work with it.</p>
  279. <p>The current version is compatible with Unicode v12.0.0.</p>
  280. <p><strong>See also:</strong></p>
  281. <ul class="simple"><li><a class="reference external" href="strutils.html">strutils module</a></li>
  282. <li><a class="reference external" href="unidecode.html">unidecode module</a></li>
  283. <li><a class="reference external" href="encodings.html">encodings module</a></li>
  284. </ul>
  285. </p>
  286. <div class="section" id="6">
  287. <h1><a class="toc-backref" href="#6">Imports</a></h1>
  288. <dl class="item">
  289. <a class="reference external" href="strbasics.html">strbasics</a>
  290. </dl>
  291. </div>
  292. <div class="section" id="7">
  293. <h1><a class="toc-backref" href="#7">Types</a></h1>
  294. <dl class="item">
  295. <div id="Rune">
  296. <dt><pre><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">RuneImpl</span></pre></dt>
  297. <dd>
  298. <p>
  299. Type that can hold a single Unicode code point.</p>
  300. <p>A Rune may be composed with other Runes to a character on the screen. <tt class="docutils literal"><span class="pre"><span class="Identifier">RuneImpl</span></span></tt> is the underlying type used to store Runes, currently <tt class="docutils literal"><span class="pre"><span class="Identifier">int32</span></span></tt>.</p>
  301. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L37" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  302. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L37" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  303. </dd>
  304. </div>
  305. </dl>
  306. </div>
  307. <div class="section" id="12">
  308. <h1><a class="toc-backref" href="#12">Procs</a></h1>
  309. <dl class="item">
  310. <div id="$-procs-all">
  311. <div id="$,Rune">
  312. <dt><pre><span class="Keyword">proc</span> <a href="#%24%2CRune"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">rune</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  313. <dd>
  314. <p>An alias for <a class="reference external" href="#toUTF8,Rune">toUTF8</a>.</p>
  315. <p>See also:</p>
  316. <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
  317. <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
  318. </ul>
  319. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L290" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  320. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L290" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  321. </dd>
  322. </div>
  323. <div id="$,seq[Rune]">
  324. <dt><pre><span class="Keyword">proc</span> <a href="#%24%2Cseq%5BRune%5D"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">runes</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  325. <dd>
  326. <p>Converts a sequence of Runes to a string.</p>
  327. <p>See also:</p>
  328. <ul class="simple"><li><a class="reference external" href="#toRunes,string">toRunes</a> for a reverse operation</li>
  329. </ul>
  330. <p><strong class="examples_text">Example:</strong></p>
  331. <pre class="listing"><span class="Keyword">let</span>
  332. <span class="Identifier">someString</span> <span class="Operator">=</span> <span class="StringLit">&quot;öÑ&quot;</span>
  333. <span class="Identifier">someRunes</span> <span class="Operator">=</span> <span class="Identifier">toRunes</span><span class="Punctuation">(</span><span class="Identifier">someString</span><span class="Punctuation">)</span>
  334. <span class="Identifier">doAssert</span> <span class="Operator">$</span><span class="Identifier">someRunes</span> <span class="Operator">==</span> <span class="Identifier">someString</span></pre>
  335. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L298" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  336. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L298" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  337. </dd>
  338. </div>
  339. </div>
  340. <div id="&lt;%-procs-all">
  341. <div id="<%,Rune,Rune">
  342. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%2CRune%2CRune"><span class="Identifier">`&lt;%`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  343. <dd>
  344. Checks if code point of <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> is smaller than code point of <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>.
  345. <p><strong class="examples_text">Example:</strong></p>
  346. <pre class="listing"><span class="Keyword">let</span>
  347. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;ú&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  348. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">&quot;ü&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  349. <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">&lt;%</span> <span class="Identifier">b</span></pre>
  350. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L451" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  351. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L451" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  352. </dd>
  353. </div>
  354. </div>
  355. <div id="&lt;=%-procs-all">
  356. <div id="<=%,Rune,Rune">
  357. <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%2CRune%2CRune"><span class="Identifier">`&lt;=%`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  358. <dd>
  359. Checks if code point of <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> is smaller or equal to code point of <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt>.
  360. <p><strong class="examples_text">Example:</strong></p>
  361. <pre class="listing"><span class="Keyword">let</span>
  362. <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;ú&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  363. <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">&quot;ü&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  364. <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">&lt;=%</span> <span class="Identifier">b</span></pre>
  365. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L442" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  366. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L442" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  367. </dd>
  368. </div>
  369. </div>
  370. <div id="==-procs-all">
  371. <div id="==,Rune,Rune">
  372. <dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CRune%2CRune"><span class="Identifier">`==`</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  373. <dd>
  374. Checks if two runes are equal.
  375. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L460" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  376. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L460" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  377. </dd>
  378. </div>
  379. </div>
  380. <div id="add-procs-all">
  381. <div id="add,string,Rune">
  382. <dt><pre><span class="Keyword">proc</span> <a href="#add%2Cstring%2CRune"><span class="Identifier">add</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  383. <dd>
  384. Adds a rune <tt class="docutils literal"><span class="pre">c</span></tt> to a string <tt class="docutils literal"><span class="pre">s</span></tt>.
  385. <p><strong class="examples_text">Example:</strong></p>
  386. <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">&quot;abc&quot;</span>
  387. <span class="Keyword">let</span> <span class="Identifier">c</span> <span class="Operator">=</span> <span class="StringLit">&quot;ä&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  388. <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">c</span><span class="Punctuation">)</span>
  389. <span class="Identifier">doAssert</span> <span class="Identifier">s</span> <span class="Operator">==</span> <span class="StringLit">&quot;abcä&quot;</span></pre>
  390. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L279" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  391. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L279" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  392. </dd>
  393. </div>
  394. </div>
  395. <div id="align-procs-all">
  396. <div id="align,openArray[char],Natural">
  397. <dt><pre><span class="Keyword">proc</span> <a href="#align%2CopenArray%5Bchar%5D%2CNatural"><span class="Identifier">align</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">count</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">;</span> <span class="Identifier">padding</span> <span class="Other">=</span> <span class="CharLit">' '</span><span class="Other">.</span><span class="Identifier">Rune</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  398. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nucAlignString&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  399. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  400. <dd>
  401. <p>Aligns a unicode string <tt class="docutils literal"><span class="pre">s</span></tt> with <tt class="docutils literal"><span class="pre">padding</span></tt>, so that it has a rune-length of <tt class="docutils literal"><span class="pre">count</span></tt>.</p>
  402. <p><tt class="docutils literal"><span class="pre">padding</span></tt> characters (by default spaces) are added before <tt class="docutils literal"><span class="pre">s</span></tt> resulting in right alignment. If <tt class="docutils literal"><span class="pre">s.runelen &gt;= count</span></tt>, no spaces are added and <tt class="docutils literal"><span class="pre">s</span></tt> is returned unchanged. If you need to left align a string use the <a class="reference external" href="#alignLeft,string,Natural">alignLeft proc</a>.</p>
  403. <p><strong class="examples_text">Example:</strong></p>
  404. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;abc&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot; abc&quot;</span>
  405. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;a&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;a&quot;</span>
  406. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot; 1232&quot;</span>
  407. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="CharLit">'#'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;##1232&quot;</span>
  408. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;Åge&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot; Åge&quot;</span>
  409. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;×&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="CharLit">'_'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;___×&quot;</span></pre>
  410. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1111" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  411. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1111" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  412. </dd>
  413. </div>
  414. <div id="align,string,Natural">
  415. <dt><pre><span class="Keyword">proc</span> <a href="#align%2Cstring%2CNatural"><span class="Identifier">align</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">count</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">;</span> <span class="Identifier">padding</span> <span class="Other">=</span> <span class="CharLit">' '</span><span class="Other">.</span><span class="Identifier">Rune</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  416. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  417. <dd>
  418. <p>Aligns a unicode string <tt class="docutils literal"><span class="pre">s</span></tt> with <tt class="docutils literal"><span class="pre">padding</span></tt>, so that it has a rune-length of <tt class="docutils literal"><span class="pre">count</span></tt>.</p>
  419. <p><tt class="docutils literal"><span class="pre">padding</span></tt> characters (by default spaces) are added before <tt class="docutils literal"><span class="pre">s</span></tt> resulting in right alignment. If <tt class="docutils literal"><span class="pre">s.runelen &gt;= count</span></tt>, no spaces are added and <tt class="docutils literal"><span class="pre">s</span></tt> is returned unchanged. If you need to left align a string use the <a class="reference external" href="#alignLeft,string,Natural">alignLeft proc</a>.</p>
  420. <p><strong class="examples_text">Example:</strong></p>
  421. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;abc&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot; abc&quot;</span>
  422. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;a&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;a&quot;</span>
  423. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot; 1232&quot;</span>
  424. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="CharLit">'#'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;##1232&quot;</span>
  425. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;Åge&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot; Åge&quot;</span>
  426. <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">&quot;×&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="CharLit">'_'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;___×&quot;</span></pre>
  427. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1491" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  428. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1491" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  429. </dd>
  430. </div>
  431. </div>
  432. <div id="alignLeft-procs-all">
  433. <div id="alignLeft,openArray[char],Natural">
  434. <dt><pre><span class="Keyword">proc</span> <a href="#alignLeft%2CopenArray%5Bchar%5D%2CNatural"><span class="Identifier">alignLeft</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">count</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">;</span> <span class="Identifier">padding</span> <span class="Other">=</span> <span class="CharLit">' '</span><span class="Other">.</span><span class="Identifier">Rune</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  435. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  436. <dd>
  437. <p>Left-aligns a unicode string <tt class="docutils literal"><span class="pre">s</span></tt> with <tt class="docutils literal"><span class="pre">padding</span></tt>, so that it has a rune-length of <tt class="docutils literal"><span class="pre">count</span></tt>.</p>
  438. <p><tt class="docutils literal"><span class="pre">padding</span></tt> characters (by default spaces) are added after <tt class="docutils literal"><span class="pre">s</span></tt> resulting in left alignment. If <tt class="docutils literal"><span class="pre">s.runelen &gt;= count</span></tt>, no spaces are added and <tt class="docutils literal"><span class="pre">s</span></tt> is returned unchanged. If you need to right align a string use the <a class="reference external" href="#align,string,Natural">align proc</a>.</p>
  439. <p><strong class="examples_text">Example:</strong></p>
  440. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;abc&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;abc &quot;</span>
  441. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;a&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;a&quot;</span>
  442. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;1232 &quot;</span>
  443. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="CharLit">'#'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;1232##&quot;</span>
  444. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;Åge&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Åge &quot;</span>
  445. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;×&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="CharLit">'_'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;×___&quot;</span></pre>
  446. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1138" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  447. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1138" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  448. </dd>
  449. </div>
  450. <div id="alignLeft,string,Natural">
  451. <dt><pre><span class="Keyword">proc</span> <a href="#alignLeft%2Cstring%2CNatural"><span class="Identifier">alignLeft</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">count</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">;</span> <span class="Identifier">padding</span> <span class="Other">=</span> <span class="CharLit">' '</span><span class="Other">.</span><span class="Identifier">Rune</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  452. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  453. <dd>
  454. <p>Left-aligns a unicode string <tt class="docutils literal"><span class="pre">s</span></tt> with <tt class="docutils literal"><span class="pre">padding</span></tt>, so that it has a rune-length of <tt class="docutils literal"><span class="pre">count</span></tt>.</p>
  455. <p><tt class="docutils literal"><span class="pre">padding</span></tt> characters (by default spaces) are added after <tt class="docutils literal"><span class="pre">s</span></tt> resulting in left alignment. If <tt class="docutils literal"><span class="pre">s.runelen &gt;= count</span></tt>, no spaces are added and <tt class="docutils literal"><span class="pre">s</span></tt> is returned unchanged. If you need to right align a string use the <a class="reference external" href="#align,string,Natural">align proc</a>.</p>
  456. <p><strong class="examples_text">Example:</strong></p>
  457. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;abc&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;abc &quot;</span>
  458. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;a&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;a&quot;</span>
  459. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;1232 &quot;</span>
  460. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;1232&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="CharLit">'#'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;1232##&quot;</span>
  461. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;Åge&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Åge &quot;</span>
  462. <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">&quot;×&quot;</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="CharLit">'_'</span><span class="Operator">.</span><span class="Identifier">Rune</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;×___&quot;</span></pre>
  463. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1508" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  464. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1508" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  465. </dd>
  466. </div>
  467. </div>
  468. <div id="capitalize-procs-all">
  469. <div id="capitalize,openArray[char]">
  470. <dt><pre><span class="Keyword">proc</span> <a href="#capitalize%2CopenArray%5Bchar%5D"><span class="Identifier">capitalize</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  471. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  472. <dd>
  473. Converts the first character of <tt class="docutils literal"><span class="pre">s</span></tt> into an upper-case rune.
  474. <p><strong class="examples_text">Example:</strong></p>
  475. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">capitalize</span><span class="Punctuation">(</span><span class="StringLit">&quot;βeta&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Βeta&quot;</span></pre>
  476. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L712" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  477. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L712" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  478. </dd>
  479. </div>
  480. <div id="capitalize,string">
  481. <dt><pre><span class="Keyword">proc</span> <a href="#capitalize%2Cstring"><span class="Identifier">capitalize</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  482. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  483. <dd>
  484. Converts the first character of <tt class="docutils literal"><span class="pre">s</span></tt> into an upper-case rune.
  485. <p><strong class="examples_text">Example:</strong></p>
  486. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">capitalize</span><span class="Punctuation">(</span><span class="StringLit">&quot;βeta&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Βeta&quot;</span></pre>
  487. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1324" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  488. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1324" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  489. </dd>
  490. </div>
  491. </div>
  492. <div id="cmpRunesIgnoreCase-procs-all">
  493. <div id="cmpRunesIgnoreCase,openArray[char],openArray[char]">
  494. <dt><pre><span class="Keyword">proc</span> <a href="#cmpRunesIgnoreCase%2CopenArray%5Bchar%5D%2CopenArray%5Bchar%5D"><span class="Identifier">cmpRunesIgnoreCase</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span>
  495. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  496. <dd>
  497. Compares two UTF-8 strings and ignores the case. Returns:<p><tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> if a == b<br/><tt class="docutils literal"><span class="pre"><span class="Operator">&lt;</span> <span class="DecNumber">0</span></span></tt> if a &lt; b<br/><tt class="docutils literal"><span class="pre"><span class="Operator">&gt;</span> <span class="DecNumber">0</span></span></tt> if a &gt; b<br/></p>
  498. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L844" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  499. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L844" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  500. </dd>
  501. </div>
  502. <div id="cmpRunesIgnoreCase,string,string">
  503. <dt><pre><span class="Keyword">proc</span> <a href="#cmpRunesIgnoreCase%2Cstring%2Cstring"><span class="Identifier">cmpRunesIgnoreCase</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  504. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  505. <dd>
  506. Compares two UTF-8 strings and ignores the case. Returns:<p><tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> if a == b<br/><tt class="docutils literal"><span class="pre"><span class="Operator">&lt;</span> <span class="DecNumber">0</span></span></tt> if a &lt; b<br/><tt class="docutils literal"><span class="pre"><span class="Operator">&gt;</span> <span class="DecNumber">0</span></span></tt> if a &gt; b<br/></p>
  507. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1383" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  508. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1383" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  509. </dd>
  510. </div>
  511. </div>
  512. <div id="graphemeLen-procs-all">
  513. <div id="graphemeLen,openArray[char],Natural">
  514. <dt><pre><span class="Keyword">proc</span> <a href="#graphemeLen%2CopenArray%5Bchar%5D%2CNatural"><span class="Identifier">graphemeLen</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  515. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  516. <dd>
  517. The number of bytes belonging to byte index <tt class="docutils literal"><span class="pre">s[i]</span></tt>, including following combining code units.
  518. <p><strong class="examples_text">Example:</strong></p>
  519. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  520. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">graphemeLen</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span> <span class="Comment">## ñ</span>
  521. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">graphemeLen</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  522. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">graphemeLen</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span> <span class="Comment">## ó</span></pre>
  523. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L901" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  524. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L901" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  525. </dd>
  526. </div>
  527. <div id="graphemeLen,string,Natural">
  528. <dt><pre><span class="Keyword">proc</span> <a href="#graphemeLen%2Cstring%2CNatural"><span class="Identifier">graphemeLen</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  529. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  530. <dd>
  531. The number of bytes belonging to byte index <tt class="docutils literal"><span class="pre">s[i]</span></tt>, including following combining code unit.
  532. <p><strong class="examples_text">Example:</strong></p>
  533. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  534. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">graphemeLen</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span> <span class="Comment">## ñ</span>
  535. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">graphemeLen</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  536. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">graphemeLen</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span> <span class="Comment">## ó</span></pre>
  537. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1402" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  538. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1402" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  539. </dd>
  540. </div>
  541. </div>
  542. <div id="isAlpha-procs-all">
  543. <div id="isAlpha,Rune">
  544. <dt><pre><span class="Keyword">proc</span> <a href="#isAlpha%2CRune"><span class="Identifier">isAlpha</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  545. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  546. <dd>
  547. <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is an <em>alpha</em> rune (i.e., a letter).</p>
  548. <p>See also:</p>
  549. <ul class="simple"><li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
  550. <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
  551. <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
  552. <li><a class="reference external" href="#isWhiteSpace,Rune">isWhiteSpace proc</a></li>
  553. <li><a class="reference external" href="#isCombining,Rune">isCombining proc</a></li>
  554. </ul>
  555. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L573" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  556. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L573" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  557. </dd>
  558. </div>
  559. <div id="isAlpha,openArray[char]">
  560. <dt><pre><span class="Keyword">proc</span> <a href="#isAlpha%2CopenArray%5Bchar%5D"><span class="Identifier">isAlpha</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  561. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1Str&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  562. <dd>
  563. Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all alphabetic runes.
  564. <p><strong class="examples_text">Example:</strong></p>
  565. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  566. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isAlpha</span></pre>
  567. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L647" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  568. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L647" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  569. </dd>
  570. </div>
  571. <div id="isAlpha,string">
  572. <dt><pre><span class="Keyword">proc</span> <a href="#isAlpha%2Cstring"><span class="Identifier">isAlpha</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  573. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  574. <dd>
  575. Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all alphabetic runes.
  576. <p><strong class="examples_text">Example:</strong></p>
  577. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  578. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isAlpha</span></pre>
  579. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1288" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  580. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1288" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  581. </dd>
  582. </div>
  583. </div>
  584. <div id="isCombining-procs-all">
  585. <div id="isCombining,Rune">
  586. <dt><pre><span class="Keyword">proc</span> <a href="#isCombining%2CRune"><span class="Identifier">isCombining</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  587. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  588. <dd>
  589. <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a Unicode combining code unit.</p>
  590. <p>See also:</p>
  591. <ul class="simple"><li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
  592. <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
  593. <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
  594. <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
  595. </ul>
  596. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L620" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  597. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L620" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  598. </dd>
  599. </div>
  600. </div>
  601. <div id="isLower-procs-all">
  602. <div id="isLower,Rune">
  603. <dt><pre><span class="Keyword">proc</span> <a href="#isLower%2CRune"><span class="Identifier">isLower</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  604. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  605. <dd>
  606. <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a lower case rune.</p>
  607. <p>If possible, prefer <tt class="docutils literal"><span class="pre">isLower</span></tt> over <tt class="docutils literal"><span class="pre">isUpper</span></tt>.</p>
  608. <p>See also:</p>
  609. <ul class="simple"><li><a class="reference external" href="#toLower,Rune">toLower proc</a></li>
  610. <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
  611. <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
  612. </ul>
  613. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L531" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  614. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L531" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  615. </dd>
  616. </div>
  617. </div>
  618. <div id="isSpace-procs-all">
  619. <div id="isSpace,openArray[char]">
  620. <dt><pre><span class="Keyword">proc</span> <a href="#isSpace%2CopenArray%5Bchar%5D"><span class="Identifier">isSpace</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  621. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1Str&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  622. <dd>
  623. Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all whitespace runes.
  624. <p><strong class="examples_text">Example:</strong></p>
  625. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;</span><span class="EscapeSequence">\t</span><span class="EscapeSequence">\l</span><span class="StringLit"> </span><span class="EscapeSequence">\v</span><span class="EscapeSequence">\r</span><span class="EscapeSequence">\f</span><span class="StringLit">&quot;</span>
  626. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isSpace</span></pre>
  627. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L655" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  628. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L655" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  629. </dd>
  630. </div>
  631. <div id="isSpace,string">
  632. <dt><pre><span class="Keyword">proc</span> <a href="#isSpace%2Cstring"><span class="Identifier">isSpace</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  633. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  634. <dd>
  635. Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all whitespace runes.
  636. <p><strong class="examples_text">Example:</strong></p>
  637. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;</span><span class="EscapeSequence">\t</span><span class="EscapeSequence">\l</span><span class="StringLit"> </span><span class="EscapeSequence">\v</span><span class="EscapeSequence">\r</span><span class="EscapeSequence">\f</span><span class="StringLit">&quot;</span>
  638. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isSpace</span></pre>
  639. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1295" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  640. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1295" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  641. </dd>
  642. </div>
  643. </div>
  644. <div id="isTitle-procs-all">
  645. <div id="isTitle,Rune">
  646. <dt><pre><span class="Keyword">proc</span> <a href="#isTitle%2CRune"><span class="Identifier">isTitle</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  647. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  648. <dd>
  649. <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a Unicode titlecase code point.</p>
  650. <p>See also:</p>
  651. <ul class="simple"><li><a class="reference external" href="#toTitle,Rune">toTitle proc</a></li>
  652. <li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
  653. <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
  654. <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
  655. <li><a class="reference external" href="#isWhiteSpace,Rune">isWhiteSpace proc</a></li>
  656. </ul>
  657. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L594" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  658. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L594" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  659. </dd>
  660. </div>
  661. </div>
  662. <div id="isUpper-procs-all">
  663. <div id="isUpper,Rune">
  664. <dt><pre><span class="Keyword">proc</span> <a href="#isUpper%2CRune"><span class="Identifier">isUpper</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  665. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  666. <dd>
  667. <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a upper case rune.</p>
  668. <p>If possible, prefer <tt class="docutils literal"><span class="pre">isLower</span></tt> over <tt class="docutils literal"><span class="pre">isUpper</span></tt>.</p>
  669. <p>See also:</p>
  670. <ul class="simple"><li><a class="reference external" href="#toUpper,Rune">toUpper proc</a></li>
  671. <li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
  672. <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
  673. <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
  674. <li><a class="reference external" href="#isWhiteSpace,Rune">isWhiteSpace proc</a></li>
  675. </ul>
  676. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L551" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  677. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L551" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  678. </dd>
  679. </div>
  680. </div>
  681. <div id="isWhiteSpace-procs-all">
  682. <div id="isWhiteSpace,Rune">
  683. <dt><pre><span class="Keyword">proc</span> <a href="#isWhiteSpace%2CRune"><span class="Identifier">isWhiteSpace</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  684. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  685. <dd>
  686. <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a Unicode whitespace code point.</p>
  687. <p>See also:</p>
  688. <ul class="simple"><li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
  689. <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
  690. <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
  691. <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
  692. </ul>
  693. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L605" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  694. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L605" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  695. </dd>
  696. </div>
  697. </div>
  698. <div id="lastRune-procs-all">
  699. <div id="lastRune,openArray[char],int">
  700. <dt><pre><span class="Keyword">proc</span> <a href="#lastRune%2CopenArray%5Bchar%5D%2Cint"><span class="Identifier">lastRune</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">last</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">,</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  701. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  702. <dd>
  703. Length of the last rune in <tt class="docutils literal"><span class="pre">s[0..last]</span></tt>. Returns the rune and its length in bytes.
  704. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L920" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  705. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L920" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  706. </dd>
  707. </div>
  708. <div id="lastRune,string,int">
  709. <dt><pre><span class="Keyword">proc</span> <a href="#lastRune%2Cstring%2Cint"><span class="Identifier">lastRune</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">last</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">,</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  710. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  711. <dd>
  712. Length of the last rune in <tt class="docutils literal"><span class="pre">s[0..last]</span></tt>. Returns the rune and its length in bytes.
  713. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1412" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  714. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1412" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  715. </dd>
  716. </div>
  717. </div>
  718. <div id="repeat-procs-all">
  719. <div id="repeat,Rune,Natural">
  720. <dt><pre><span class="Keyword">proc</span> <a href="#repeat%2CRune%2CNatural"><span class="Identifier">repeat</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">;</span> <span class="Identifier">count</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  721. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nucRepeatRune&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  722. <dd>
  723. <p>Returns a string of <tt class="docutils literal"><span class="pre">count</span></tt> Runes <tt class="docutils literal"><span class="pre">c</span></tt>.</p>
  724. <p>The returned string will have a rune-length of <tt class="docutils literal"><span class="pre">count</span></tt>.</p>
  725. <p><strong class="examples_text">Example:</strong></p>
  726. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;ñ&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  727. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">repeat</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;ñññññ&quot;</span></pre>
  728. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1097" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  729. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1097" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  730. </dd>
  731. </div>
  732. </div>
  733. <div id="reversed-procs-all">
  734. <div id="reversed,openArray[char]">
  735. <dt><pre><span class="Keyword">proc</span> <a href="#reversed%2CopenArray%5Bchar%5D"><span class="Identifier">reversed</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  736. <dd>
  737. <p>Returns the reverse of <tt class="docutils literal"><span class="pre">s</span></tt>, interpreting it as runes.</p>
  738. <p>Unicode combining characters are correctly interpreted as well.</p>
  739. <p><strong class="examples_text">Example:</strong></p>
  740. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;Reverse this!&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;!siht esreveR&quot;</span>
  741. <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;先秦兩漢&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;漢兩秦先&quot;</span>
  742. <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;as⃝df̅&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;f̅ds⃝a&quot;</span>
  743. <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;a⃞b⃞c⃞&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;c⃞b⃞a⃞&quot;</span></pre>
  744. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L866" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  745. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L866" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  746. </dd>
  747. </div>
  748. <div id="reversed,string">
  749. <dt><pre><span class="Keyword">proc</span> <a href="#reversed%2Cstring"><span class="Identifier">reversed</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  750. <dd>
  751. <p>Returns the reverse of <tt class="docutils literal"><span class="pre">s</span></tt>, interpreting it as runes.</p>
  752. <p>Unicode combining characters are correctly interpreted as well.</p>
  753. <p><strong class="examples_text">Example:</strong></p>
  754. <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;Reverse this!&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;!siht esreveR&quot;</span>
  755. <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;先秦兩漢&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;漢兩秦先&quot;</span>
  756. <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;as⃝df̅&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;f̅ds⃝a&quot;</span>
  757. <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">&quot;a⃞b⃞c⃞&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;c⃞b⃞a⃞&quot;</span></pre>
  758. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1391" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  759. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1391" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  760. </dd>
  761. </div>
  762. </div>
  763. <div id="runeAt-procs-all">
  764. <div id="runeAt,openArray[char],Natural">
  765. <dt><pre><span class="Keyword">proc</span> <a href="#runeAt%2CopenArray%5Bchar%5D%2CNatural"><span class="Identifier">runeAt</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  766. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  767. <dd>
  768. <p>Returns the rune in <tt class="docutils literal"><span class="pre">s</span></tt> at <strong>byte index</strong> <tt class="docutils literal"><span class="pre">i</span></tt>.</p>
  769. <p>See also:</p>
  770. <ul class="simple"><li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
  771. <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
  772. <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  773. </ul>
  774. <p><strong class="examples_text">Example:</strong></p>
  775. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  776. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;ñ&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  777. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;ñ&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span>
  778. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;y&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span></pre>
  779. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L162" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  780. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L162" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  781. </dd>
  782. </div>
  783. <div id="runeAt,string,Natural">
  784. <dt><pre><span class="Keyword">proc</span> <a href="#runeAt%2Cstring%2CNatural"><span class="Identifier">runeAt</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  785. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  786. <dd>
  787. <p>Returns the rune in <tt class="docutils literal"><span class="pre">s</span></tt> at <strong>byte index</strong> <tt class="docutils literal"><span class="pre">i</span></tt>.</p>
  788. <p>See also:</p>
  789. <ul class="simple"><li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
  790. <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
  791. <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  792. </ul>
  793. <p><strong class="examples_text">Example:</strong></p>
  794. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  795. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;ñ&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
  796. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;ñ&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span>
  797. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;y&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span></pre>
  798. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1184" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  799. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1184" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  800. </dd>
  801. </div>
  802. </div>
  803. <div id="runeAtPos-procs-all">
  804. <div id="runeAtPos,openArray[char],int">
  805. <dt><pre><span class="Keyword">proc</span> <a href="#runeAtPos%2CopenArray%5Bchar%5D%2Cint"><span class="Identifier">runeAtPos</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  806. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  807. <dd>
  808. <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt>.</p>
  809. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  810. <p>See also:</p>
  811. <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
  812. <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
  813. <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  814. </ul>
  815. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L368" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  816. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L368" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  817. </dd>
  818. </div>
  819. <div id="runeAtPos,string,int">
  820. <dt><pre><span class="Keyword">proc</span> <a href="#runeAtPos%2Cstring%2Cint"><span class="Identifier">runeAtPos</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  821. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  822. <dd>
  823. <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt>.</p>
  824. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  825. <p>See also:</p>
  826. <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
  827. <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
  828. <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  829. </ul>
  830. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1243" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  831. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1243" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  832. </dd>
  833. </div>
  834. </div>
  835. <div id="runeLen-procs-all">
  836. <div id="runeLen,openArray[char]">
  837. <dt><pre><span class="Keyword">proc</span> <a href="#runeLen%2CopenArray%5Bchar%5D"><span class="Identifier">runeLen</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  838. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  839. <dd>
  840. Returns the number of runes of the string <tt class="docutils literal"><span class="pre">s</span></tt>.
  841. <p><strong class="examples_text">Example:</strong></p>
  842. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  843. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeLen</span> <span class="Operator">==</span> <span class="DecNumber">6</span>
  844. <span class="Comment">## note: a.len == 8</span></pre>
  845. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L45" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  846. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L45" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  847. </dd>
  848. </div>
  849. <div id="runeLen,string">
  850. <dt><pre><span class="Keyword">proc</span> <a href="#runeLen%2Cstring"><span class="Identifier">runeLen</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  851. <dd>
  852. Returns the number of runes of the string <tt class="docutils literal"><span class="pre">s</span></tt>.
  853. <p><strong class="examples_text">Example:</strong></p>
  854. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  855. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeLen</span> <span class="Operator">==</span> <span class="DecNumber">6</span>
  856. <span class="Comment">## note: a.len == 8</span></pre>
  857. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1165" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  858. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1165" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  859. </dd>
  860. </div>
  861. </div>
  862. <div id="runeLenAt-procs-all">
  863. <div id="runeLenAt,openArray[char],Natural">
  864. <dt><pre><span class="Keyword">proc</span> <a href="#runeLenAt%2CopenArray%5Bchar%5D%2CNatural"><span class="Identifier">runeLenAt</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  865. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  866. <dd>
  867. <p>Returns the number of bytes the rune starting at <tt class="docutils literal"><span class="pre">s[i]</span></tt> takes.</p>
  868. <p>See also:</p>
  869. <ul class="simple"><li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  870. </ul>
  871. <p><strong class="examples_text">Example:</strong></p>
  872. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  873. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeLenAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  874. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeLenAt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
  875. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L64" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  876. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L64" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  877. </dd>
  878. </div>
  879. <div id="runeLenAt,string,Natural">
  880. <dt><pre><span class="Keyword">proc</span> <a href="#runeLenAt%2Cstring%2CNatural"><span class="Identifier">runeLenAt</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  881. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  882. <dd>
  883. <p>Returns the number of bytes the rune starting at <tt class="docutils literal"><span class="pre">s[i]</span></tt> takes.</p>
  884. <p>See also:</p>
  885. <ul class="simple"><li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  886. </ul>
  887. <p><strong class="examples_text">Example:</strong></p>
  888. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  889. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeLenAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  890. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeLenAt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
  891. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1173" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  892. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1173" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  893. </dd>
  894. </div>
  895. </div>
  896. <div id="runeOffset-procs-all">
  897. <div id="runeOffset,openArray[char],Natural,Natural">
  898. <dt><pre><span class="Keyword">proc</span> <a href="#runeOffset%2CopenArray%5Bchar%5D%2CNatural%2CNatural"><span class="Identifier">runeOffset</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">;</span> <span class="Identifier">start</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.
  899. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  900. <dd>
  901. <p>Returns the byte position of rune at position <tt class="docutils literal"><span class="pre">pos</span></tt> in <tt class="docutils literal"><span class="pre">s</span></tt> with an optional start byte position. Returns the special value -1 if it runs out of the string.</p>
  902. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  903. <p>See also:</p>
  904. <ul class="simple"><li><a class="reference external" href="#runeReverseOffset,string,Positive">runeReverseOffset proc</a></li>
  905. </ul>
  906. <p><strong class="examples_text">Example:</strong></p>
  907. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  908. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeOffset</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  909. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeOffset</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
  910. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeOffset</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">6</span></pre>
  911. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L313" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  912. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L313" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  913. </dd>
  914. </div>
  915. <div id="runeOffset,string,Natural,Natural">
  916. <dt><pre><span class="Keyword">proc</span> <a href="#runeOffset%2Cstring%2CNatural%2CNatural"><span class="Identifier">runeOffset</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">;</span> <span class="Identifier">start</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span>
  917. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  918. <dd>
  919. <p>Returns the byte position of rune at position <tt class="docutils literal"><span class="pre">pos</span></tt> in <tt class="docutils literal"><span class="pre">s</span></tt> with an optional start byte position. Returns the special value -1 if it runs out of the string.</p>
  920. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  921. <p>See also:</p>
  922. <ul class="simple"><li><a class="reference external" href="#runeReverseOffset,string,Positive">runeReverseOffset proc</a></li>
  923. </ul>
  924. <p><strong class="examples_text">Example:</strong></p>
  925. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  926. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeOffset</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  927. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeOffset</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
  928. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeOffset</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">6</span></pre>
  929. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1208" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  930. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1208" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  931. </dd>
  932. </div>
  933. </div>
  934. <div id="runeReverseOffset-procs-all">
  935. <div id="runeReverseOffset,openArray[char],Positive">
  936. <dt><pre><span class="Keyword">proc</span> <a href="#runeReverseOffset%2CopenArray%5Bchar%5D%2CPositive"><span class="Identifier">runeReverseOffset</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">rev</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">,</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span> {.
  937. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  938. <dd>
  939. <p>Returns a tuple with the byte offset of the rune at position <tt class="docutils literal"><span class="pre">rev</span></tt> in <tt class="docutils literal"><span class="pre">s</span></tt>, counting from the end (starting with 1) and the total number of runes in the string.</p>
  940. <p>Returns a negative value for offset if there are too few runes in the string to satisfy the request.</p>
  941. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  942. <p>See also:</p>
  943. <ul class="simple"><li><a class="reference external" href="#runeOffset,string,Natural,Natural">runeOffset proc</a></li>
  944. </ul>
  945. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L340" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  946. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L340" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  947. </dd>
  948. </div>
  949. <div id="runeReverseOffset,string,Positive">
  950. <dt><pre><span class="Keyword">proc</span> <a href="#runeReverseOffset%2Cstring%2CPositive"><span class="Identifier">runeReverseOffset</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">rev</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">,</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span> {.<span class="Identifier">inline</span><span class="Other">,</span>
  951. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  952. <dd>
  953. <p>Returns a tuple with the byte offset of the rune at position <tt class="docutils literal"><span class="pre">rev</span></tt> in <tt class="docutils literal"><span class="pre">s</span></tt>, counting from the end (starting with 1) and the total number of runes in the string.</p>
  954. <p>Returns a negative value for offset if there are too few runes in the string to satisfy the request.</p>
  955. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  956. <p>See also:</p>
  957. <ul class="simple"><li><a class="reference external" href="#runeOffset,string,Natural,Natural">runeOffset proc</a></li>
  958. </ul>
  959. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1226" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  960. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1226" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  961. </dd>
  962. </div>
  963. </div>
  964. <div id="runeStrAtPos-procs-all">
  965. <div id="runeStrAtPos,openArray[char],Natural">
  966. <dt><pre><span class="Keyword">proc</span> <a href="#runeStrAtPos%2CopenArray%5Bchar%5D%2CNatural"><span class="Identifier">runeStrAtPos</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  967. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  968. <dd>
  969. <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt> as UTF8 String.</p>
  970. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  971. <p>See also:</p>
  972. <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
  973. <li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
  974. <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  975. </ul>
  976. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L381" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  977. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L381" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  978. </dd>
  979. </div>
  980. <div id="runeStrAtPos,string,Natural">
  981. <dt><pre><span class="Keyword">proc</span> <a href="#runeStrAtPos%2Cstring%2CNatural"><span class="Identifier">runeStrAtPos</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  982. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  983. <dd>
  984. <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt> as UTF8 String.</p>
  985. <p><strong>Beware:</strong> This can lead to unoptimized code and slow execution! Most problems can be solved more efficiently by using an iterator or conversion to a seq of Rune.</p>
  986. <p>See also:</p>
  987. <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
  988. <li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
  989. <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
  990. </ul>
  991. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1256" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  992. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1256" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  993. </dd>
  994. </div>
  995. </div>
  996. <div id="runeSubStr-procs-all">
  997. <div id="runeSubStr,openArray[char],int,int">
  998. <dt><pre><span class="Keyword">proc</span> <a href="#runeSubStr%2CopenArray%5Bchar%5D%2Cint%2Cint"><span class="Identifier">runeSubStr</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">.</span><span class="Identifier">high</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  999. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1000. <dd>
  1001. <p>Returns the UTF-8 substring starting at code point <tt class="docutils literal"><span class="pre">pos</span></tt> with <tt class="docutils literal"><span class="pre">len</span></tt> code points.</p>
  1002. <p>If <tt class="docutils literal"><span class="pre">pos</span></tt> or <tt class="docutils literal"><span class="pre">len</span></tt> is negative they count from the end of the string. If <tt class="docutils literal"><span class="pre">len</span></tt> is not given it means the longest possible string.</p>
  1003. <p><strong class="examples_text">Example:</strong></p>
  1004. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">&quot;Hänsel ««: 10,00€&quot;</span>
  1005. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Hä&quot;</span><span class="Punctuation">)</span>
  1006. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;:&quot;</span><span class="Punctuation">)</span>
  1007. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;10,00€&quot;</span><span class="Punctuation">)</span>
  1008. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">10</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;: 10,00€&quot;</span><span class="Punctuation">)</span>
  1009. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">12</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;10,00&quot;</span><span class="Punctuation">)</span>
  1010. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;10,&quot;</span><span class="Punctuation">)</span></pre>
  1011. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L395" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1012. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L395" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1013. </dd>
  1014. </div>
  1015. <div id="runeSubStr,string,int,int">
  1016. <dt><pre><span class="Keyword">proc</span> <a href="#runeSubStr%2Cstring%2Cint%2Cint"><span class="Identifier">runeSubStr</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">.</span><span class="Identifier">high</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span>
  1017. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1018. <dd>
  1019. <p>Returns the UTF-8 substring starting at code point <tt class="docutils literal"><span class="pre">pos</span></tt> with <tt class="docutils literal"><span class="pre">len</span></tt> code points.</p>
  1020. <p>If <tt class="docutils literal"><span class="pre">pos</span></tt> or <tt class="docutils literal"><span class="pre">len</span></tt> is negative they count from the end of the string. If <tt class="docutils literal"><span class="pre">len</span></tt> is not given it means the longest possible string.</p>
  1021. <p><strong class="examples_text">Example:</strong></p>
  1022. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">&quot;Hänsel ««: 10,00€&quot;</span>
  1023. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Hä&quot;</span><span class="Punctuation">)</span>
  1024. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;:&quot;</span><span class="Punctuation">)</span>
  1025. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;10,00€&quot;</span><span class="Punctuation">)</span>
  1026. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">10</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;: 10,00€&quot;</span><span class="Punctuation">)</span>
  1027. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="DecNumber">12</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;10,00&quot;</span><span class="Punctuation">)</span>
  1028. <span class="Identifier">doAssert</span><span class="Punctuation">(</span><span class="Identifier">runeSubStr</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;10,&quot;</span><span class="Punctuation">)</span></pre>
  1029. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1270" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1030. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1270" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1031. </dd>
  1032. </div>
  1033. </div>
  1034. <div id="size-procs-all">
  1035. <div id="size,Rune">
  1036. <dt><pre><span class="Keyword">proc</span> <a href="#size%2CRune"><span class="Identifier">size</span></a><span class="Other">(</span><span class="Identifier">r</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1037. <dd>
  1038. Returns the number of bytes the rune <tt class="docutils literal"><span class="pre">r</span></tt> takes.
  1039. <p><strong class="examples_text">Example:</strong></p>
  1040. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toRunes</span> <span class="StringLit">&quot;aá&quot;</span>
  1041. <span class="Identifier">doAssert</span> <span class="Identifier">size</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
  1042. <span class="Identifier">doAssert</span> <span class="Identifier">size</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
  1043. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L932" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1044. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L932" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1045. </dd>
  1046. </div>
  1047. </div>
  1048. <div id="split-procs-all">
  1049. <div id="split,openArray[char],Rune,int">
  1050. <dt><pre><span class="Keyword">proc</span> <a href="#split%2CopenArray%5Bchar%5D%2CRune%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">sep</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">;</span> <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> {.
  1051. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nucSplitRune&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1052. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1053. <dd>
  1054. The same as the <a class="reference external" href="#split.i,string,Rune,int">split iterator</a>, but is a proc that returns a sequence of substrings.
  1055. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1034" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1056. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1034" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1057. </dd>
  1058. </div>
  1059. <div id="split,openArray[char],openArray[Rune],int">
  1060. <dt><pre><span class="Keyword">proc</span> <a href="#split%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">seps</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Identifier">unicodeSpaces</span><span class="Other">;</span>
  1061. <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  1062. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nucSplitRunes&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1063. <dd>
  1064. The same as the <a class="reference external" href="#split.i,string,openArray[Rune],int">split iterator</a>, but is a proc that returns a sequence of substrings.
  1065. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1028" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1066. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1028" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1067. </dd>
  1068. </div>
  1069. <div id="split,string,Rune,int">
  1070. <dt><pre><span class="Keyword">proc</span> <a href="#split%2Cstring%2CRune%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">sep</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">;</span> <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> {.
  1071. <span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1072. <dd>
  1073. The same as the <a class="reference external" href="#split.i,string,Rune,int">split iterator</a>, but is a proc that returns a sequence of substrings.
  1074. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1470" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1075. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1470" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1076. </dd>
  1077. </div>
  1078. <div id="split,string,openArray[Rune],int">
  1079. <dt><pre><span class="Keyword">proc</span> <a href="#split%2Cstring%2CopenArray%5BRune%5D%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">seps</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Identifier">unicodeSpaces</span><span class="Other">;</span> <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span>
  1080. <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1081. <dd>
  1082. The same as the <a class="reference external" href="#split.i,string,openArray[Rune],int">split iterator</a>, but is a proc that returns a sequence of substrings.
  1083. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1464" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1084. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1464" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1085. </dd>
  1086. </div>
  1087. </div>
  1088. <div id="splitWhitespace-procs-all">
  1089. <div id="splitWhitespace,openArray[char]">
  1090. <dt><pre><span class="Keyword">proc</span> <a href="#splitWhitespace%2CopenArray%5Bchar%5D"><span class="Identifier">splitWhitespace</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  1091. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;ncuSplitWhitespace&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1092. <dd>
  1093. The same as the <a class="reference external" href="#splitWhitespace.i,string">splitWhitespace</a> iterator, but is a proc that returns a sequence of substrings.
  1094. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1011" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1095. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1011" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1096. </dd>
  1097. </div>
  1098. <div id="splitWhitespace,string">
  1099. <dt><pre><span class="Keyword">proc</span> <a href="#splitWhitespace%2Cstring"><span class="Identifier">splitWhitespace</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1100. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1101. <dd>
  1102. The same as the <a class="reference external" href="#splitWhitespace.i,string">splitWhitespace</a> iterator, but is a proc that returns a sequence of substrings.
  1103. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1448" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1104. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1448" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1105. </dd>
  1106. </div>
  1107. </div>
  1108. <div id="strip-procs-all">
  1109. <div id="strip,openArray[char],openArray[Rune]">
  1110. <dt><pre><span class="Keyword">proc</span> <a href="#strip%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D"><span class="Identifier">strip</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">leading</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">;</span> <span class="Identifier">trailing</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">;</span>
  1111. <span class="Identifier">runes</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Identifier">unicodeSpaces</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span>
  1112. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nucStrip&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1113. <dd>
  1114. <p>Strips leading or trailing <tt class="docutils literal"><span class="pre">runes</span></tt> from <tt class="docutils literal"><span class="pre">s</span></tt> and returns the resulting string.</p>
  1115. <p>If <tt class="docutils literal"><span class="pre">leading</span></tt> is true (default), leading <tt class="docutils literal"><span class="pre">runes</span></tt> are stripped. If <tt class="docutils literal"><span class="pre">trailing</span></tt> is true (default), trailing <tt class="docutils literal"><span class="pre">runes</span></tt> are stripped. If both are false, the string is returned unchanged.</p>
  1116. <p><strong class="examples_text">Example:</strong></p>
  1117. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng &quot;</span>
  1118. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">strip</span> <span class="Operator">==</span> <span class="StringLit">&quot;áñyóng&quot;</span>
  1119. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">leading</span> <span class="Operator">=</span> <span class="Identifier">false</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng&quot;</span>
  1120. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">trailing</span> <span class="Operator">=</span> <span class="Identifier">false</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;áñyóng &quot;</span></pre>
  1121. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1040" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1122. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1040" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1123. </dd>
  1124. </div>
  1125. <div id="strip,string,openArray[Rune]">
  1126. <dt><pre><span class="Keyword">proc</span> <a href="#strip%2Cstring%2CopenArray%5BRune%5D"><span class="Identifier">strip</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">leading</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">;</span> <span class="Identifier">trailing</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">;</span>
  1127. <span class="Identifier">runes</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Identifier">unicodeSpaces</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span>
  1128. <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1129. <dd>
  1130. <p>Strips leading or trailing <tt class="docutils literal"><span class="pre">runes</span></tt> from <tt class="docutils literal"><span class="pre">s</span></tt> and returns the resulting string.</p>
  1131. <p>If <tt class="docutils literal"><span class="pre">leading</span></tt> is true (default), leading <tt class="docutils literal"><span class="pre">runes</span></tt> are stripped. If <tt class="docutils literal"><span class="pre">trailing</span></tt> is true (default), trailing <tt class="docutils literal"><span class="pre">runes</span></tt> are stripped. If both are false, the string is returned unchanged.</p>
  1132. <p><strong class="examples_text">Example:</strong></p>
  1133. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng &quot;</span>
  1134. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">strip</span> <span class="Operator">==</span> <span class="StringLit">&quot;áñyóng&quot;</span>
  1135. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">leading</span> <span class="Operator">=</span> <span class="Identifier">false</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng&quot;</span>
  1136. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">trailing</span> <span class="Operator">=</span> <span class="Identifier">false</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;áñyóng &quot;</span></pre>
  1137. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1475" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1138. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1475" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1139. </dd>
  1140. </div>
  1141. </div>
  1142. <div id="swapCase-procs-all">
  1143. <div id="swapCase,openArray[char]">
  1144. <dt><pre><span class="Keyword">proc</span> <a href="#swapCase%2CopenArray%5Bchar%5D"><span class="Identifier">swapCase</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  1145. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1146. <dd>
  1147. <p>Swaps the case of runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
  1148. <p>Returns a new string such that the cases of all runes are swapped if possible.</p>
  1149. <p><strong class="examples_text">Example:</strong></p>
  1150. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">swapCase</span><span class="Punctuation">(</span><span class="StringLit">&quot;Αlpha Βeta Γamma&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;αLPHA βETA γAMMA&quot;</span></pre>
  1151. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L690" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1152. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L690" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1153. </dd>
  1154. </div>
  1155. <div id="swapCase,string">
  1156. <dt><pre><span class="Keyword">proc</span> <a href="#swapCase%2Cstring"><span class="Identifier">swapCase</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1157. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1158. <dd>
  1159. <p>Swaps the case of runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
  1160. <p>Returns a new string such that the cases of all runes are swapped if possible.</p>
  1161. <p><strong class="examples_text">Example:</strong></p>
  1162. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">swapCase</span><span class="Punctuation">(</span><span class="StringLit">&quot;Αlpha Βeta Γamma&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;αLPHA βETA γAMMA&quot;</span></pre>
  1163. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1315" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1164. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1315" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1165. </dd>
  1166. </div>
  1167. </div>
  1168. <div id="title-procs-all">
  1169. <div id="title,openArray[char]">
  1170. <dt><pre><span class="Keyword">proc</span> <a href="#title%2CopenArray%5Bchar%5D"><span class="Identifier">title</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span>
  1171. <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1172. <dd>
  1173. <p>Converts <tt class="docutils literal"><span class="pre">s</span></tt> to a unicode title.</p>
  1174. <p>Returns a new string such that the first character in each word inside <tt class="docutils literal"><span class="pre">s</span></tt> is capitalized.</p>
  1175. <p><strong class="examples_text">Example:</strong></p>
  1176. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">title</span><span class="Punctuation">(</span><span class="StringLit">&quot;αlpha βeta γamma&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Αlpha Βeta Γamma&quot;</span></pre>
  1177. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L782" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1178. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L782" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1179. </dd>
  1180. </div>
  1181. <div id="title,string">
  1182. <dt><pre><span class="Keyword">proc</span> <a href="#title%2Cstring"><span class="Identifier">title</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1183. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1184. <dd>
  1185. <p>Converts <tt class="docutils literal"><span class="pre">s</span></tt> to a unicode title.</p>
  1186. <p>Returns a new string such that the first character in each word inside <tt class="docutils literal"><span class="pre">s</span></tt> is capitalized.</p>
  1187. <p><strong class="examples_text">Example:</strong></p>
  1188. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">title</span><span class="Punctuation">(</span><span class="StringLit">&quot;αlpha βeta γamma&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;Αlpha Βeta Γamma&quot;</span></pre>
  1189. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1347" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1190. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1347" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1191. </dd>
  1192. </div>
  1193. </div>
  1194. <div id="toLower-procs-all">
  1195. <div id="toLower,Rune">
  1196. <dt><pre><span class="Keyword">proc</span> <a href="#toLower%2CRune"><span class="Identifier">toLower</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1197. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1198. <dd>
  1199. <p>Converts <tt class="docutils literal"><span class="pre">c</span></tt> into lower case. This works for any rune.</p>
  1200. <p>If possible, prefer <tt class="docutils literal"><span class="pre">toLower</span></tt> over <tt class="docutils literal"><span class="pre">toUpper</span></tt>.</p>
  1201. <p>See also:</p>
  1202. <ul class="simple"><li><a class="reference external" href="#toUpper,Rune">toUpper proc</a></li>
  1203. <li><a class="reference external" href="#toTitle,Rune">toTitle proc</a></li>
  1204. <li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
  1205. </ul>
  1206. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L482" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1207. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L482" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1208. </dd>
  1209. </div>
  1210. <div id="toLower,openArray[char]">
  1211. <dt><pre><span class="Keyword">proc</span> <a href="#toLower%2CopenArray%5Bchar%5D"><span class="Identifier">toLower</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  1212. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1Str&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1213. <dd>
  1214. Converts <tt class="docutils literal"><span class="pre">s</span></tt> into lower-case runes.
  1215. <p><strong class="examples_text">Example:</strong></p>
  1216. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toLower</span><span class="Punctuation">(</span><span class="StringLit">&quot;ABΓ&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;abγ&quot;</span></pre>
  1217. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L683" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1218. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L683" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1219. </dd>
  1220. </div>
  1221. <div id="toLower,string">
  1222. <dt><pre><span class="Keyword">proc</span> <a href="#toLower%2Cstring"><span class="Identifier">toLower</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1223. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1224. <dd>
  1225. Converts <tt class="docutils literal"><span class="pre">s</span></tt> into lower-case runes.
  1226. <p><strong class="examples_text">Example:</strong></p>
  1227. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toLower</span><span class="Punctuation">(</span><span class="StringLit">&quot;ABΓ&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;abγ&quot;</span></pre>
  1228. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1309" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1229. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1309" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1230. </dd>
  1231. </div>
  1232. </div>
  1233. <div id="toRunes-procs-all">
  1234. <div id="toRunes,openArray[char]">
  1235. <dt><pre><span class="Keyword">proc</span> <a href="#toRunes%2CopenArray%5Bchar%5D"><span class="Identifier">toRunes</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1236. <dd>
  1237. <p>Obtains a sequence containing the Runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
  1238. <p>See also:</p>
  1239. <ul class="simple"><li><a class="reference external" href="#$,Rune">$ proc</a> for a reverse operation</li>
  1240. </ul>
  1241. <p><strong class="examples_text">Example:</strong></p>
  1242. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toRunes</span><span class="Punctuation">(</span><span class="StringLit">&quot;aáä&quot;</span><span class="Punctuation">)</span>
  1243. <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;a&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="StringLit">&quot;á&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="StringLit">&quot;ä&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">]</span></pre>
  1244. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L831" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1245. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L831" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1246. </dd>
  1247. </div>
  1248. <div id="toRunes,string">
  1249. <dt><pre><span class="Keyword">proc</span> <a href="#toRunes%2Cstring"><span class="Identifier">toRunes</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1250. <dd>
  1251. <p>Obtains a sequence containing the Runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
  1252. <p>See also:</p>
  1253. <ul class="simple"><li><a class="reference external" href="#$,Rune">$ proc</a> for a reverse operation</li>
  1254. </ul>
  1255. <p><strong class="examples_text">Example:</strong></p>
  1256. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toRunes</span><span class="Punctuation">(</span><span class="StringLit">&quot;aáä&quot;</span><span class="Punctuation">)</span>
  1257. <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;a&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="StringLit">&quot;á&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="StringLit">&quot;ä&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">]</span></pre>
  1258. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1373" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1259. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1373" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1260. </dd>
  1261. </div>
  1262. </div>
  1263. <div id="toTitle-procs-all">
  1264. <div id="toTitle,Rune">
  1265. <dt><pre><span class="Keyword">proc</span> <a href="#toTitle%2CRune"><span class="Identifier">toTitle</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1266. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1267. <dd>
  1268. <p>Converts <tt class="docutils literal"><span class="pre">c</span></tt> to title case.</p>
  1269. <p>See also:</p>
  1270. <ul class="simple"><li><a class="reference external" href="#toLower,Rune">toLower proc</a></li>
  1271. <li><a class="reference external" href="#toUpper,Rune">toUpper proc</a></li>
  1272. <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
  1273. </ul>
  1274. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L518" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1275. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L518" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1276. </dd>
  1277. </div>
  1278. </div>
  1279. <div id="toUpper-procs-all">
  1280. <div id="toUpper,Rune">
  1281. <dt><pre><span class="Keyword">proc</span> <a href="#toUpper%2CRune"><span class="Identifier">toUpper</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1282. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1283. <dd>
  1284. <p>Converts <tt class="docutils literal"><span class="pre">c</span></tt> into upper case. This works for any rune.</p>
  1285. <p>If possible, prefer <tt class="docutils literal"><span class="pre">toLower</span></tt> over <tt class="docutils literal"><span class="pre">toUpper</span></tt>.</p>
  1286. <p>See also:</p>
  1287. <ul class="simple"><li><a class="reference external" href="#toLower,Rune">toLower proc</a></li>
  1288. <li><a class="reference external" href="#toTitle,Rune">toTitle proc</a></li>
  1289. <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
  1290. </ul>
  1291. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L500" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1292. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L500" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1293. </dd>
  1294. </div>
  1295. <div id="toUpper,openArray[char]">
  1296. <dt><pre><span class="Keyword">proc</span> <a href="#toUpper%2CopenArray%5Bchar%5D"><span class="Identifier">toUpper</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span>
  1297. <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1Str&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1298. <dd>
  1299. Converts <tt class="docutils literal"><span class="pre">s</span></tt> into upper-case runes.
  1300. <p><strong class="examples_text">Example:</strong></p>
  1301. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toUpper</span><span class="Punctuation">(</span><span class="StringLit">&quot;abγ&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;ABΓ&quot;</span></pre>
  1302. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L676" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1303. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L676" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1304. </dd>
  1305. </div>
  1306. <div id="toUpper,string">
  1307. <dt><pre><span class="Keyword">proc</span> <a href="#toUpper%2Cstring"><span class="Identifier">toUpper</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span class="Identifier">noSideEffect</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1308. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1309. <dd>
  1310. Converts <tt class="docutils literal"><span class="pre">s</span></tt> into upper-case runes.
  1311. <p><strong class="examples_text">Example:</strong></p>
  1312. <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toUpper</span><span class="Punctuation">(</span><span class="StringLit">&quot;abγ&quot;</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;ABΓ&quot;</span></pre>
  1313. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1303" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1314. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1303" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1315. </dd>
  1316. </div>
  1317. </div>
  1318. <div id="toUTF8-procs-all">
  1319. <div id="toUTF8,Rune">
  1320. <dt><pre><span class="Keyword">proc</span> <a href="#toUTF8%2CRune"><span class="Identifier">toUTF8</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1321. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1322. <dd>
  1323. <p>Converts a rune into its UTF-8 representation.</p>
  1324. <p>See also:</p>
  1325. <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
  1326. <li><a class="reference external" href="#$,Rune">$ proc</a> alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">toUTF8</span></span></tt></li>
  1327. <li><a class="reference external" href="#utf8.i,string">utf8 iterator</a></li>
  1328. <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
  1329. </ul>
  1330. <p><strong class="examples_text">Example:</strong></p>
  1331. <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;añyóng&quot;</span>
  1332. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">toUTF8</span> <span class="Operator">==</span> <span class="StringLit">&quot;ñ&quot;</span></pre>
  1333. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L264" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1334. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L264" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1335. </dd>
  1336. </div>
  1337. </div>
  1338. <div id="translate-procs-all">
  1339. <div id="translate,openArray[char],proc(string)">
  1340. <dt><pre><span class="Keyword">proc</span> <a href="#translate%2CopenArray%5Bchar%5D%2Cproc%28string%29"><span class="Identifier">translate</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">replacements</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  1341. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">&quot;nuc$1&quot;</span><span class="Other">,</span> </span><span class="Identifier">effectsOf</span><span class="Other">:</span> <span class="Identifier">replacements</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1342. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1343. <dd>
  1344. <p>Translates words in a string using the <tt class="docutils literal"><span class="pre">replacements</span></tt> proc to substitute words inside <tt class="docutils literal"><span class="pre">s</span></tt> with their replacements.</p>
  1345. <p><tt class="docutils literal"><span class="pre">replacements</span></tt> is any proc that takes a word and returns a new word to fill it's place.</p>
  1346. <p><strong class="examples_text">Example:</strong></p>
  1347. <pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">wordToNumber</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">:</span> <span class="Identifier">string</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">string</span> <span class="Operator">=</span>
  1348. <span class="Keyword">case</span> <span class="Identifier">s</span>
  1349. <span class="Keyword">of</span> <span class="StringLit">&quot;one&quot;</span><span class="Punctuation">:</span> <span class="StringLit">&quot;1&quot;</span>
  1350. <span class="Keyword">of</span> <span class="StringLit">&quot;two&quot;</span><span class="Punctuation">:</span> <span class="StringLit">&quot;2&quot;</span>
  1351. <span class="Keyword">else</span><span class="Punctuation">:</span> <span class="Identifier">s</span>
  1352. <span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;one two three four&quot;</span>
  1353. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">translate</span><span class="Punctuation">(</span><span class="Identifier">wordToNumber</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;1 2 three four&quot;</span></pre>
  1354. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L729" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1355. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L729" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1356. </dd>
  1357. </div>
  1358. <div id="translate,string,proc(string)">
  1359. <dt><pre><span class="Keyword">proc</span> <a href="#translate%2Cstring%2Cproc%28string%29"><span class="Identifier">translate</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">replacements</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  1360. <span class="Identifier">effectsOf</span><span class="Other">:</span> <span class="Identifier">replacements</span><span class="Other">,</span> <span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1361. <dd>
  1362. <p>Translates words in a string using the <tt class="docutils literal"><span class="pre">replacements</span></tt> proc to substitute words inside <tt class="docutils literal"><span class="pre">s</span></tt> with their replacements.</p>
  1363. <p><tt class="docutils literal"><span class="pre">replacements</span></tt> is any proc that takes a word and returns a new word to fill it's place.</p>
  1364. <p><strong class="examples_text">Example:</strong></p>
  1365. <pre class="listing"><span class="Keyword">proc</span> <span class="Identifier">wordToNumber</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">:</span> <span class="Identifier">string</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">string</span> <span class="Operator">=</span>
  1366. <span class="Keyword">case</span> <span class="Identifier">s</span>
  1367. <span class="Keyword">of</span> <span class="StringLit">&quot;one&quot;</span><span class="Punctuation">:</span> <span class="StringLit">&quot;1&quot;</span>
  1368. <span class="Keyword">of</span> <span class="StringLit">&quot;two&quot;</span><span class="Punctuation">:</span> <span class="StringLit">&quot;2&quot;</span>
  1369. <span class="Keyword">else</span><span class="Punctuation">:</span> <span class="Identifier">s</span>
  1370. <span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">&quot;one two three four&quot;</span>
  1371. <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">translate</span><span class="Punctuation">(</span><span class="Identifier">wordToNumber</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">&quot;1 2 three four&quot;</span></pre>
  1372. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1331" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1373. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1331" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1374. </dd>
  1375. </div>
  1376. </div>
  1377. <div id="validateUtf8-procs-all">
  1378. <div id="validateUtf8,openArray[char]">
  1379. <dt><pre><span class="Keyword">proc</span> <a href="#validateUtf8%2CopenArray%5Bchar%5D"><span class="Identifier">validateUtf8</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1380. <dd>
  1381. <p>Returns the position of the invalid byte in <tt class="docutils literal"><span class="pre">s</span></tt> if the string <tt class="docutils literal"><span class="pre">s</span></tt> does not hold valid UTF-8 data. Otherwise <tt class="docutils literal"><span class="pre">-1</span></tt> is returned.</p>
  1382. <p>See also:</p>
  1383. <ul class="simple"><li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
  1384. <li><a class="reference external" href="#$,Rune">$ proc</a> alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">toUTF8</span></span></tt></li>
  1385. <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
  1386. </ul>
  1387. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L176" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1388. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L176" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1389. </dd>
  1390. </div>
  1391. <div id="validateUtf8,string">
  1392. <dt><pre><span class="Keyword">proc</span> <a href="#validateUtf8%2Cstring"><span class="Identifier">validateUtf8</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1393. <dd>
  1394. <p>Returns the position of the invalid byte in <tt class="docutils literal"><span class="pre">s</span></tt> if the string <tt class="docutils literal"><span class="pre">s</span></tt> does not hold valid UTF-8 data. Otherwise <tt class="docutils literal"><span class="pre">-1</span></tt> is returned.</p>
  1395. <p>See also:</p>
  1396. <ul class="simple"><li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
  1397. <li><a class="reference external" href="#$,Rune">$ proc</a> alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">toUTF8</span></span></tt></li>
  1398. <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
  1399. </ul>
  1400. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1198" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1401. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1198" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1402. </dd>
  1403. </div>
  1404. </div>
  1405. </dl>
  1406. </div>
  1407. <div class="section" id="15">
  1408. <h1><a class="toc-backref" href="#15">Iterators</a></h1>
  1409. <dl class="item">
  1410. <div id="runes-iterators-all">
  1411. <div id="runes.i,openArray[char]">
  1412. <dt><pre><span class="Keyword">iterator</span> <a href="#runes.i%2CopenArray%5Bchar%5D"><span class="Identifier">runes</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1413. <dd>
  1414. Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning runes.
  1415. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L808" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1416. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L808" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1417. </dd>
  1418. </div>
  1419. <div id="runes.i,string">
  1420. <dt><pre><span class="Keyword">iterator</span> <a href="#runes.i%2Cstring"><span class="Identifier">runes</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1421. <dd>
  1422. Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning runes.
  1423. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1357" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1424. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1357" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1425. </dd>
  1426. </div>
  1427. </div>
  1428. <div id="split-iterators-all">
  1429. <div id="split.i,openArray[char],Rune,int">
  1430. <dt><pre><span class="Keyword">iterator</span> <a href="#split.i%2CopenArray%5Bchar%5D%2CRune%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">sep</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">;</span> <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.
  1431. <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1432. <dd>
  1433. Splits the unicode string <tt class="docutils literal"><span class="pre">s</span></tt> into substrings using a single separator. Substrings are separated by the rune <tt class="docutils literal"><span class="pre">sep</span></tt>.
  1434. <p><strong class="examples_text">Example:</strong></p>
  1435. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
  1436. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">&quot;;;hÃllo;this;is;an;;example;;;是&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;;&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1437. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;hÃllo&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;this&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;is&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;an&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;example&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;是&quot;</span><span class="Punctuation">]</span></pre>
  1438. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1017" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1439. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1017" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1440. </dd>
  1441. </div>
  1442. <div id="split.i,openArray[char],openArray[Rune],int">
  1443. <dt><pre><span class="Keyword">iterator</span> <a href="#split.i%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">seps</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Identifier">unicodeSpaces</span><span class="Other">;</span>
  1444. <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1445. <dd>
  1446. <p>Splits the unicode string <tt class="docutils literal"><span class="pre">s</span></tt> into substrings using a group of separators.</p>
  1447. <p>Substrings are separated by a substring containing only <tt class="docutils literal"><span class="pre">seps</span></tt>.</p>
  1448. <p><strong class="examples_text">Example:</strong></p>
  1449. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
  1450. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="StringLit">&quot;hÃllo</span><span class="EscapeSequence">\l</span><span class="StringLit">this</span><span class="EscapeSequence">\l</span><span class="StringLit">is an</span><span class="EscapeSequence">\t</span><span class="StringLit">example</span><span class="EscapeSequence">\l</span><span class="StringLit">是&quot;</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1451. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;hÃllo&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;this&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;is&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;an&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;example&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;是&quot;</span><span class="Punctuation">]</span>
  1452. <span class="Comment"># And the following code splits the same string using a sequence of Runes.</span>
  1453. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">&quot;añyóng:hÃllo;是$example&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;;:$&quot;</span><span class="Operator">.</span><span class="Identifier">toRunes</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1454. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;añyóng&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;hÃllo&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;是&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;example&quot;</span><span class="Punctuation">]</span>
  1455. <span class="Comment"># example with a `Rune` separator and unused one `;`:</span>
  1456. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">&quot;ab是de:f:&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;;:是&quot;</span><span class="Operator">.</span><span class="Identifier">toRunes</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;ab&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;de&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;f&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">]</span>
  1457. <span class="Comment"># Another example that splits a string containing a date.</span>
  1458. <span class="Keyword">let</span> <span class="Identifier">date</span> <span class="Operator">=</span> <span class="StringLit">&quot;2012-11-20T22:08:08.398990&quot;</span>
  1459. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="Identifier">date</span><span class="Punctuation">,</span> <span class="StringLit">&quot; -:T&quot;</span><span class="Operator">.</span><span class="Identifier">toRunes</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1460. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;2012&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;11&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;20&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;22&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;08&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;08.398990&quot;</span><span class="Punctuation">]</span></pre>
  1461. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L977" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1462. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L977" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1463. </dd>
  1464. </div>
  1465. <div id="split.i,string,Rune,int">
  1466. <dt><pre><span class="Keyword">iterator</span> <a href="#split.i%2Cstring%2CRune%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">sep</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">;</span> <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1467. <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1468. <dd>
  1469. Splits the unicode string <tt class="docutils literal"><span class="pre">s</span></tt> into substrings using a single separator. Substrings are separated by the rune <tt class="docutils literal"><span class="pre">sep</span></tt>.
  1470. <p><strong class="examples_text">Example:</strong></p>
  1471. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
  1472. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">&quot;;;hÃllo;this;is;an;;example;;;是&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;;&quot;</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1473. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;hÃllo&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;this&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;is&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;an&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;example&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;是&quot;</span><span class="Punctuation">]</span></pre>
  1474. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1453" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1475. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1453" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1476. </dd>
  1477. </div>
  1478. <div id="split.i,string,openArray[Rune],int">
  1479. <dt><pre><span class="Keyword">iterator</span> <a href="#split.i%2Cstring%2CopenArray%5BRune%5D%2Cint"><span class="Identifier">split</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">seps</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">]</span> <span class="Other">=</span> <span class="Identifier">unicodeSpaces</span><span class="Other">;</span>
  1480. <span class="Identifier">maxsplit</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">-1</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1481. <dd>
  1482. <p>Splits the unicode string <tt class="docutils literal"><span class="pre">s</span></tt> into substrings using a group of separators.</p>
  1483. <p>Substrings are separated by a substring containing only <tt class="docutils literal"><span class="pre">seps</span></tt>.</p>
  1484. <p><strong class="examples_text">Example:</strong></p>
  1485. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
  1486. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="StringLit">&quot;hÃllo</span><span class="EscapeSequence">\l</span><span class="StringLit">this</span><span class="EscapeSequence">\l</span><span class="StringLit">is an</span><span class="EscapeSequence">\t</span><span class="StringLit">example</span><span class="EscapeSequence">\l</span><span class="StringLit">是&quot;</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1487. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;hÃllo&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;this&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;is&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;an&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;example&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;是&quot;</span><span class="Punctuation">]</span>
  1488. <span class="Comment"># And the following code splits the same string using a sequence of Runes.</span>
  1489. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">&quot;añyóng:hÃllo;是$example&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;;:$&quot;</span><span class="Operator">.</span><span class="Identifier">toRunes</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1490. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;añyóng&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;hÃllo&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;是&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;example&quot;</span><span class="Punctuation">]</span>
  1491. <span class="Comment"># example with a `Rune` separator and unused one `;`:</span>
  1492. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">&quot;ab是de:f:&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;;:是&quot;</span><span class="Operator">.</span><span class="Identifier">toRunes</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;ab&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;de&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;f&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;&quot;</span><span class="Punctuation">]</span>
  1493. <span class="Comment"># Another example that splits a string containing a date.</span>
  1494. <span class="Keyword">let</span> <span class="Identifier">date</span> <span class="Operator">=</span> <span class="StringLit">&quot;2012-11-20T22:08:08.398990&quot;</span>
  1495. <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="Identifier">date</span><span class="Punctuation">,</span> <span class="StringLit">&quot; -:T&quot;</span><span class="Operator">.</span><span class="Identifier">toRunes</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span>
  1496. <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">&quot;2012&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;11&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;20&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;22&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;08&quot;</span><span class="Punctuation">,</span> <span class="StringLit">&quot;08.398990&quot;</span><span class="Punctuation">]</span></pre>
  1497. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1417" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1498. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1417" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1499. </dd>
  1500. </div>
  1501. </div>
  1502. <div id="splitWhitespace-iterators-all">
  1503. <div id="splitWhitespace.i,openArray[char]">
  1504. <dt><pre><span class="Keyword">iterator</span> <a href="#splitWhitespace.i%2CopenArray%5Bchar%5D"><span class="Identifier">splitWhitespace</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
  1505. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1506. <dd>
  1507. Splits a unicode string at whitespace runes.
  1508. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1003" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1509. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1003" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1510. </dd>
  1511. </div>
  1512. <div id="splitWhitespace.i,string">
  1513. <dt><pre><span class="Keyword">iterator</span> <a href="#splitWhitespace.i%2Cstring"><span class="Identifier">splitWhitespace</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1514. <dd>
  1515. Splits a unicode string at whitespace runes.
  1516. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1443" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1517. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1443" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1518. </dd>
  1519. </div>
  1520. </div>
  1521. <div id="utf8-iterators-all">
  1522. <div id="utf8.i,openArray[char]">
  1523. <dt><pre><span class="Keyword">iterator</span> <a href="#utf8.i%2CopenArray%5Bchar%5D"><span class="Identifier">utf8</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1524. <dd>
  1525. <p>Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning utf8 values.</p>
  1526. <p>See also:</p>
  1527. <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
  1528. <li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
  1529. <li><a class="reference external" href="#$,Rune">$ proc</a> alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">toUTF8</span></span></tt></li>
  1530. <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
  1531. </ul>
  1532. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L817" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1533. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L817" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1534. </dd>
  1535. </div>
  1536. <div id="utf8.i,string">
  1537. <dt><pre><span class="Keyword">iterator</span> <a href="#utf8.i%2Cstring"><span class="Identifier">utf8</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  1538. <dd>
  1539. <p>Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning utf8 values.</p>
  1540. <p>See also:</p>
  1541. <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
  1542. <li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
  1543. <li><a class="reference external" href="#$,Rune">$ proc</a> alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">toUTF8</span></span></tt></li>
  1544. <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
  1545. </ul>
  1546. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1362" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1547. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1362" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1548. </dd>
  1549. </div>
  1550. </div>
  1551. </dl>
  1552. </div>
  1553. <div class="section" id="18">
  1554. <h1><a class="toc-backref" href="#18">Templates</a></h1>
  1555. <dl class="item">
  1556. <div id="fastRuneAt-templates-all">
  1557. <div id="fastRuneAt.t,,int,untyped">
  1558. <dt><pre><span class="Keyword">template</span> <a href="#fastRuneAt.t%2C%2Cint%2Cuntyped"><span class="Identifier">fastRuneAt</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">]</span> <span class="Keyword">or</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">result</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">;</span>
  1559. <span class="Identifier">doInc</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span></pre></dt>
  1560. <dd>
  1561. <p>Returns the rune <tt class="docutils literal"><span class="pre">s[i]</span></tt> in <tt class="docutils literal"><span class="pre">result</span></tt>.</p>
  1562. <p>If <tt class="docutils literal"><span class="pre">doInc == true</span></tt> (default), <tt class="docutils literal"><span class="pre">i</span></tt> is incremented by the number of bytes that have been processed.</p>
  1563. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L84" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1564. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L84" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1565. </dd>
  1566. </div>
  1567. </div>
  1568. <div id="fastToUTF8Copy-templates-all">
  1569. <div id="fastToUTF8Copy.t,Rune,string,int">
  1570. <dt><pre><span class="Keyword">template</span> <a href="#fastToUTF8Copy.t%2CRune%2Cstring%2Cint"><span class="Identifier">fastToUTF8Copy</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="unicode.html#Rune"><span class="Identifier">Rune</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">doInc</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span></pre></dt>
  1571. <dd>
  1572. <p>Copies UTF-8 representation of <tt class="docutils literal"><span class="pre">c</span></tt> into the preallocated string <tt class="docutils literal"><span class="pre">s</span></tt> starting at position <tt class="docutils literal"><span class="pre">pos</span></tt>.</p>
  1573. <p>If <tt class="docutils literal"><span class="pre">doInc == true</span></tt> (default), <tt class="docutils literal"><span class="pre">pos</span></tt> is incremented by the number of bytes that have been processed.</p>
  1574. <p>To be the most efficient, make sure <tt class="docutils literal"><span class="pre">s</span></tt> is preallocated with an additional amount equal to the byte length of <tt class="docutils literal"><span class="pre">c</span></tt>.</p>
  1575. <p>See also:</p>
  1576. <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
  1577. <li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
  1578. <li><a class="reference external" href="#$,Rune">$ proc</a> alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">toUTF8</span></span></tt></li>
  1579. </ul>
  1580. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L207" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  1581. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L207" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  1582. </dd>
  1583. </div>
  1584. </div>
  1585. </dl>
  1586. </div>
  1587. </div>
  1588. </div>
  1589. <div class="twelve-columns footer">
  1590. <span class="nim-sprite"></span>
  1591. <br>
  1592. <small style="color: var(--hint);">Made with Nim. Generated: 2025-03-15 14:13:08 UTC</small>
  1593. </div>
  1594. </div>
  1595. </div>
  1596. <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
  1597. </body>
  1598. </html>