1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951 |
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <!-- This file is generated by Nim. -->
- <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>std/unicode</title>
- <!-- Google fonts -->
- <link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
- <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
- <!-- Favicon -->
- <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=="/>
- <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=">
- <!-- CSS -->
- <link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
- <!-- JS -->
- <script type="text/javascript" src="dochack.js?v=2.3.1"></script>
- </head>
- <body>
- <div class="document" id="documentId">
- <div class="container">
- <h1 class="title">std/unicode</h1>
- <div class="row">
- <div class="three columns">
- <div class="theme-select-wrapper">
- <label for="theme-select">Theme: </label>
- <select id="theme-select" onchange="setTheme(this.value)">
- <option value="auto">🌗 Match OS</option>
- <option value="dark">🌑 Dark</option>
- <option value="light">🌕 Light</option>
- </select>
- </div>
- <div id="global-links">
- <ul class="simple-boot">
- <li><a href="manual.html">Manual</a></li>
- <li><a href="lib.html">Standard library</a></li>
- <li> <a id="indexLink" href="theindex.html">Index</a></li>
- <li><a href="compiler/theindex.html">Compiler docs</a></li>
- <li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
- <li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
- </ul>
- </div>
- <div id="searchInputDiv">
- Search: <input type="search" id="searchInput"
- oninput="search()" />
- </div>
-
- <ul class="simple simple-toc" id="toc-list">
- <li>
- <a class="reference reference-toplevel" href="#6" id="56">Imports</a>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
- <ul class="simple simple-toc-section">
- <li><a class="reference" href="#Rune" title="Rune = distinct RuneImpl">Rune</a></li>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">$
- <li><a class="reference" href="#%24%2CRune" title="`$`(rune: Rune): string">`$`(rune: Rune): string</a></li>
- <li><a class="reference" href="#%24%2Cseq%5BRune%5D" title="`$`(runes: seq[Rune]): string">`$`(runes: seq[Rune]): string</a></li>
- </ul>
- <ul class="simple nested-toc-section"><%
- <li><a class="reference" href="#%3C%25%2CRune%2CRune" title="`<%`(a, b: Rune): bool">`<%`(a, b: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section"><=%
- <li><a class="reference" href="#%3C%3D%25%2CRune%2CRune" title="`<=%`(a, b: Rune): bool">`<=%`(a, b: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">==
- <li><a class="reference" href="#%3D%3D%2CRune%2CRune" title="`==`(a, b: Rune): bool">`==`(a, b: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">add
- <li><a class="reference" href="#add%2Cstring%2CRune" title="add(s: var string; c: Rune)">add(s: var string; c: Rune)</a></li>
- </ul>
- <ul class="simple nested-toc-section">align
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">alignLeft
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">capitalize
- <li><a class="reference" href="#capitalize%2CopenArray%5Bchar%5D" title="capitalize(s: openArray[char]): string">capitalize(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#capitalize%2Cstring" title="capitalize(s: string): string">capitalize(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">cmpRunesIgnoreCase
- <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>
- <li><a class="reference" href="#cmpRunesIgnoreCase%2Cstring%2Cstring" title="cmpRunesIgnoreCase(a, b: string): int">cmpRunesIgnoreCase(a, b: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">graphemeLen
- <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>
- <li><a class="reference" href="#graphemeLen%2Cstring%2CNatural" title="graphemeLen(s: string; i: Natural): Natural">graphemeLen(s: string; i: Natural): Natural</a></li>
- </ul>
- <ul class="simple nested-toc-section">isAlpha
- <li><a class="reference" href="#isAlpha%2CRune" title="isAlpha(c: Rune): bool">isAlpha(c: Rune): bool</a></li>
- <li><a class="reference" href="#isAlpha%2CopenArray%5Bchar%5D" title="isAlpha(s: openArray[char]): bool">isAlpha(s: openArray[char]): bool</a></li>
- <li><a class="reference" href="#isAlpha%2Cstring" title="isAlpha(s: string): bool">isAlpha(s: string): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isCombining
- <li><a class="reference" href="#isCombining%2CRune" title="isCombining(c: Rune): bool">isCombining(c: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isLower
- <li><a class="reference" href="#isLower%2CRune" title="isLower(c: Rune): bool">isLower(c: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isSpace
- <li><a class="reference" href="#isSpace%2CopenArray%5Bchar%5D" title="isSpace(s: openArray[char]): bool">isSpace(s: openArray[char]): bool</a></li>
- <li><a class="reference" href="#isSpace%2Cstring" title="isSpace(s: string): bool">isSpace(s: string): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isTitle
- <li><a class="reference" href="#isTitle%2CRune" title="isTitle(c: Rune): bool">isTitle(c: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isUpper
- <li><a class="reference" href="#isUpper%2CRune" title="isUpper(c: Rune): bool">isUpper(c: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isWhiteSpace
- <li><a class="reference" href="#isWhiteSpace%2CRune" title="isWhiteSpace(c: Rune): bool">isWhiteSpace(c: Rune): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">lastRune
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">repeat
- <li><a class="reference" href="#repeat%2CRune%2CNatural" title="repeat(c: Rune; count: Natural): string">repeat(c: Rune; count: Natural): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">reversed
- <li><a class="reference" href="#reversed%2CopenArray%5Bchar%5D" title="reversed(s: openArray[char]): string">reversed(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#reversed%2Cstring" title="reversed(s: string): string">reversed(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">runeAt
- <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>
- <li><a class="reference" href="#runeAt%2Cstring%2CNatural" title="runeAt(s: string; i: Natural): Rune">runeAt(s: string; i: Natural): Rune</a></li>
- </ul>
- <ul class="simple nested-toc-section">runeAtPos
- <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>
- <li><a class="reference" href="#runeAtPos%2Cstring%2Cint" title="runeAtPos(s: string; pos: int): Rune">runeAtPos(s: string; pos: int): Rune</a></li>
- </ul>
- <ul class="simple nested-toc-section">runeLen
- <li><a class="reference" href="#runeLen%2CopenArray%5Bchar%5D" title="runeLen(s: openArray[char]): int">runeLen(s: openArray[char]): int</a></li>
- <li><a class="reference" href="#runeLen%2Cstring" title="runeLen(s: string): int">runeLen(s: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">runeLenAt
- <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>
- <li><a class="reference" href="#runeLenAt%2Cstring%2CNatural" title="runeLenAt(s: string; i: Natural): int">runeLenAt(s: string; i: Natural): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">runeOffset
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">runeReverseOffset
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">runeStrAtPos
- <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>
- <li><a class="reference" href="#runeStrAtPos%2Cstring%2CNatural" title="runeStrAtPos(s: string; pos: Natural): string">runeStrAtPos(s: string; pos: Natural): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">runeSubStr
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">size
- <li><a class="reference" href="#size%2CRune" title="size(r: Rune): int">size(r: Rune): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">split
- <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>
- <li><a class="reference" href="#split%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D%2Cint" title="split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
- maxsplit: int = -1): seq[string]">split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
- maxsplit: int = -1): seq[string]</a></li>
- <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>
- <li><a class="reference" href="#split%2Cstring%2CopenArray%5BRune%5D%2Cint" title="split(s: string; seps: openArray[Rune] = unicodeSpaces; maxsplit: int = -1): seq[
- string]">split(s: string; seps: openArray[Rune] = unicodeSpaces; maxsplit: int = -1): seq[
- string]</a></li>
- </ul>
- <ul class="simple nested-toc-section">splitWhitespace
- <li><a class="reference" href="#splitWhitespace%2CopenArray%5Bchar%5D" title="splitWhitespace(s: openArray[char]): seq[string]">splitWhitespace(s: openArray[char]): seq[string]</a></li>
- <li><a class="reference" href="#splitWhitespace%2Cstring" title="splitWhitespace(s: string): seq[string]">splitWhitespace(s: string): seq[string]</a></li>
- </ul>
- <ul class="simple nested-toc-section">strip
- <li><a class="reference" href="#strip%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D" title="strip(s: openArray[char]; leading = true; trailing = true;
- runes: openArray[Rune] = unicodeSpaces): string">strip(s: openArray[char]; leading = true; trailing = true;
- runes: openArray[Rune] = unicodeSpaces): string</a></li>
- <li><a class="reference" href="#strip%2Cstring%2CopenArray%5BRune%5D" title="strip(s: string; leading = true; trailing = true;
- runes: openArray[Rune] = unicodeSpaces): string">strip(s: string; leading = true; trailing = true;
- runes: openArray[Rune] = unicodeSpaces): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">swapCase
- <li><a class="reference" href="#swapCase%2CopenArray%5Bchar%5D" title="swapCase(s: openArray[char]): string">swapCase(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#swapCase%2Cstring" title="swapCase(s: string): string">swapCase(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">title
- <li><a class="reference" href="#title%2CopenArray%5Bchar%5D" title="title(s: openArray[char]): string">title(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#title%2Cstring" title="title(s: string): string">title(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toLower
- <li><a class="reference" href="#toLower%2CRune" title="toLower(c: Rune): Rune">toLower(c: Rune): Rune</a></li>
- <li><a class="reference" href="#toLower%2CopenArray%5Bchar%5D" title="toLower(s: openArray[char]): string">toLower(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#toLower%2Cstring" title="toLower(s: string): string">toLower(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toRunes
- <li><a class="reference" href="#toRunes%2CopenArray%5Bchar%5D" title="toRunes(s: openArray[char]): seq[Rune]">toRunes(s: openArray[char]): seq[Rune]</a></li>
- <li><a class="reference" href="#toRunes%2Cstring" title="toRunes(s: string): seq[Rune]">toRunes(s: string): seq[Rune]</a></li>
- </ul>
- <ul class="simple nested-toc-section">toTitle
- <li><a class="reference" href="#toTitle%2CRune" title="toTitle(c: Rune): Rune">toTitle(c: Rune): Rune</a></li>
- </ul>
- <ul class="simple nested-toc-section">toUpper
- <li><a class="reference" href="#toUpper%2CRune" title="toUpper(c: Rune): Rune">toUpper(c: Rune): Rune</a></li>
- <li><a class="reference" href="#toUpper%2CopenArray%5Bchar%5D" title="toUpper(s: openArray[char]): string">toUpper(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#toUpper%2Cstring" title="toUpper(s: string): string">toUpper(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toUTF8
- <li><a class="reference" href="#toUTF8%2CRune" title="toUTF8(c: Rune): string">toUTF8(c: Rune): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">translate
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">validateUtf8
- <li><a class="reference" href="#validateUtf8%2CopenArray%5Bchar%5D" title="validateUtf8(s: openArray[char]): int">validateUtf8(s: openArray[char]): int</a></li>
- <li><a class="reference" href="#validateUtf8%2Cstring" title="validateUtf8(s: string): int">validateUtf8(s: string): int</a></li>
- </ul>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">runes
- <li><a class="reference" href="#runes.i%2CopenArray%5Bchar%5D" title="runes(s: openArray[char]): Rune">runes(s: openArray[char]): Rune</a></li>
- <li><a class="reference" href="#runes.i%2Cstring" title="runes(s: string): Rune">runes(s: string): Rune</a></li>
- </ul>
- <ul class="simple nested-toc-section">split
- <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>
- <li><a class="reference" href="#split.i%2CopenArray%5Bchar%5D%2CopenArray%5BRune%5D%2Cint" title="split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
- maxsplit: int = -1): string">split(s: openArray[char]; seps: openArray[Rune] = unicodeSpaces;
- maxsplit: int = -1): string</a></li>
- <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>
- <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>
- </ul>
- <ul class="simple nested-toc-section">splitWhitespace
- <li><a class="reference" href="#splitWhitespace.i%2CopenArray%5Bchar%5D" title="splitWhitespace(s: openArray[char]): string">splitWhitespace(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#splitWhitespace.i%2Cstring" title="splitWhitespace(s: string): string">splitWhitespace(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">utf8
- <li><a class="reference" href="#utf8.i%2CopenArray%5Bchar%5D" title="utf8(s: openArray[char]): string">utf8(s: openArray[char]): string</a></li>
- <li><a class="reference" href="#utf8.i%2Cstring" title="utf8(s: string): string">utf8(s: string): string</a></li>
- </ul>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">fastRuneAt
- <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>
- </ul>
- <ul class="simple nested-toc-section">fastToUTF8Copy
- <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>
- </ul>
- </ul>
- </details>
- </li>
- </ul>
- </div>
- <div class="nine columns" id="content">
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
- <div id="tocRoot"></div>
-
- <p class="module-desc"><p>This module provides support to handle the Unicode UTF-8 encoding.</p>
- <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>
- <p>The current version is compatible with Unicode v12.0.0.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="strutils.html">strutils module</a></li>
- <li><a class="reference external" href="unidecode.html">unidecode module</a></li>
- <li><a class="reference external" href="encodings.html">encodings module</a></li>
- </ul>
- </p>
- <div class="section" id="6">
- <h1><a class="toc-backref" href="#6">Imports</a></h1>
- <dl class="item">
- <a class="reference external" href="strbasics.html">strbasics</a>
- </dl>
- </div>
- <div class="section" id="7">
- <h1><a class="toc-backref" href="#7">Types</a></h1>
- <dl class="item">
- <div id="Rune">
- <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>
- <dd>
-
- <p>
- Type that can hold a single Unicode code point.</p>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L37" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L37" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </dl>
- </div>
- <div class="section" id="12">
- <h1><a class="toc-backref" href="#12">Procs</a></h1>
- <dl class="item">
- <div id="$-procs-all">
- <div id="$,Rune">
- <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>
- <dd>
-
- <p>An alias for <a class="reference external" href="#toUTF8,Rune">toUTF8</a>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
- <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L290" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L290" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="$,seq[Rune]">
- <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>
- <dd>
-
- <p>Converts a sequence of Runes to a string.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toRunes,string">toRunes</a> for a reverse operation</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span>
- <span class="Identifier">someString</span> <span class="Operator">=</span> <span class="StringLit">"öÑ"</span>
- <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>
- <span class="Identifier">doAssert</span> <span class="Operator">$</span><span class="Identifier">someRunes</span> <span class="Operator">==</span> <span class="Identifier">someString</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L298" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L298" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="<%-procs-all">
- <div id="<%,Rune,Rune">
- <dt><pre><span class="Keyword">proc</span> <a href="#%3C%25%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>
- <dd>
-
- 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>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span>
- <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"ú"</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="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">"ü"</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="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator"><%</span> <span class="Identifier">b</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L451" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L451" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="<=%-procs-all">
- <div id="<=%,Rune,Rune">
- <dt><pre><span class="Keyword">proc</span> <a href="#%3C%3D%25%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>
- <dd>
-
- 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>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span>
- <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"ú"</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="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">"ü"</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="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator"><=%</span> <span class="Identifier">b</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L442" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L442" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="==-procs-all">
- <div id="==,Rune,Rune">
- <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>
- <dd>
-
- Checks if two runes are equal.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L460" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L460" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="add-procs-all">
- <div id="add,string,Rune">
- <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>
- <dd>
-
- 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>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">"abc"</span>
- <span class="Keyword">let</span> <span class="Identifier">c</span> <span class="Operator">=</span> <span class="StringLit">"ä"</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="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>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span> <span class="Operator">==</span> <span class="StringLit">"abcä"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L279" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L279" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="align-procs-all">
- <div id="align,openArray[char],Natural">
- <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> {.
- <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">"nucAlignString"</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>
- <dd>
-
- <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>
- <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 >= 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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"abc"</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" abc"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"a"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"1232"</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" 1232"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"1232"</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">"##1232"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"Åge"</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" Åge"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"×"</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">"___×"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1111" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1111" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="align,string,Natural">
- <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> {.
- <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>
- <dd>
-
- <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>
- <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 >= 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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"abc"</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" abc"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"a"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"1232"</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" 1232"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"1232"</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">"##1232"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"Åge"</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" Åge"</span>
- <span class="Identifier">assert</span> <span class="Identifier">align</span><span class="Punctuation">(</span><span class="StringLit">"×"</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">"___×"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1491" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1491" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="alignLeft-procs-all">
- <div id="alignLeft,openArray[char],Natural">
- <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> {.
- <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>
- <dd>
-
- <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>
- <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 >= 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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"abc"</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"abc "</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"a"</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"1232"</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1232 "</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"1232"</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">"1232##"</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"Åge"</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Åge "</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"×"</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">"×___"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1138" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1138" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="alignLeft,string,Natural">
- <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> {.
- <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>
- <dd>
-
- <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>
- <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 >= 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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"abc"</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"abc "</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"a"</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"1232"</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1232 "</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"1232"</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">"1232##"</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"Åge"</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Åge "</span>
- <span class="Identifier">assert</span> <span class="Identifier">alignLeft</span><span class="Punctuation">(</span><span class="StringLit">"×"</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">"×___"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1508" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1508" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="capitalize-procs-all">
- <div id="capitalize,openArray[char]">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nuc$1"</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>
- <dd>
-
- Converts the first character of <tt class="docutils literal"><span class="pre">s</span></tt> into an upper-case rune.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">capitalize</span><span class="Punctuation">(</span><span class="StringLit">"βeta"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Βeta"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L712" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L712" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="capitalize,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Converts the first character of <tt class="docutils literal"><span class="pre">s</span></tt> into an upper-case rune.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">capitalize</span><span class="Punctuation">(</span><span class="StringLit">"βeta"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Βeta"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1324" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1324" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cmpRunesIgnoreCase-procs-all">
- <div id="cmpRunesIgnoreCase,openArray[char],openArray[char]">
- <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">"nuc$1"</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>
- <dd>
-
- 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"><</span> <span class="DecNumber">0</span></span></tt> if a < b<br/><tt class="docutils literal"><span class="pre"><span class="Operator">></span> <span class="DecNumber">0</span></span></tt> if a > b<br/></p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L844" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L844" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="cmpRunesIgnoreCase,string,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- 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"><</span> <span class="DecNumber">0</span></span></tt> if a < b<br/><tt class="docutils literal"><span class="pre"><span class="Operator">></span> <span class="DecNumber">0</span></span></tt> if a > b<br/></p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1383" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1383" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="graphemeLen-procs-all">
- <div id="graphemeLen,openArray[char],Natural">
- <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>
- <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>
- <dd>
-
- The number of bytes belonging to byte index <tt class="docutils literal"><span class="pre">s[i]</span></tt>, including following combining code units.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L901" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L901" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="graphemeLen,string,Natural">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- The number of bytes belonging to byte index <tt class="docutils literal"><span class="pre">s[i]</span></tt>, including following combining code unit.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1402" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1402" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isAlpha-procs-all">
- <div id="isAlpha,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
- <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
- <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
- <li><a class="reference external" href="#isWhiteSpace,Rune">isWhiteSpace proc</a></li>
- <li><a class="reference external" href="#isCombining,Rune">isCombining proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L573" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L573" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="isAlpha,openArray[char]">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nuc$1Str"</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>
- <dd>
-
- Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all alphabetic runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isAlpha</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L647" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L647" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="isAlpha,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all alphabetic runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isAlpha</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1288" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1288" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isCombining-procs-all">
- <div id="isCombining,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a Unicode combining code unit.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
- <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
- <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
- <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L620" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L620" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isLower-procs-all">
- <div id="isLower,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a lower case rune.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toLower,Rune">toLower proc</a></li>
- <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
- <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L531" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L531" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isSpace-procs-all">
- <div id="isSpace,openArray[char]">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nuc$1Str"</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>
- <dd>
-
- Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all whitespace runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"</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">"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isSpace</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L655" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L655" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="isSpace,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Returns true if <tt class="docutils literal"><span class="pre">s</span></tt> contains all whitespace runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"</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">"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">isSpace</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1295" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1295" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isTitle-procs-all">
- <div id="isTitle,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a Unicode titlecase code point.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toTitle,Rune">toTitle proc</a></li>
- <li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
- <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
- <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
- <li><a class="reference external" href="#isWhiteSpace,Rune">isWhiteSpace proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L594" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L594" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isUpper-procs-all">
- <div id="isUpper,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a upper case rune.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toUpper,Rune">toUpper proc</a></li>
- <li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
- <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
- <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
- <li><a class="reference external" href="#isWhiteSpace,Rune">isWhiteSpace proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L551" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L551" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isWhiteSpace-procs-all">
- <div id="isWhiteSpace,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Returns true if <tt class="docutils literal"><span class="pre">c</span></tt> is a Unicode whitespace code point.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
- <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
- <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
- <li><a class="reference external" href="#isAlpha,Rune">isAlpha proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L605" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L605" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="lastRune-procs-all">
- <div id="lastRune,openArray[char],int">
- <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>
- <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>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L920" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L920" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="lastRune,string,int">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1412" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1412" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="repeat-procs-all">
- <div id="repeat,Rune,Natural">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nucRepeatRune"</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>
- <dd>
-
- <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>
- <p>The returned string will have a rune-length of <tt class="docutils literal"><span class="pre">count</span></tt>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"ñ"</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="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">"ñññññ"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1097" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1097" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="reversed-procs-all">
- <div id="reversed,openArray[char]">
- <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>
- <dd>
-
- <p>Returns the reverse of <tt class="docutils literal"><span class="pre">s</span></tt>, interpreting it as runes.</p>
- <p>Unicode combining characters are correctly interpreted as well.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"Reverse this!"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"!siht esreveR"</span>
- <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"先秦兩漢"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"漢兩秦先"</span>
- <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"as⃝df̅"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"f̅ds⃝a"</span>
- <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"a⃞b⃞c⃞"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"c⃞b⃞a⃞"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L866" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L866" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="reversed,string">
- <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>
- <dd>
-
- <p>Returns the reverse of <tt class="docutils literal"><span class="pre">s</span></tt>, interpreting it as runes.</p>
- <p>Unicode combining characters are correctly interpreted as well.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"Reverse this!"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"!siht esreveR"</span>
- <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"先秦兩漢"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"漢兩秦先"</span>
- <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"as⃝df̅"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"f̅ds⃝a"</span>
- <span class="Identifier">assert</span> <span class="Identifier">reversed</span><span class="Punctuation">(</span><span class="StringLit">"a⃞b⃞c⃞"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"c⃞b⃞a⃞"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1391" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1391" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeAt-procs-all">
- <div id="runeAt,openArray[char],Natural">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
- <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
- <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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">"ñ"</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="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">"ñ"</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="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">"y"</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L162" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L162" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeAt,string,Natural">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
- <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
- <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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">"ñ"</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="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">"ñ"</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="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">"y"</span><span class="Operator">.</span><span class="Identifier">runeAt</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1184" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1184" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeAtPos-procs-all">
- <div id="runeAtPos,openArray[char],int">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt>.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
- <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
- <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L368" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L368" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeAtPos,string,int">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt>.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
- <li><a class="reference external" href="#runeStrAtPos,string,Natural">runeStrAtPos proc</a></li>
- <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1243" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1243" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeLen-procs-all">
- <div id="runeLen,openArray[char]">
- <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">"nuc$1"</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>
- <dd>
-
- Returns the number of runes of the string <tt class="docutils literal"><span class="pre">s</span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <span class="Comment">## note: a.len == 8</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L45" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L45" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeLen,string">
- <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>
- <dd>
-
- Returns the number of runes of the string <tt class="docutils literal"><span class="pre">s</span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <span class="Comment">## note: a.len == 8</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1165" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1165" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeLenAt-procs-all">
- <div id="runeLenAt,openArray[char],Natural">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Returns the number of bytes the rune starting at <tt class="docutils literal"><span class="pre">s[i]</span></tt> takes.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L64" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L64" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeLenAt,string,Natural">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Returns the number of bytes the rune starting at <tt class="docutils literal"><span class="pre">s[i]</span></tt> takes.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1173" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1173" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeOffset-procs-all">
- <div id="runeOffset,openArray[char],Natural,Natural">
- <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> {.
- <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>
- <dd>
-
- <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>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeReverseOffset,string,Positive">runeReverseOffset proc</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L313" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L313" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeOffset,string,Natural,Natural">
- <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>
- <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>
- <dd>
-
- <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>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeReverseOffset,string,Positive">runeReverseOffset proc</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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>
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1208" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1208" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeReverseOffset-procs-all">
- <div id="runeReverseOffset,openArray[char],Positive">
- <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> {.
- <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>
- <dd>
-
- <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>
- <p>Returns a negative value for offset if there are too few runes in the string to satisfy the request.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeOffset,string,Natural,Natural">runeOffset proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L340" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L340" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeReverseOffset,string,Positive">
- <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>
- <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>
- <dd>
-
- <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>
- <p>Returns a negative value for offset if there are too few runes in the string to satisfy the request.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeOffset,string,Natural,Natural">runeOffset proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1226" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1226" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeStrAtPos-procs-all">
- <div id="runeStrAtPos,openArray[char],Natural">
- <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>
- <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>
- <dd>
-
- <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt> as UTF8 String.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
- <li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
- <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L381" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L381" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeStrAtPos,string,Natural">
- <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>
- <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>
- <dd>
-
- <p>Returns the rune at position <tt class="docutils literal"><span class="pre">pos</span></tt> as UTF8 String.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#runeAt,string,Natural">runeAt proc</a></li>
- <li><a class="reference external" href="#runeAtPos,string,int">runeAtPos proc</a></li>
- <li><a class="reference external" href="#fastRuneAt.t,string,int,untyped">fastRuneAt template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1256" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1256" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="runeSubStr-procs-all">
- <div id="runeSubStr,openArray[char],int,int">
- <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> {.
- <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>
- <dd>
-
- <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>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">"Hänsel ««: 10,00€"</span>
- <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">"Hä"</span><span class="Punctuation">)</span>
- <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">":"</span><span class="Punctuation">)</span>
- <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">"10,00€"</span><span class="Punctuation">)</span>
- <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">": 10,00€"</span><span class="Punctuation">)</span>
- <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">"10,00"</span><span class="Punctuation">)</span>
- <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">"10,"</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L395" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L395" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runeSubStr,string,int,int">
- <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>
- <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>
- <dd>
-
- <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>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">"Hänsel ««: 10,00€"</span>
- <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">"Hä"</span><span class="Punctuation">)</span>
- <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">":"</span><span class="Punctuation">)</span>
- <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">"10,00€"</span><span class="Punctuation">)</span>
- <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">": 10,00€"</span><span class="Punctuation">)</span>
- <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">"10,00"</span><span class="Punctuation">)</span>
- <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">"10,"</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1270" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1270" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="size-procs-all">
- <div id="size,Rune">
- <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>
- <dd>
-
- Returns the number of bytes the rune <tt class="docutils literal"><span class="pre">r</span></tt> takes.
- <p><strong class="examples_text">Example:</strong></p>
- <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">"aá"</span>
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L932" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L932" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="split-procs-all">
- <div id="split,openArray[char],Rune,int">
- <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> {.
- <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">"nucSplitRune"</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>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1034" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1034" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split,openArray[char],openArray[Rune],int">
- <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>
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nucSplitRunes"</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>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1028" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1028" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split,string,Rune,int">
- <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> {.
- <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>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1470" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1470" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split,string,openArray[Rune],int">
- <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>
- <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>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1464" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1464" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="splitWhitespace-procs-all">
- <div id="splitWhitespace,openArray[char]">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"ncuSplitWhitespace"</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>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1011" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1011" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="splitWhitespace,string">
- <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>
- <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>
- <dd>
-
- 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.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1448" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1448" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="strip-procs-all">
- <div id="strip,openArray[char],openArray[Rune]">
- <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>
- <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>
- <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">"nucStrip"</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>
- <dd>
-
- <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>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng "</span>
- <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">"áñyóng"</span>
- <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">"</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng"</span>
- <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">"áñyóng "</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1040" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1040" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="strip,string,openArray[Rune]">
- <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>
- <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>
- <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>
- <dd>
-
- <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>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng "</span>
- <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">"áñyóng"</span>
- <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">"</span><span class="EscapeSequence">\t</span><span class="StringLit">áñyóng"</span>
- <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">"áñyóng "</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1475" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1475" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="swapCase-procs-all">
- <div id="swapCase,openArray[char]">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nuc$1"</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>
- <dd>
-
- <p>Swaps the case of runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
- <p>Returns a new string such that the cases of all runes are swapped if possible.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">swapCase</span><span class="Punctuation">(</span><span class="StringLit">"Αlpha Βeta Γamma"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"αLPHA βETA γAMMA"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L690" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L690" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="swapCase,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Swaps the case of runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
- <p>Returns a new string such that the cases of all runes are swapped if possible.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">swapCase</span><span class="Punctuation">(</span><span class="StringLit">"Αlpha Βeta Γamma"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"αLPHA βETA γAMMA"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1315" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1315" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="title-procs-all">
- <div id="title,openArray[char]">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Converts <tt class="docutils literal"><span class="pre">s</span></tt> to a unicode title.</p>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">title</span><span class="Punctuation">(</span><span class="StringLit">"αlpha βeta γamma"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Αlpha Βeta Γamma"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L782" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L782" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="title,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Converts <tt class="docutils literal"><span class="pre">s</span></tt> to a unicode title.</p>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">title</span><span class="Punctuation">(</span><span class="StringLit">"αlpha βeta γamma"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Αlpha Βeta Γamma"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1347" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1347" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toLower-procs-all">
- <div id="toLower,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Converts <tt class="docutils literal"><span class="pre">c</span></tt> into lower case. This works for any rune.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toUpper,Rune">toUpper proc</a></li>
- <li><a class="reference external" href="#toTitle,Rune">toTitle proc</a></li>
- <li><a class="reference external" href="#isLower,Rune">isLower proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L482" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L482" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toLower,openArray[char]">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nuc$1Str"</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>
- <dd>
-
- Converts <tt class="docutils literal"><span class="pre">s</span></tt> into lower-case runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toLower</span><span class="Punctuation">(</span><span class="StringLit">"ABΓ"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"abγ"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L683" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L683" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toLower,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Converts <tt class="docutils literal"><span class="pre">s</span></tt> into lower-case runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toLower</span><span class="Punctuation">(</span><span class="StringLit">"ABΓ"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"abγ"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1309" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1309" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toRunes-procs-all">
- <div id="toRunes,openArray[char]">
- <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>
- <dd>
-
- <p>Obtains a sequence containing the Runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#$,Rune">$ proc</a> for a reverse operation</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <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">"aáä"</span><span class="Punctuation">)</span>
- <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">"a"</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">"á"</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">"ä"</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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L831" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L831" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toRunes,string">
- <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>
- <dd>
-
- <p>Obtains a sequence containing the Runes in <tt class="docutils literal"><span class="pre">s</span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#$,Rune">$ proc</a> for a reverse operation</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <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">"aáä"</span><span class="Punctuation">)</span>
- <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">"a"</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">"á"</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">"ä"</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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1373" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1373" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toTitle-procs-all">
- <div id="toTitle,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Converts <tt class="docutils literal"><span class="pre">c</span></tt> to title case.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toLower,Rune">toLower proc</a></li>
- <li><a class="reference external" href="#toUpper,Rune">toUpper proc</a></li>
- <li><a class="reference external" href="#isTitle,Rune">isTitle proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L518" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L518" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toUpper-procs-all">
- <div id="toUpper,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Converts <tt class="docutils literal"><span class="pre">c</span></tt> into upper case. This works for any rune.</p>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toLower,Rune">toLower proc</a></li>
- <li><a class="reference external" href="#toTitle,Rune">toTitle proc</a></li>
- <li><a class="reference external" href="#isUpper,Rune">isUpper proc</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L500" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L500" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toUpper,openArray[char]">
- <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>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nuc$1Str"</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>
- <dd>
-
- Converts <tt class="docutils literal"><span class="pre">s</span></tt> into upper-case runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toUpper</span><span class="Punctuation">(</span><span class="StringLit">"abγ"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"ABΓ"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L676" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L676" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toUpper,string">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Converts <tt class="docutils literal"><span class="pre">s</span></tt> into upper-case runes.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toUpper</span><span class="Punctuation">(</span><span class="StringLit">"abγ"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"ABΓ"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1303" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1303" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toUTF8-procs-all">
- <div id="toUTF8,Rune">
- <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">"nuc$1"</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>
- <dd>
-
- <p>Converts a rune into its UTF-8 representation.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
- <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>
- <li><a class="reference external" href="#utf8.i,string">utf8 iterator</a></li>
- <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"añyóng"</span>
- <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">"ñ"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L264" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L264" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="translate-procs-all">
- <div id="translate,openArray[char],proc(string)">
- <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> {.
- <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">"nuc$1"</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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <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>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <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>
- <span class="Keyword">case</span> <span class="Identifier">s</span>
- <span class="Keyword">of</span> <span class="StringLit">"one"</span><span class="Punctuation">:</span> <span class="StringLit">"1"</span>
- <span class="Keyword">of</span> <span class="StringLit">"two"</span><span class="Punctuation">:</span> <span class="StringLit">"2"</span>
- <span class="Keyword">else</span><span class="Punctuation">:</span> <span class="Identifier">s</span>
- <span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"one two three four"</span>
- <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">"1 2 three four"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L729" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L729" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="translate,string,proc(string)">
- <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> {.
- <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>
- <dd>
-
- <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>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <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>
- <span class="Keyword">case</span> <span class="Identifier">s</span>
- <span class="Keyword">of</span> <span class="StringLit">"one"</span><span class="Punctuation">:</span> <span class="StringLit">"1"</span>
- <span class="Keyword">of</span> <span class="StringLit">"two"</span><span class="Punctuation">:</span> <span class="StringLit">"2"</span>
- <span class="Keyword">else</span><span class="Punctuation">:</span> <span class="Identifier">s</span>
- <span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"one two three four"</span>
- <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">"1 2 three four"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1331" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1331" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="validateUtf8-procs-all">
- <div id="validateUtf8,openArray[char]">
- <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>
- <dd>
-
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
- <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>
- <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L176" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L176" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="validateUtf8,string">
- <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>
- <dd>
-
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
- <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>
- <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1198" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1198" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- <div class="section" id="15">
- <h1><a class="toc-backref" href="#15">Iterators</a></h1>
- <dl class="item">
- <div id="runes-iterators-all">
- <div id="runes.i,openArray[char]">
- <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>
- <dd>
-
- Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning runes.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L808" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L808" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="runes.i,string">
- <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>
- <dd>
-
- Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning runes.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1357" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1357" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="split-iterators-all">
- <div id="split.i,openArray[char],Rune,int">
- <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> {.
- <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>
- <dd>
-
- 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>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
- <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">";;hÃllo;this;is;an;;example;;;是"</span><span class="Punctuation">,</span> <span class="StringLit">";"</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>
- <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">"hÃllo"</span><span class="Punctuation">,</span> <span class="StringLit">"this"</span><span class="Punctuation">,</span> <span class="StringLit">"is"</span><span class="Punctuation">,</span> <span class="StringLit">"an"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">"example"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">"是"</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1017" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1017" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split.i,openArray[char],openArray[Rune],int">
- <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>
- <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>
- <dd>
-
- <p>Splits the unicode string <tt class="docutils literal"><span class="pre">s</span></tt> into substrings using a group of separators.</p>
- <p>Substrings are separated by a substring containing only <tt class="docutils literal"><span class="pre">seps</span></tt>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
- <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="StringLit">"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">是"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">)</span> <span class="Operator">==</span>
- <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"hÃllo"</span><span class="Punctuation">,</span> <span class="StringLit">"this"</span><span class="Punctuation">,</span> <span class="StringLit">"is"</span><span class="Punctuation">,</span> <span class="StringLit">"an"</span><span class="Punctuation">,</span> <span class="StringLit">"example"</span><span class="Punctuation">,</span> <span class="StringLit">"是"</span><span class="Punctuation">]</span>
- <span class="Comment"># And the following code splits the same string using a sequence of Runes.</span>
- <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">"añyóng:hÃllo;是$example"</span><span class="Punctuation">,</span> <span class="StringLit">";:$"</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">"añyóng"</span><span class="Punctuation">,</span> <span class="StringLit">"hÃllo"</span><span class="Punctuation">,</span> <span class="StringLit">"是"</span><span class="Punctuation">,</span> <span class="StringLit">"example"</span><span class="Punctuation">]</span>
- <span class="Comment"># example with a `Rune` separator and unused one `;`:</span>
- <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">"ab是de:f:"</span><span class="Punctuation">,</span> <span class="StringLit">";:是"</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">"ab"</span><span class="Punctuation">,</span> <span class="StringLit">"de"</span><span class="Punctuation">,</span> <span class="StringLit">"f"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">]</span>
- <span class="Comment"># Another example that splits a string containing a date.</span>
- <span class="Keyword">let</span> <span class="Identifier">date</span> <span class="Operator">=</span> <span class="StringLit">"2012-11-20T22:08:08.398990"</span>
- <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">" -:T"</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">"2012"</span><span class="Punctuation">,</span> <span class="StringLit">"11"</span><span class="Punctuation">,</span> <span class="StringLit">"20"</span><span class="Punctuation">,</span> <span class="StringLit">"22"</span><span class="Punctuation">,</span> <span class="StringLit">"08"</span><span class="Punctuation">,</span> <span class="StringLit">"08.398990"</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L977" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L977" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split.i,string,Rune,int">
- <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>
- <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>
- <dd>
-
- 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>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
- <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">";;hÃllo;this;is;an;;example;;;是"</span><span class="Punctuation">,</span> <span class="StringLit">";"</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>
- <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">"hÃllo"</span><span class="Punctuation">,</span> <span class="StringLit">"this"</span><span class="Punctuation">,</span> <span class="StringLit">"is"</span><span class="Punctuation">,</span> <span class="StringLit">"an"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">"example"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">"是"</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1453" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1453" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split.i,string,openArray[Rune],int">
- <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>
- <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>
- <dd>
-
- <p>Splits the unicode string <tt class="docutils literal"><span class="pre">s</span></tt> into substrings using a group of separators.</p>
- <p>Substrings are separated by a substring containing only <tt class="docutils literal"><span class="pre">seps</span></tt>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span>
- <span class="Identifier">assert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="StringLit">"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">是"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">)</span> <span class="Operator">==</span>
- <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"hÃllo"</span><span class="Punctuation">,</span> <span class="StringLit">"this"</span><span class="Punctuation">,</span> <span class="StringLit">"is"</span><span class="Punctuation">,</span> <span class="StringLit">"an"</span><span class="Punctuation">,</span> <span class="StringLit">"example"</span><span class="Punctuation">,</span> <span class="StringLit">"是"</span><span class="Punctuation">]</span>
- <span class="Comment"># And the following code splits the same string using a sequence of Runes.</span>
- <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">"añyóng:hÃllo;是$example"</span><span class="Punctuation">,</span> <span class="StringLit">";:$"</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">"añyóng"</span><span class="Punctuation">,</span> <span class="StringLit">"hÃllo"</span><span class="Punctuation">,</span> <span class="StringLit">"是"</span><span class="Punctuation">,</span> <span class="StringLit">"example"</span><span class="Punctuation">]</span>
- <span class="Comment"># example with a `Rune` separator and unused one `;`:</span>
- <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">"ab是de:f:"</span><span class="Punctuation">,</span> <span class="StringLit">";:是"</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">"ab"</span><span class="Punctuation">,</span> <span class="StringLit">"de"</span><span class="Punctuation">,</span> <span class="StringLit">"f"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">]</span>
- <span class="Comment"># Another example that splits a string containing a date.</span>
- <span class="Keyword">let</span> <span class="Identifier">date</span> <span class="Operator">=</span> <span class="StringLit">"2012-11-20T22:08:08.398990"</span>
- <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">" -:T"</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">"2012"</span><span class="Punctuation">,</span> <span class="StringLit">"11"</span><span class="Punctuation">,</span> <span class="StringLit">"20"</span><span class="Punctuation">,</span> <span class="StringLit">"22"</span><span class="Punctuation">,</span> <span class="StringLit">"08"</span><span class="Punctuation">,</span> <span class="StringLit">"08.398990"</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1417" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1417" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="splitWhitespace-iterators-all">
- <div id="splitWhitespace.i,openArray[char]">
- <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>
- <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Splits a unicode string at whitespace runes.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1003" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1003" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="splitWhitespace.i,string">
- <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>
- <dd>
-
- Splits a unicode string at whitespace runes.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1443" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1443" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="utf8-iterators-all">
- <div id="utf8.i,openArray[char]">
- <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>
- <dd>
-
- <p>Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning utf8 values.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
- <li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
- <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>
- <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L817" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L817" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="utf8.i,string">
- <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>
- <dd>
-
- <p>Iterates over any rune of the string <tt class="docutils literal"><span class="pre">s</span></tt> returning utf8 values.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
- <li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
- <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>
- <li><a class="reference external" href="#fastToUTF8Copy.t,Rune,string,int">fastToUTF8Copy template</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L1362" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L1362" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- <div class="section" id="18">
- <h1><a class="toc-backref" href="#18">Templates</a></h1>
- <dl class="item">
- <div id="fastRuneAt-templates-all">
- <div id="fastRuneAt.t,,int,untyped">
- <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>
- <span class="Identifier">doInc</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span></pre></dt>
- <dd>
-
- <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>
- <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>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L84" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L84" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="fastToUTF8Copy-templates-all">
- <div id="fastToUTF8Copy.t,Rune,string,int">
- <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>
- <dd>
-
- <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>
- <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>
- <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>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#validateUtf8,string">validateUtf8 proc</a></li>
- <li><a class="reference external" href="#toUTF8,Rune">toUTF8 proc</a></li>
- <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>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/unicode.nim#L207" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/unicode.nim#L207" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- </div>
- </div>
- <div class="twelve-columns footer">
- <span class="nim-sprite"></span>
- <br>
- <small style="color: var(--hint);">Made with Nim. Generated: 2025-03-15 14:13:08 UTC</small>
- </div>
- </div>
- </div>
- <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
-
- </body>
- </html>
|