1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331 |
- <?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/strutils</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/strutils</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="#BinaryPrefixMode" title="BinaryPrefixMode = enum
- bpIEC, bpColloquial">BinaryPrefixMode</a></li>
- <li><a class="reference" href="#FloatFormatMode" title="FloatFormatMode = enum
- ffDefault, ## use the shorter floating point notation
- ffDecimal, ## use decimal floating point notation
- ffScientific ## use scientific notation (using `e` character)">FloatFormatMode</a></li>
- <li><a class="reference" href="#SkipTable" title="SkipTable = array[char, int]">SkipTable</a></li>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#10" id="60">Consts</a></summary>
- <ul class="simple simple-toc-section">
- <li><a class="reference" href="#AllChars" title="AllChars = {'\x00'..'\xFF'}">AllChars</a></li>
- <li><a class="reference" href="#Digits" title="Digits = {'0'..'9'}">Digits</a></li>
- <li><a class="reference" href="#HexDigits" title="HexDigits = {'0'..'9', 'A'..'F', 'a'..'f'}">HexDigits</a></li>
- <li><a class="reference" href="#IdentChars" title="IdentChars = {'a'..'z', 'A'..'Z', '0'..'9', '_'}">IdentChars</a></li>
- <li><a class="reference" href="#IdentStartChars" title="IdentStartChars = {'a'..'z', 'A'..'Z', '_'}">IdentStartChars</a></li>
- <li><a class="reference" href="#Letters" title="Letters = {'A'..'Z', 'a'..'z'}">Letters</a></li>
- <li><a class="reference" href="#LowercaseLetters" title="LowercaseLetters = {'a'..'z'}">LowercaseLetters</a></li>
- <li><a class="reference" href="#Newlines" title="Newlines = {'\r', '\n'}">Newlines</a></li>
- <li><a class="reference" href="#PrintableChars" title="PrintableChars = {'\t'..'\r', ' '..'~'}">PrintableChars</a></li>
- <li><a class="reference" href="#PunctuationChars" title="PunctuationChars = {'!'..'/', ':'..'@', '['..'`', '{'..'~'}">PunctuationChars</a></li>
- <li><a class="reference" href="#UppercaseLetters" title="UppercaseLetters = {'A'..'Z'}">UppercaseLetters</a></li>
- <li><a class="reference" href="#Whitespace" title="Whitespace = {' ', '\t', '\v', '\r', '\n', '\f'}">Whitespace</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="#%25%2Cstring%2Cstring" title="`%`(formatstr, a: string): string">`%`(formatstr, a: string): string</a></li>
- <li><a class="reference" href="#%25%2Cstring%2CopenArray%5Bstring%5D" title="`%`(formatstr: string; a: openArray[string]): string">`%`(formatstr: string; a: openArray[string]): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">abbrev
- <li><a class="reference" href="#abbrev%2Cstring%2CopenArray%5Bstring%5D" title="abbrev(s: string; possibilities: openArray[string]): int">abbrev(s: string; possibilities: openArray[string]): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">addf
- <li><a class="reference" href="#addf%2Cstring%2Cstring%2Cvarargs%5Bstring%2C%5D" title="addf(s: var string; formatstr: string; a: varargs[string, `$`])">addf(s: var string; formatstr: string; a: varargs[string, `$`])</a></li>
- </ul>
- <ul class="simple nested-toc-section">addSep
- <li><a class="reference" href="#addSep%2Cstring%2Cstring%2CNatural" title="addSep(dest: var string; sep = ", "; startLen: Natural = 0)">addSep(dest: var string; sep = ", "; startLen: Natural = 0)</a></li>
- </ul>
- <ul class="simple nested-toc-section">align
- <li><a class="reference" href="#align%2Cstring%2CNatural%2Cchar" title="align(s: string; count: Natural; padding = ' '): string">align(s: string; count: Natural; padding = ' '): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">alignLeft
- <li><a class="reference" href="#alignLeft%2Cstring%2CNatural%2Cchar" title="alignLeft(s: string; count: Natural; padding = ' '): string">alignLeft(s: string; count: Natural; padding = ' '): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">allCharsInSet
- <li><a class="reference" href="#allCharsInSet%2Cstring%2Cset%5Bchar%5D" title="allCharsInSet(s: string; theSet: set[char]): bool">allCharsInSet(s: string; theSet: set[char]): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">capitalizeAscii
- <li><a class="reference" href="#capitalizeAscii%2Cstring" title="capitalizeAscii(s: string): string">capitalizeAscii(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">center
- <li><a class="reference" href="#center%2Cstring%2Cint%2Cchar" title="center(s: string; width: int; fillChar: char = ' '): string">center(s: string; width: int; fillChar: char = ' '): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">cmpIgnoreCase
- <li><a class="reference" href="#cmpIgnoreCase%2Cstring%2Cstring" title="cmpIgnoreCase(a, b: string): int">cmpIgnoreCase(a, b: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">cmpIgnoreStyle
- <li><a class="reference" href="#cmpIgnoreStyle%2Cstring%2Cstring" title="cmpIgnoreStyle(a, b: string): int">cmpIgnoreStyle(a, b: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">contains
- <li><a class="reference" href="#contains%2Cstring%2Cstring" title="contains(s, sub: string): bool">contains(s, sub: string): bool</a></li>
- <li><a class="reference" href="#contains%2Cstring%2Cset%5Bchar%5D" title="contains(s: string; chars: set[char]): bool">contains(s: string; chars: set[char]): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">continuesWith
- <li><a class="reference" href="#continuesWith%2Cstring%2Cstring%2CNatural" title="continuesWith(s, substr: string; start: Natural): bool">continuesWith(s, substr: string; start: Natural): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">count
- <li><a class="reference" href="#count%2Cstring%2Cchar" title="count(s: string; sub: char): int">count(s: string; sub: char): int</a></li>
- <li><a class="reference" href="#count%2Cstring%2Cstring%2Cbool" title="count(s: string; sub: string; overlapping: bool = false): int">count(s: string; sub: string; overlapping: bool = false): int</a></li>
- <li><a class="reference" href="#count%2Cstring%2Cset%5Bchar%5D" title="count(s: string; subs: set[char]): int">count(s: string; subs: set[char]): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">countLines
- <li><a class="reference" href="#countLines%2Cstring" title="countLines(s: string): int">countLines(s: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">dedent
- <li><a class="reference" href="#dedent%2Cstring%2CNatural" title="dedent(s: string; count: Natural = indentation(s)): string">dedent(s: string; count: Natural = indentation(s)): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">delete
- <li><a class="reference" href="#delete%2Cstring%2Cint%2Cint" title="delete(s: var string; first, last: int)">delete(s: var string; first, last: int)</a></li>
- <li><a class="reference" href="#delete%2Cstring%2CSlice%5Bint%5D" title="delete(s: var string; slice: Slice[int])">delete(s: var string; slice: Slice[int])</a></li>
- </ul>
- <ul class="simple nested-toc-section">endsWith
- <li><a class="reference" href="#endsWith%2Cstring%2Cstring" title="endsWith(s, suffix: string): bool">endsWith(s, suffix: string): bool</a></li>
- <li><a class="reference" href="#endsWith%2Cstring%2Cchar" title="endsWith(s: string; suffix: char): bool">endsWith(s: string; suffix: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">escape
- <li><a class="reference" href="#escape%2Cstring%2Cstring%2Cstring" title="escape(s: string; prefix = "\""; suffix = "\""): string">escape(s: string; prefix = "\""; suffix = "\""): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">find
- <li><a class="reference" href="#find%2CSkipTable%2Cstring%2Cstring%2CNatural%2Cint" title="find(a: SkipTable; s, sub: string; start: Natural = 0; last = -1): int">find(a: SkipTable; s, sub: string; start: Natural = 0; last = -1): int</a></li>
- <li><a class="reference" href="#find%2Cstring%2Cstring%2CNatural%2Cint" title="find(s, sub: string; start: Natural = 0; last = -1): int">find(s, sub: string; start: Natural = 0; last = -1): int</a></li>
- <li><a class="reference" href="#find%2Cstring%2Cset%5Bchar%5D%2CNatural%2Cint" title="find(s: string; chars: set[char]; start: Natural = 0; last = -1): int">find(s: string; chars: set[char]; start: Natural = 0; last = -1): int</a></li>
- <li><a class="reference" href="#find%2Cstring%2Cchar%2CNatural%2Cint" title="find(s: string; sub: char; start: Natural = 0; last = -1): int">find(s: string; sub: char; start: Natural = 0; last = -1): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">format
- <li><a class="reference" href="#format%2Cstring%2Cvarargs%5Bstring%2C%5D" title="format(formatstr: string; a: varargs[string, `$`]): string">format(formatstr: string; a: varargs[string, `$`]): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">formatBiggestFloat
- <li><a class="reference" href="#formatBiggestFloat%2CBiggestFloat%2CFloatFormatMode%2Crange%5B%5D%2Cchar" title="formatBiggestFloat(f: BiggestFloat; format: FloatFormatMode = ffDefault;
- precision: range[-1 .. 32] = 16; decimalSep = '.'): string">formatBiggestFloat(f: BiggestFloat; format: FloatFormatMode = ffDefault;
- precision: range[-1 .. 32] = 16; decimalSep = '.'): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">formatEng
- <li><a class="reference" href="#formatEng%2CBiggestFloat%2Crange%5B%5D%2Cbool%2Cbool%2Cstring%2Cchar" title="formatEng(f: BiggestFloat; precision: range[0 .. 32] = 10; trim: bool = true;
- siPrefix: bool = false; unit: string = ""; decimalSep = '.';
- useUnitSpace = false): string">formatEng(f: BiggestFloat; precision: range[0 .. 32] = 10; trim: bool = true;
- siPrefix: bool = false; unit: string = ""; decimalSep = '.';
- useUnitSpace = false): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">formatFloat
- <li><a class="reference" href="#formatFloat%2Cfloat%2CFloatFormatMode%2Crange%5B%5D%2Cchar" title="formatFloat(f: float; format: FloatFormatMode = ffDefault;
- precision: range[-1 .. 32] = 16; decimalSep = '.'): string">formatFloat(f: float; format: FloatFormatMode = ffDefault;
- precision: range[-1 .. 32] = 16; decimalSep = '.'): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">formatSize
- <li><a class="reference" href="#formatSize%2Cint64%2Cchar" title="formatSize(bytes: int64; decimalSep = '.'; prefix = bpIEC; includeSpace = false): string">formatSize(bytes: int64; decimalSep = '.'; prefix = bpIEC; includeSpace = false): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">fromBin
- <li><a class="reference" href="#fromBin%2Cstring" title="fromBin[T: SomeInteger](s: string): T">fromBin[T: SomeInteger](s: string): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">fromHex
- <li><a class="reference" href="#fromHex%2Cstring" title="fromHex[T: SomeInteger](s: string): T">fromHex[T: SomeInteger](s: string): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">fromOct
- <li><a class="reference" href="#fromOct%2Cstring" title="fromOct[T: SomeInteger](s: string): T">fromOct[T: SomeInteger](s: string): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">indent
- <li><a class="reference" href="#indent%2Cstring%2CNatural%2Cstring" title="indent(s: string; count: Natural; padding: string = " "): string">indent(s: string; count: Natural; padding: string = " "): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">indentation
- <li><a class="reference" href="#indentation%2Cstring" title="indentation(s: string): Natural">indentation(s: string): Natural</a></li>
- </ul>
- <ul class="simple nested-toc-section">initSkipTable
- <li><a class="reference" href="#initSkipTable%2CSkipTable%2Cstring" title="initSkipTable(a: var SkipTable; sub: string)">initSkipTable(a: var SkipTable; sub: string)</a></li>
- <li><a class="reference" href="#initSkipTable%2Cstring" title="initSkipTable(sub: string): SkipTable">initSkipTable(sub: string): SkipTable</a></li>
- </ul>
- <ul class="simple nested-toc-section">insertSep
- <li><a class="reference" href="#insertSep%2Cstring%2Cchar%2Cint" title="insertSep(s: string; sep = '_'; digits = 3): string">insertSep(s: string; sep = '_'; digits = 3): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">intToStr
- <li><a class="reference" href="#intToStr%2Cint%2CPositive" title="intToStr(x: int; minchars: Positive = 1): string">intToStr(x: int; minchars: Positive = 1): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">isAlphaAscii
- <li><a class="reference" href="#isAlphaAscii%2Cchar" title="isAlphaAscii(c: char): bool">isAlphaAscii(c: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isAlphaNumeric
- <li><a class="reference" href="#isAlphaNumeric%2Cchar" title="isAlphaNumeric(c: char): bool">isAlphaNumeric(c: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isDigit
- <li><a class="reference" href="#isDigit%2Cchar" title="isDigit(c: char): bool">isDigit(c: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isEmptyOrWhitespace
- <li><a class="reference" href="#isEmptyOrWhitespace%2Cstring" title="isEmptyOrWhitespace(s: string): bool">isEmptyOrWhitespace(s: string): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isLowerAscii
- <li><a class="reference" href="#isLowerAscii%2Cchar" title="isLowerAscii(c: char): bool">isLowerAscii(c: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isSpaceAscii
- <li><a class="reference" href="#isSpaceAscii%2Cchar" title="isSpaceAscii(c: char): bool">isSpaceAscii(c: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isUpperAscii
- <li><a class="reference" href="#isUpperAscii%2Cchar" title="isUpperAscii(c: char): bool">isUpperAscii(c: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">join
- <li><a class="reference" href="#join%2CopenArray%5Bstring%5D%2Cstring" title="join(a: openArray[string]; sep: string = ""): string">join(a: openArray[string]; sep: string = ""): string</a></li>
- <li><a class="reference" href="#join%2CopenArray%5BT%5D%2Cstring" title="join[T: not string](a: openArray[T]; sep: string = ""): string">join[T: not string](a: openArray[T]; sep: string = ""): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">multiReplace
- <li><a class="reference" href="#multiReplace%2Cstring%2Cvarargs%5B%5D" title="multiReplace(s: string; replacements: varargs[(string, string)]): string">multiReplace(s: string; replacements: varargs[(string, string)]): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">nimIdentNormalize
- <li><a class="reference" href="#nimIdentNormalize%2Cstring" title="nimIdentNormalize(s: string): string">nimIdentNormalize(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">normalize
- <li><a class="reference" href="#normalize%2Cstring" title="normalize(s: string): string">normalize(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseBiggestInt
- <li><a class="reference" href="#parseBiggestInt%2Cstring" title="parseBiggestInt(s: string): BiggestInt">parseBiggestInt(s: string): BiggestInt</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseBiggestUInt
- <li><a class="reference" href="#parseBiggestUInt%2Cstring" title="parseBiggestUInt(s: string): BiggestUInt">parseBiggestUInt(s: string): BiggestUInt</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseBinInt
- <li><a class="reference" href="#parseBinInt%2Cstring" title="parseBinInt(s: string): int">parseBinInt(s: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseBool
- <li><a class="reference" href="#parseBool%2Cstring" title="parseBool(s: string): bool">parseBool(s: string): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseEnum
- <li><a class="reference" href="#parseEnum%2Cstring" title="parseEnum[T: enum](s: string): T">parseEnum[T: enum](s: string): T</a></li>
- <li><a class="reference" href="#parseEnum%2Cstring%2CT" title="parseEnum[T: enum](s: string; default: T): T">parseEnum[T: enum](s: string; default: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseFloat
- <li><a class="reference" href="#parseFloat%2Cstring" title="parseFloat(s: string): float">parseFloat(s: string): float</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseHexInt
- <li><a class="reference" href="#parseHexInt%2Cstring" title="parseHexInt(s: string): int">parseHexInt(s: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseHexStr
- <li><a class="reference" href="#parseHexStr%2Cstring" title="parseHexStr(s: string): string">parseHexStr(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseInt
- <li><a class="reference" href="#parseInt%2Cstring" title="parseInt(s: string): int">parseInt(s: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseOctInt
- <li><a class="reference" href="#parseOctInt%2Cstring" title="parseOctInt(s: string): int">parseOctInt(s: string): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">parseUInt
- <li><a class="reference" href="#parseUInt%2Cstring" title="parseUInt(s: string): uint">parseUInt(s: string): uint</a></li>
- </ul>
- <ul class="simple nested-toc-section">removePrefix
- <li><a class="reference" href="#removePrefix%2Cstring%2Cchar" title="removePrefix(s: var string; c: char)">removePrefix(s: var string; c: char)</a></li>
- <li><a class="reference" href="#removePrefix%2Cstring%2Cset%5Bchar%5D" title="removePrefix(s: var string; chars: set[char] = Newlines)">removePrefix(s: var string; chars: set[char] = Newlines)</a></li>
- <li><a class="reference" href="#removePrefix%2Cstring%2Cstring" title="removePrefix(s: var string; prefix: string)">removePrefix(s: var string; prefix: string)</a></li>
- </ul>
- <ul class="simple nested-toc-section">removeSuffix
- <li><a class="reference" href="#removeSuffix%2Cstring%2Cchar" title="removeSuffix(s: var string; c: char)">removeSuffix(s: var string; c: char)</a></li>
- <li><a class="reference" href="#removeSuffix%2Cstring%2Cset%5Bchar%5D" title="removeSuffix(s: var string; chars: set[char] = Newlines)">removeSuffix(s: var string; chars: set[char] = Newlines)</a></li>
- <li><a class="reference" href="#removeSuffix%2Cstring%2Cstring" title="removeSuffix(s: var string; suffix: string)">removeSuffix(s: var string; suffix: string)</a></li>
- </ul>
- <ul class="simple nested-toc-section">repeat
- <li><a class="reference" href="#repeat%2Cchar%2CNatural" title="repeat(c: char; count: Natural): string">repeat(c: char; count: Natural): string</a></li>
- <li><a class="reference" href="#repeat%2Cstring%2CNatural" title="repeat(s: string; n: Natural): string">repeat(s: string; n: Natural): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">replace
- <li><a class="reference" href="#replace%2Cstring%2Cstring%2Cstring" title="replace(s, sub: string; by = ""): string">replace(s, sub: string; by = ""): string</a></li>
- <li><a class="reference" href="#replace%2Cstring%2Cchar%2Cchar" title="replace(s: string; sub, by: char): string">replace(s: string; sub, by: char): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">replaceWord
- <li><a class="reference" href="#replaceWord%2Cstring%2Cstring%2Cstring" title="replaceWord(s, sub: string; by = ""): string">replaceWord(s, sub: string; by = ""): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">rfind
- <li><a class="reference" href="#rfind%2Cstring%2Cstring%2CNatural%2Cint" title="rfind(s, sub: string; start: Natural = 0; last = -1): int">rfind(s, sub: string; start: Natural = 0; last = -1): int</a></li>
- <li><a class="reference" href="#rfind%2Cstring%2Cset%5Bchar%5D%2CNatural%2Cint" title="rfind(s: string; chars: set[char]; start: Natural = 0; last = -1): int">rfind(s: string; chars: set[char]; start: Natural = 0; last = -1): int</a></li>
- <li><a class="reference" href="#rfind%2Cstring%2Cchar%2CNatural%2Cint" title="rfind(s: string; sub: char; start: Natural = 0; last = -1): int">rfind(s: string; sub: char; start: Natural = 0; last = -1): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">rsplit
- <li><a class="reference" href="#rsplit%2Cstring%2Cchar%2Cint" title="rsplit(s: string; sep: char; maxsplit: int = -1): seq[string]">rsplit(s: string; sep: char; maxsplit: int = -1): seq[string]</a></li>
- <li><a class="reference" href="#rsplit%2Cstring%2Cstring%2Cint" title="rsplit(s: string; sep: string; maxsplit: int = -1): seq[string]">rsplit(s: string; sep: string; maxsplit: int = -1): seq[string]</a></li>
- <li><a class="reference" href="#rsplit%2Cstring%2Cset%5Bchar%5D%2Cint" title="rsplit(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): seq[string]">rsplit(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): seq[string]</a></li>
- </ul>
- <ul class="simple nested-toc-section">spaces
- <li><a class="reference" href="#spaces%2CNatural" title="spaces(n: Natural): string">spaces(n: Natural): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">split
- <li><a class="reference" href="#split%2Cstring%2Cchar%2Cint" title="split(s: string; sep: char; maxsplit: int = -1): seq[string]">split(s: string; sep: char; maxsplit: int = -1): seq[string]</a></li>
- <li><a class="reference" href="#split%2Cstring%2Cstring%2Cint" title="split(s: string; sep: string; maxsplit: int = -1): seq[string]">split(s: string; sep: string; maxsplit: int = -1): seq[string]</a></li>
- <li><a class="reference" href="#split%2Cstring%2Cset%5Bchar%5D%2Cint" title="split(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): seq[string]">split(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): seq[string]</a></li>
- </ul>
- <ul class="simple nested-toc-section">splitLines
- <li><a class="reference" href="#splitLines%2Cstring" title="splitLines(s: string; keepEol = false): seq[string]">splitLines(s: string; keepEol = false): seq[string]</a></li>
- </ul>
- <ul class="simple nested-toc-section">splitWhitespace
- <li><a class="reference" href="#splitWhitespace%2Cstring%2Cint" title="splitWhitespace(s: string; maxsplit: int = -1): seq[string]">splitWhitespace(s: string; maxsplit: int = -1): seq[string]</a></li>
- </ul>
- <ul class="simple nested-toc-section">startsWith
- <li><a class="reference" href="#startsWith%2Cstring%2Cstring" title="startsWith(s, prefix: string): bool">startsWith(s, prefix: string): bool</a></li>
- <li><a class="reference" href="#startsWith%2Cstring%2Cchar" title="startsWith(s: string; prefix: char): bool">startsWith(s: string; prefix: char): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">strip
- <li><a class="reference" href="#strip%2Cstring%2Cset%5Bchar%5D" title="strip(s: string; leading = true; trailing = true; chars: set[char] = Whitespace): string">strip(s: string; leading = true; trailing = true; chars: set[char] = Whitespace): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">stripLineEnd
- <li><a class="reference" href="#stripLineEnd%2Cstring" title="stripLineEnd(s: var string)">stripLineEnd(s: var string)</a></li>
- </ul>
- <ul class="simple nested-toc-section">toBin
- <li><a class="reference" href="#toBin%2CBiggestInt%2CPositive" title="toBin(x: BiggestInt; len: Positive): string">toBin(x: BiggestInt; len: Positive): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toHex
- <li><a class="reference" href="#toHex%2Cstring" title="toHex(s: string): string">toHex(s: string): string</a></li>
- <li><a class="reference" href="#toHex%2CT" title="toHex[T: SomeInteger](x: T): string">toHex[T: SomeInteger](x: T): string</a></li>
- <li><a class="reference" href="#toHex%2CT%2CPositive" title="toHex[T: SomeInteger](x: T; len: Positive): string">toHex[T: SomeInteger](x: T; len: Positive): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toLowerAscii
- <li><a class="reference" href="#toLowerAscii%2Cchar" title="toLowerAscii(c: char): char">toLowerAscii(c: char): char</a></li>
- <li><a class="reference" href="#toLowerAscii%2Cstring" title="toLowerAscii(s: string): string">toLowerAscii(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toOct
- <li><a class="reference" href="#toOct%2CBiggestInt%2CPositive" title="toOct(x: BiggestInt; len: Positive): string">toOct(x: BiggestInt; len: Positive): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toOctal
- <li><a class="reference" href="#toOctal%2Cchar" title="toOctal(c: char): string">toOctal(c: char): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">toUpperAscii
- <li><a class="reference" href="#toUpperAscii%2Cchar" title="toUpperAscii(c: char): char">toUpperAscii(c: char): char</a></li>
- <li><a class="reference" href="#toUpperAscii%2Cstring" title="toUpperAscii(s: string): string">toUpperAscii(s: string): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">trimZeros
- <li><a class="reference" href="#trimZeros%2Cstring%2Cchar" title="trimZeros(x: var string; decimalSep = '.')">trimZeros(x: var string; decimalSep = '.')</a></li>
- </ul>
- <ul class="simple nested-toc-section">unescape
- <li><a class="reference" href="#unescape%2Cstring%2Cstring%2Cstring" title="unescape(s: string; prefix = "\""; suffix = "\""): string">unescape(s: string; prefix = "\""; suffix = "\""): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">unindent
- <li><a class="reference" href="#unindent%2Cstring%2CNatural%2Cstring" title="unindent(s: string; count: Natural = int.high; padding: string = " "): string">unindent(s: string; count: Natural = int.high; padding: string = " "): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">validIdentifier
- <li><a class="reference" href="#validIdentifier%2Cstring" title="validIdentifier(s: string): bool">validIdentifier(s: string): bool</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">rsplit
- <li><a class="reference" href="#rsplit.i%2Cstring%2Cchar%2Cint" title="rsplit(s: string; sep: char; maxsplit: int = -1): string">rsplit(s: string; sep: char; maxsplit: int = -1): string</a></li>
- <li><a class="reference" href="#rsplit.i%2Cstring%2Cstring%2Cint%2Cbool" title="rsplit(s: string; sep: string; maxsplit: int = -1; keepSeparators: bool = false): string">rsplit(s: string; sep: string; maxsplit: int = -1; keepSeparators: bool = false): string</a></li>
- <li><a class="reference" href="#rsplit.i%2Cstring%2Cset%5Bchar%5D%2Cint" title="rsplit(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): string">rsplit(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">split
- <li><a class="reference" href="#split.i%2Cstring%2Cchar%2Cint" title="split(s: string; sep: char; maxsplit: int = -1): string">split(s: string; sep: char; maxsplit: int = -1): string</a></li>
- <li><a class="reference" href="#split.i%2Cstring%2Cstring%2Cint" title="split(s: string; sep: string; maxsplit: int = -1): string">split(s: string; sep: string; maxsplit: int = -1): string</a></li>
- <li><a class="reference" href="#split.i%2Cstring%2Cset%5Bchar%5D%2Cint" title="split(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): string">split(s: string; seps: set[char] = Whitespace; maxsplit: int = -1): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">splitLines
- <li><a class="reference" href="#splitLines.i%2Cstring" title="splitLines(s: string; keepEol = false): string">splitLines(s: string; keepEol = false): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">splitWhitespace
- <li><a class="reference" href="#splitWhitespace.i%2Cstring%2Cint" title="splitWhitespace(s: string; maxsplit: int = -1): string">splitWhitespace(s: string; maxsplit: int = -1): string</a></li>
- </ul>
- <ul class="simple nested-toc-section">tokenize
- <li><a class="reference" href="#tokenize.i%2Cstring%2Cset%5Bchar%5D" title="tokenize(s: string; seps: set[char] = Whitespace): tuple[token: string,
- isSep: bool]">tokenize(s: string; seps: set[char] = Whitespace): tuple[token: string,
- isSep: bool]</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/strutils.nim#L1" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
- <div id="tocRoot"></div>
-
- <p class="module-desc">The system module defines several common functions for working with strings, such as:<ul class="simple"><li><tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> for converting other data-types to strings</li>
- <li><tt class="docutils literal"><span class="pre"><span class="Operator">&</span></span></tt> for string concatenation</li>
- <li><tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> for adding a new character or a string to the existing one</li>
- <li><tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> (alias for <tt class="docutils literal"><span class="pre"><span class="Identifier">contains</span></span></tt>) and <tt class="docutils literal"><span class="pre"><span class="Keyword">notin</span></span></tt> for checking if a character is in a string</li>
- </ul>
- <p>This module builds upon that, providing additional functionality in form of procedures, iterators and templates for strings.</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">strutils</span>
- <span class="Keyword">let</span>
- <span class="Identifier">numbers</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">867</span><span class="Punctuation">,</span> <span class="DecNumber">5309</span><span class="Punctuation">]</span>
- <span class="Identifier">multiLineString</span> <span class="Operator">=</span> <span class="StringLit">"first line</span><span class="EscapeSequence">\n</span><span class="StringLit">second line</span><span class="EscapeSequence">\n</span><span class="StringLit">third line"</span>
- <span class="Keyword">let</span> <span class="Identifier">jenny</span> <span class="Operator">=</span> <span class="Identifier">numbers</span><span class="Operator">.</span><span class="Identifier">join</span><span class="Punctuation">(</span><span class="StringLit">"-"</span><span class="Punctuation">)</span>
- <span class="Identifier">assert</span> <span class="Identifier">jenny</span> <span class="Operator">==</span> <span class="StringLit">"867-5309"</span>
- <span class="Identifier">assert</span> <span class="Identifier">splitLines</span><span class="Punctuation">(</span><span class="Identifier">multiLineString</span><span class="Punctuation">)</span> <span class="Operator">==</span>
- <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"first line"</span><span class="Punctuation">,</span> <span class="StringLit">"second line"</span><span class="Punctuation">,</span> <span class="StringLit">"third line"</span><span class="Punctuation">]</span>
- <span class="Identifier">assert</span> <span class="Identifier">split</span><span class="Punctuation">(</span><span class="Identifier">multiLineString</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"first"</span><span class="Punctuation">,</span> <span class="StringLit">"line"</span><span class="Punctuation">,</span> <span class="StringLit">"second"</span><span class="Punctuation">,</span>
- <span class="StringLit">"line"</span><span class="Punctuation">,</span> <span class="StringLit">"third"</span><span class="Punctuation">,</span> <span class="StringLit">"line"</span><span class="Punctuation">]</span>
- <span class="Identifier">assert</span> <span class="Identifier">indent</span><span class="Punctuation">(</span><span class="Identifier">multiLineString</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span>
- <span class="StringLit">" first line</span><span class="EscapeSequence">\n</span><span class="StringLit"> second line</span><span class="EscapeSequence">\n</span><span class="StringLit"> third line"</span>
- <span class="Identifier">assert</span> <span class="CharLit">'z'</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">"zzzzz"</span></pre>The chaining of functions is possible thanks to the <a class="reference external" href="manual.html#procedures-method-call-syntax">method call syntax</a>:
- <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">strutils</span>
- <span class="Keyword">from</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span> <span class="Keyword">import</span> <span class="Identifier">map</span>
- <span class="Keyword">let</span> <span class="Identifier">jenny</span> <span class="Operator">=</span> <span class="StringLit">"867-5309"</span>
- <span class="Identifier">assert</span> <span class="Identifier">jenny</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Operator">-</span><span class="CharLit">').map(parseInt) == @[867, 5309]</span>
- <span class="Identifier">assert</span> <span class="StringLit">"Beetlejuice"</span><span class="Operator">.</span><span class="Identifier">indent</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">repeat</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">strip</span> <span class="Operator">==</span>
- <span class="StringLit">"Beetlejuice Beetlejuice Beetlejuice"</span></pre>This module is available for the <a class="reference external" href="backends.html#backends-the-javascript-target">JavaScript target</a>.<hr />
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="strformat.html">strformat module</a> for string interpolation and formatting</li>
- <li><a class="reference external" href="unicode.html">unicode module</a> for Unicode UTF-8 handling</li>
- <li><a class="reference external" href="sequtils.html">sequtils module</a> for operations on container types (including strings)</li>
- <li><a class="reference external" href="parsecsv.html">parsecsv module</a> for a high-performance CSV parser</li>
- <li><a class="reference external" href="parseutils.html">parseutils module</a> for lower-level parsing of tokens, numbers, identifiers, etc.</li>
- <li><a class="reference external" href="parseopt.html">parseopt module</a> for command-line parsing</li>
- <li><a class="reference external" href="pegs.html">pegs module</a> for PEG (Parsing Expression Grammar) support</li>
- <li><a class="reference external" href="strtabs.html">strtabs module</a> for efficient hash tables (dictionaries, in some programming languages) mapping from strings to strings</li>
- <li><a class="reference external" href="ropes.html">ropes module</a> for rope data type, which can represent very long strings efficiently</li>
- <li><a class="reference external" href="re.html">re module</a> for regular expression (regex) support</li>
- <li><a class="reference external" href="strscans.html">strscans</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">scanf</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">scanp</span></span></tt> macros, which offer easier substring extraction than regular expressions</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="parseutils.html">parseutils</a>, <a class="reference external" href="math.html">math</a>, <a class="reference external" href="algorithm.html">algorithm</a>, <a class="reference external" href="enumutils.html">enumutils</a>, <a class="reference external" href="unicode.html">unicode</a>, <a class="reference external" href="since.html">since</a>, <a class="reference external" href="jsutils.html">jsutils</a>, <a class="reference external" href="strimpl.html">strimpl</a>, <a class="reference external" href="assertions.html">assertions</a>
- </dl>
- </div>
- <div class="section" id="7">
- <h1><a class="toc-backref" href="#7">Types</a></h1>
- <dl class="item">
- <div id="BinaryPrefixMode">
- <dt><pre><a href="strutils.html#BinaryPrefixMode"><span class="Identifier">BinaryPrefixMode</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
- <span class="Identifier">bpIEC</span><span class="Other">,</span> <span class="Identifier">bpColloquial</span></pre></dt>
- <dd>
-
- The different names for binary prefixes.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2588" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2588" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="FloatFormatMode">
- <dt><pre><a href="strutils.html#FloatFormatMode"><span class="Identifier">FloatFormatMode</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
- <span class="Identifier">ffDefault</span><span class="Other">,</span> <span class="Comment">## use the shorter floating point notation</span>
- <span class="Identifier">ffDecimal</span><span class="Other">,</span> <span class="Comment">## use decimal floating point notation</span>
- <span class="Identifier">ffScientific</span> <span class="Comment">## use scientific notation (using `e` character)</span></pre></dt>
- <dd>
-
- The different modes of floating point formatting.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2464" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2464" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="SkipTable">
- <dt><pre><a href="strutils.html#SkipTable"><span class="Identifier">SkipTable</span></a> <span class="Other">=</span> <a href="system.html#array"><span class="Identifier">array</span></a><span class="Other">[</span><span class="Identifier">char</span><span class="Other">,</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span></pre></dt>
- <dd>
-
- Character table for efficient substring search.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1894" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1894" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </dl>
- </div>
- <div class="section" id="10">
- <h1><a class="toc-backref" href="#10">Consts</a></h1>
- <dl class="item">
- <div id="AllChars">
- <dt><pre><a href="strutils.html#AllChars"><span class="Identifier">AllChars</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'\x00'</span><span class="Other">..</span><span class="CharLit">'\xFF'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- <p>A set with all the possible characters.</p>
- <p>Not very useful by its own, you can use it to create <em>inverted</em> sets to make the <a class="reference external" href="#find,string,set[char],Natural,int">find func</a> find <strong>invalid</strong> characters in strings. Example:</p>
- <p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">invalid</span> <span class="Operator">=</span> <span class="Identifier">AllChars</span> <span class="Operator">-</span> <span class="Identifier">Digits</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"01234"</span><span class="Operator">.</span><span class="Identifier">find</span><span class="Punctuation">(</span><span class="Identifier">invalid</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"01A34"</span><span class="Operator">.</span><span class="Identifier">find</span><span class="Punctuation">(</span><span class="Identifier">invalid</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre></p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L126" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L126" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="Digits">
- <dt><pre><a href="strutils.html#Digits"><span class="Identifier">Digits</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'0'</span><span class="Other">..</span><span class="CharLit">'9'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of digits.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L107" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L107" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="HexDigits">
- <dt><pre><a href="strutils.html#HexDigits"><span class="Identifier">HexDigits</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'0'</span><span class="Other">..</span><span class="CharLit">'9'</span><span class="Other">,</span> <span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'F'</span><span class="Other">,</span> <span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'f'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of hexadecimal digits.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L110" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L110" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="IdentChars">
- <dt><pre><a href="strutils.html#IdentChars"><span class="Identifier">IdentChars</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">,</span> <span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">,</span> <span class="CharLit">'0'</span><span class="Other">..</span><span class="CharLit">'9'</span><span class="Other">,</span> <span class="CharLit">'_'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of characters an identifier can consist of.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L113" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L113" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="IdentStartChars">
- <dt><pre><a href="strutils.html#IdentStartChars"><span class="Identifier">IdentStartChars</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">,</span> <span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">,</span> <span class="CharLit">'_'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of characters an identifier can start with.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L116" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L116" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="Letters">
- <dt><pre><a href="strutils.html#Letters"><span class="Identifier">Letters</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">,</span> <span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of letters.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L95" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L95" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="LowercaseLetters">
- <dt><pre><a href="strutils.html#LowercaseLetters"><span class="Identifier">LowercaseLetters</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'a'</span><span class="Other">..</span><span class="CharLit">'z'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of lowercase ASCII letters.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L101" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L101" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="Newlines">
- <dt><pre><a href="strutils.html#Newlines"><span class="Identifier">Newlines</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'\r'</span><span class="Other">,</span> <span class="CharLit">'\n'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of characters a newline terminator can start with (carriage return, line feed).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L119" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L119" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="PrintableChars">
- <dt><pre><a href="strutils.html#PrintableChars"><span class="Identifier">PrintableChars</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'\t'</span><span class="Other">..</span><span class="CharLit">'\r'</span><span class="Other">,</span> <span class="CharLit">' '</span><span class="Other">..</span><span class="CharLit">'~'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of all printable ASCII characters (letters, digits, whitespace, and punctuation characters).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L123" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L123" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="PunctuationChars">
- <dt><pre><a href="strutils.html#PunctuationChars"><span class="Identifier">PunctuationChars</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'!'</span><span class="Other">..</span><span class="CharLit">'/'</span><span class="Other">,</span> <span class="CharLit">':'</span><span class="Other">..</span><span class="CharLit">'@'</span><span class="Other">,</span> <span class="CharLit">'['</span><span class="Other">..</span><span class="CharLit">'`'</span><span class="Other">,</span> <span class="CharLit">'{'</span><span class="Other">..</span><span class="CharLit">'~'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of all ASCII punctuation characters.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L104" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L104" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="UppercaseLetters">
- <dt><pre><a href="strutils.html#UppercaseLetters"><span class="Identifier">UppercaseLetters</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">'A'</span><span class="Other">..</span><span class="CharLit">'Z'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- The set of uppercase ASCII letters.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L98" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L98" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="Whitespace">
- <dt><pre><a href="strutils.html#Whitespace"><span class="Identifier">Whitespace</span></a> <span class="Other">=</span> <span class="Other">{</span><span class="CharLit">' '</span><span class="Other">,</span> <span class="CharLit">'\t'</span><span class="Other">,</span> <span class="CharLit">'\v'</span><span class="Other">,</span> <span class="CharLit">'\r'</span><span class="Other">,</span> <span class="CharLit">'\n'</span><span class="Other">,</span> <span class="CharLit">'\f'</span><span class="Other">}</span></pre></dt>
- <dd>
-
- All the characters that count as whitespace (space, tab, vertical tab, carriage return, new line, form feed).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L91" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L91" 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="%,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#%25%2Cstring%2Cstring"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">formatstr</span><span class="Other">,</span> <span class="Identifier">a</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">"nsuFormatSingleElem"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>
-
- This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">formatstr</span> <span class="Operator">%</span> <span class="Punctuation">[</span><span class="Identifier">a</span><span class="Punctuation">]</span></span></tt> (see <a class="reference external" href="#%25,string,openArray[string]">% func</a>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2915" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2915" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="%,string,openArray[string]">
- <dt><pre><span class="Keyword">func</span> <a href="#%25%2Cstring%2CopenArray%5Bstring%5D"><span class="Identifier">`%`</span></a><span class="Other">(</span><span class="Identifier">formatstr</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuFormatOpenArray"</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Interpolates a format string with the values from <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>.</p>
- <p>The <span id="substitution_1">substitution</span> operator performs string substitutions in <tt class="docutils literal"><span class="pre"><span class="Identifier">formatstr</span></span></tt> and returns a modified <tt class="docutils literal"><span class="pre"><span class="Identifier">formatstr</span></span></tt>. This is often called <span id="string-interpolation_1">string interpolation</span>.</p>
- <p>This is best explained by an example:</p>
- <p><pre class="listing"><span class="StringLit">"$1 eats $2."</span> <span class="Operator">%</span> <span class="Punctuation">[</span><span class="StringLit">"The cat"</span><span class="Punctuation">,</span> <span class="StringLit">"fish"</span><span class="Punctuation">]</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">"The cat eats fish."</span></pre></p>
- <p>The substitution variables (the thing after the <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt>) are enumerated from 1 to <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">len</span></span></tt>. To produce a verbatim <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt>, use <tt class="docutils literal"><span class="pre"><span class="Operator">$$</span></span></tt>. The notation <tt class="docutils literal"><span class="pre"><span class="Operator">$</span><span class="Comment">#</span></span></tt> can be used to refer to the next substitution variable:</p>
- <p><pre class="listing"><span class="StringLit">"$# eats $#."</span> <span class="Operator">%</span> <span class="Punctuation">[</span><span class="StringLit">"The cat"</span><span class="Punctuation">,</span> <span class="StringLit">"fish"</span><span class="Punctuation">]</span></pre></p>
- <p>Substitution variables can also be words (that is <tt class="docutils literal"><span class="pre"><span class="Punctuation">[</span><span class="Identifier">A</span><span class="Operator">-</span><span class="Identifier">Za</span><span class="Operator">-</span><span class="Identifier">z_</span><span class="Punctuation">]</span><span class="Operator">+</span><span class="Punctuation">[</span><span class="Identifier">A</span><span class="Operator">-</span><span class="Identifier">Za</span><span class="Operator">-</span><span class="Identifier">z0</span><span class="Operator">-</span><span class="DecNumber">9_</span><span class="Punctuation">]</span><span class="Operator">*</span></span></tt>) in which case the arguments in <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> with even indices are keys and with odd indices are the corresponding values. An example:</p>
- <p><pre class="listing"><span class="StringLit">"$animal eats $food."</span> <span class="Operator">%</span> <span class="Punctuation">[</span><span class="StringLit">"animal"</span><span class="Punctuation">,</span> <span class="StringLit">"The cat"</span><span class="Punctuation">,</span> <span class="StringLit">"food"</span><span class="Punctuation">,</span> <span class="StringLit">"fish"</span><span class="Punctuation">]</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">"The cat eats fish."</span></pre></p>
- <p>The variables are compared with <tt class="docutils literal"><span class="pre"><span class="Identifier">cmpIgnoreStyle</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised if an ill-formed format string has been passed to the <tt class="docutils literal"><span class="pre"><span class="Operator">%</span></span></tt> operator.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="strformat.html">strformat module</a> for string interpolation and formatting</li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2862" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2862" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="abbrev-procs-all">
- <div id="abbrev,string,openArray[string]">
- <dt><pre><span class="Keyword">func</span> <a href="#abbrev%2Cstring%2CopenArray%5Bstring%5D"><span class="Identifier">abbrev</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">possibilities</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</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 index of the first item in <tt class="docutils literal"><span class="pre"><span class="Identifier">possibilities</span></span></tt> which starts with <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>, if not ambiguous.</p>
- <p>Returns -1 if no item has been found and -2 if multiple items match.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">abbrev</span><span class="Punctuation">(</span><span class="StringLit">"fac"</span><span class="Punctuation">,</span> <span class="Punctuation">[</span><span class="StringLit">"college"</span><span class="Punctuation">,</span> <span class="StringLit">"faculty"</span><span class="Punctuation">,</span> <span class="StringLit">"industry"</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">abbrev</span><span class="Punctuation">(</span><span class="StringLit">"foo"</span><span class="Punctuation">,</span> <span class="Punctuation">[</span><span class="StringLit">"college"</span><span class="Punctuation">,</span> <span class="StringLit">"faculty"</span><span class="Punctuation">,</span> <span class="StringLit">"industry"</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span> <span class="Comment"># Not found</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">abbrev</span><span class="Punctuation">(</span><span class="StringLit">"fac"</span><span class="Punctuation">,</span> <span class="Punctuation">[</span><span class="StringLit">"college"</span><span class="Punctuation">,</span> <span class="StringLit">"faculty"</span><span class="Punctuation">,</span> <span class="StringLit">"faculties"</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">2</span> <span class="Comment"># Ambiguous</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">abbrev</span><span class="Punctuation">(</span><span class="StringLit">"college"</span><span class="Punctuation">,</span> <span class="Punctuation">[</span><span class="StringLit">"college"</span><span class="Punctuation">,</span> <span class="StringLit">"colleges"</span><span class="Punctuation">,</span> <span class="StringLit">"industry"</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1842" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1842" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="addf-procs-all">
- <div id="addf,string,string,varargs[string,]">
- <dt><pre><span class="Keyword">func</span> <a href="#addf%2Cstring%2Cstring%2Cvarargs%5Bstring%2C%5D"><span class="Identifier">addf</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">formatstr</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Other">`</span><span class="Operator">$</span><span class="Other">`</span><span class="Other">]</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">"nsuAddf"</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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 <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Identifier">formatstr</span> <span class="Operator">%</span> <span class="Identifier">a</span><span class="Punctuation">)</span></span></tt>, but more efficient.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2799" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2799" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="addSep-procs-all">
- <div id="addSep,string,string,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#addSep%2Cstring%2Cstring%2CNatural"><span class="Identifier">addSep</span></a><span class="Other">(</span><span class="Identifier">dest</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">sep</span> <span class="Other">=</span> <span class="StringLit">", "</span><span class="Other">;</span> <span class="Identifier">startLen</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="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>Adds a separator to <tt class="docutils literal"><span class="pre"><span class="Identifier">dest</span></span></tt> only if its length is bigger than <tt class="docutils literal"><span class="pre"><span class="Identifier">startLen</span></span></tt>.</p>
- <p>A shorthand for:</p>
- <p><pre class="listing"><span class="Keyword">if</span> <span class="Identifier">dest</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">></span> <span class="Identifier">startLen</span><span class="Punctuation">:</span> <span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">dest</span><span class="Punctuation">,</span> <span class="Identifier">sep</span><span class="Punctuation">)</span></pre></p>
- <p>This is often useful for generating some code where the items need to be <em>separated</em> by <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt> is only added if <tt class="docutils literal"><span class="pre"><span class="Identifier">dest</span></span></tt> is longer than <tt class="docutils literal"><span class="pre"><span class="Identifier">startLen</span></span></tt>. The following example creates a string describing an array of integers.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">arr</span> <span class="Operator">=</span> <span class="StringLit">"["</span>
- <span class="Keyword">for</span> <span class="Identifier">x</span> <span class="Keyword">in</span> <span class="Identifier">items</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">11</span><span class="Punctuation">]</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">addSep</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">,</span> <span class="Identifier">startLen</span> <span class="Operator">=</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="StringLit">"["</span><span class="Punctuation">)</span><span class="Punctuation">)</span>
- <span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">,</span> <span class="Operator">$</span><span class="Identifier">x</span><span class="Punctuation">)</span>
- <span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">arr</span><span class="Punctuation">,</span> <span class="StringLit">"]"</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">arr</span> <span class="Operator">==</span> <span class="StringLit">"[2, 3, 5, 7, 11]"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1809" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1809" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="align-procs-all">
- <div id="align,string,Natural,char">
- <dt><pre><span class="Keyword">func</span> <a href="#align%2Cstring%2CNatural%2Cchar"><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="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">"nsuAlignString"</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> with <tt class="docutils literal"><span class="pre"><span class="Identifier">padding</span></span></tt>, so that it is of length <tt class="docutils literal"><span class="pre"><span class="Identifier">count</span></span></tt>.</p>
- <p><tt class="docutils literal"><span class="pre"><span class="Identifier">padding</span></span></tt> characters (by default spaces) are added before <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> resulting in right alignment. If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">>=</span> <span class="Identifier">count</span></span></tt>, no spaces are added and <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is returned unchanged. If you need to left align a string use the <a class="reference external" href="#alignLeft,string,Natural,char">alignLeft func</a>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#alignLeft,string,Natural,char">alignLeft func</a></li>
- <li><a class="reference external" href="#spaces,Natural">spaces func</a></li>
- <li><a class="reference external" href="#indent,string,Natural,string">indent func</a></li>
- <li><a class="reference external" href="#center,string,int,char">center func</a></li>
- </ul>
- <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="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"##1232"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1381" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1381" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="alignLeft-procs-all">
- <div id="alignLeft,string,Natural,char">
- <dt><pre><span class="Keyword">func</span> <a href="#alignLeft%2Cstring%2CNatural%2Cchar"><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="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>Left-Aligns a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> with <tt class="docutils literal"><span class="pre"><span class="Identifier">padding</span></span></tt>, so that it is of length <tt class="docutils literal"><span class="pre"><span class="Identifier">count</span></span></tt>.</p>
- <p><tt class="docutils literal"><span class="pre"><span class="Identifier">padding</span></span></tt> characters (by default spaces) are added after <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> resulting in left alignment. If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">>=</span> <span class="Identifier">count</span></span></tt>, no spaces are added and <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is returned unchanged. If you need to right align a string use the <a class="reference external" href="#align,string,Natural,char">align func</a>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#align,string,Natural,char">align func</a></li>
- <li><a class="reference external" href="#spaces,Natural">spaces func</a></li>
- <li><a class="reference external" href="#indent,string,Natural,string">indent func</a></li>
- <li><a class="reference external" href="#center,string,int,char">center func</a></li>
- </ul>
- <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="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1232##"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1408" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1408" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="allCharsInSet-procs-all">
- <div id="allCharsInSet,string,set[char]">
- <dt><pre><span class="Keyword">func</span> <a href="#allCharsInSet%2Cstring%2Cset%5Bchar%5D"><span class="Identifier">allCharsInSet</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">theSet</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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><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 every character of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is in the set <tt class="docutils literal"><span class="pre"><span class="Identifier">theSet</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">allCharsInSet</span><span class="Punctuation">(</span><span class="StringLit">"aeea"</span><span class="Punctuation">,</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', '</span><span class="Identifier">e</span><span class="CharLit">'}) == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">allCharsInSet</span><span class="Punctuation">(</span><span class="StringLit">""</span><span class="Punctuation">,</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', '</span><span class="Identifier">e</span><span class="CharLit">'}) == true</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1832" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1832" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="capitalizeAscii-procs-all">
- <div id="capitalizeAscii,string">
- <dt><pre><span class="Keyword">func</span> <a href="#capitalizeAscii%2Cstring"><span class="Identifier">capitalizeAscii</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuCapitalizeAscii"</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 the first character of string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into upper case.</p>
- <p>This works only for the letters <tt class="docutils literal"><span class="pre"><span class="Identifier">A</span><span class="Operator">-</span><span class="Identifier">Z</span></span></tt>. Use <a class="reference external" href="unicode.html">Unicode module</a> for UTF-8 support.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toUpperAscii,char">toUpperAscii func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">capitalizeAscii</span><span class="Punctuation">(</span><span class="StringLit">"foo"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Foo"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">capitalizeAscii</span><span class="Punctuation">(</span><span class="StringLit">"-bar"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"-bar"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L272" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L272" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="center-procs-all">
- <div id="center,string,int,char">
- <dt><pre><span class="Keyword">func</span> <a href="#center%2Cstring%2Cint%2Cchar"><span class="Identifier">center</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">width</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">fillChar</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a> <span class="Other">=</span> <span class="CharLit">' '</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuCenterString"</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>Return the contents of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> centered in a string <tt class="docutils literal"><span class="pre"><span class="Identifier">width</span></span></tt> long using <tt class="docutils literal"><span class="pre"><span class="Identifier">fillChar</span></span></tt> (default: space) as padding.</p>
- <p>The original string is returned if <tt class="docutils literal"><span class="pre"><span class="Identifier">width</span></span></tt> is less than or equal to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">len</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#align,string,Natural,char">align func</a></li>
- <li><a class="reference external" href="#alignLeft,string,Natural,char">alignLeft func</a></li>
- <li><a class="reference external" href="#spaces,Natural">spaces func</a></li>
- <li><a class="reference external" href="#indent,string,Natural,string">indent func</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">"foo"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">center</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"foo"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">center</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" foo "</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">center</span><span class="Punctuation">(</span><span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">" foo "</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1435" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1435" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cmpIgnoreCase-procs-all">
- <div id="cmpIgnoreCase,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#cmpIgnoreCase%2Cstring%2Cstring"><span class="Identifier">cmpIgnoreCase</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><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">"nsuCmpIgnoreCase"</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 strings in a case insensitive manner. 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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">cmpIgnoreCase</span><span class="Punctuation">(</span><span class="StringLit">"FooBar"</span><span class="Punctuation">,</span> <span class="StringLit">"foobar"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">cmpIgnoreCase</span><span class="Punctuation">(</span><span class="StringLit">"bar"</span><span class="Punctuation">,</span> <span class="StringLit">"Foo"</span><span class="Punctuation">)</span> <span class="Operator"><</span> <span class="DecNumber">0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">cmpIgnoreCase</span><span class="Punctuation">(</span><span class="StringLit">"Foo5"</span><span class="Punctuation">,</span> <span class="StringLit">"foo4"</span><span class="Punctuation">)</span> <span class="Operator">></span> <span class="DecNumber">0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L334" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L334" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cmpIgnoreStyle-procs-all">
- <div id="cmpIgnoreStyle,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#cmpIgnoreStyle%2Cstring%2Cstring"><span class="Identifier">cmpIgnoreStyle</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><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">"nsuCmpIgnoreStyle"</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>Semantically the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">cmp</span><span class="Punctuation">(</span><span class="Identifier">normalize</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">normalize</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span><span class="Punctuation">)</span></span></tt>. It is just optimized to not allocate temporary strings. This should NOT be used to compare Nim identifier names. Use <a class="reference external" href="macros.html#eqIdent,string,string">macros.eqIdent</a> for that.</p>
- <p>Returns:</p>
- <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>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">cmpIgnoreStyle</span><span class="Punctuation">(</span><span class="StringLit">"foo_bar"</span><span class="Punctuation">,</span> <span class="StringLit">"FooBar"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">cmpIgnoreStyle</span><span class="Punctuation">(</span><span class="StringLit">"foo_bar_5"</span><span class="Punctuation">,</span> <span class="StringLit">"FooBar4"</span><span class="Punctuation">)</span> <span class="Operator">></span> <span class="DecNumber">0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L349" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L349" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="contains-procs-all">
- <div id="contains,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#contains%2Cstring%2Cstring"><span class="Identifier">contains</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">sub</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><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>Same as <tt class="docutils literal"><span class="pre"><span class="Identifier">find</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Identifier">sub</span><span class="Punctuation">)</span> <span class="Operator">>=</span> <span class="DecNumber">0</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#find,string,string,Natural,int">find func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2182" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2182" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="contains,string,set[char]">
- <dt><pre><span class="Keyword">func</span> <a href="#contains%2Cstring%2Cset%5Bchar%5D"><span class="Identifier">contains</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">chars</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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><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>Same as <tt class="docutils literal"><span class="pre"><span class="Identifier">find</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">,</span> <span class="Identifier">chars</span><span class="Punctuation">)</span> <span class="Operator">>=</span> <span class="DecNumber">0</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#find,string,set[char],Natural,int">find func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2189" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2189" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="continuesWith-procs-all">
- <div id="continuesWith,string,string,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#continuesWith%2Cstring%2Cstring%2CNatural"><span class="Identifier">continuesWith</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">substr</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</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="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">"nsuContinuesWith"</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"><span class="Identifier">s</span></span></tt> continues with <tt class="docutils literal"><span class="pre"><span class="Identifier">substr</span></span></tt> at position <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">substr</span> <span class="Operator">==</span> <span class="StringLit">""</span></span></tt> true is returned.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#startsWith,string,string">startsWith func</a></li>
- <li><a class="reference external" href="#endsWith,string,string">endsWith func</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">"abracadabra"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">continuesWith</span><span class="Punctuation">(</span><span class="StringLit">"ca"</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">continuesWith</span><span class="Punctuation">(</span><span class="StringLit">"ca"</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">continuesWith</span><span class="Punctuation">(</span><span class="StringLit">"dab"</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1678" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1678" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="count-procs-all">
- <div id="count,string,char">
- <dt><pre><span class="Keyword">func</span> <a href="#count%2Cstring%2Cchar"><span class="Identifier">count</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">sub</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuCountChar"</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>Counts the occurrences of the character <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#countLines,string">countLines func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2117" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2117" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="count,string,string,bool">
- <dt><pre><span class="Keyword">func</span> <a href="#count%2Cstring%2Cstring%2Cbool"><span class="Identifier">count</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">sub</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">overlapping</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="Identifier">false</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">"nsuCountString"</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>Counts the occurrences of a substring <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>. Overlapping occurrences of <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> only count when <tt class="docutils literal"><span class="pre"><span class="Identifier">overlapping</span></span></tt> is set to true (default: false).</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#countLines,string">countLines func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2137" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2137" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="count,string,set[char]">
- <dt><pre><span class="Keyword">func</span> <a href="#count%2Cstring%2Cset%5Bchar%5D"><span class="Identifier">count</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">subs</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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">"nsuCountCharSet"</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>Counts the occurrences of the group of character <tt class="docutils literal"><span class="pre"><span class="Identifier">subs</span></span></tt> in the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#countLines,string">countLines func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2126" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2126" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="countLines-procs-all">
- <div id="countLines,string">
- <dt><pre><span class="Keyword">func</span> <a href="#countLines%2Cstring"><span class="Identifier">countLines</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><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">"nsuCountLines"</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 the number of lines in the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">splitLines</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span><span class="Punctuation">)</span></span></tt>, but much more efficient because it doesn't modify the string creating temporary objects. Every <a class="reference external" href="manual.html#lexical-analysis-character-literals">character literal</a> newline combination (CR, LF, CR-LF) is supported.</p>
- <p>In this context, a line is any string separated by a newline combination. A line can be an empty string.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">countLines</span><span class="Punctuation">(</span><span class="StringLit">"First line</span><span class="EscapeSequence">\l</span><span class="StringLit"> and second line."</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/strutils.nim#L2155" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2155" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="dedent-procs-all">
- <div id="dedent,string,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#dedent%2Cstring%2CNatural"><span class="Identifier">dedent</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">indentation</span><span class="Other">(</span><span class="Identifier">s</span><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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuDedent"</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>Unindents each line in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Identifier">count</span></span></tt> amount of <tt class="docutils literal"><span class="pre"><span class="Identifier">padding</span></span></tt>. The only difference between this and the <a class="reference external" href="#unindent,string,Natural,string">unindent func</a> is that this by default only cuts off the amount of indentation that all lines of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> share as opposed to all indentation. It only supports spaces as padding.</p>
- <p><strong>Note:</strong> This does not preserve the new line characters used in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#unindent,string,Natural,string">unindent func</a></li>
- <li><a class="reference external" href="#align,string,Natural,char">align func</a></li>
- <li><a class="reference external" href="#alignLeft,string,Natural,char">alignLeft func</a></li>
- <li><a class="reference external" href="#spaces,Natural">spaces func</a></li>
- <li><a class="reference external" href="#indent,string,Natural,string">indent func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="LongStringLit">"""
- Hello
- There
- """</span><span class="Operator">.</span><span class="Identifier">dedent</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span> <span class="Operator">==</span> <span class="StringLit">"Hello</span><span class="EscapeSequence">\n</span><span class="StringLit"> There</span><span class="EscapeSequence">\n</span><span class="StringLit">"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1541" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1541" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="delete-procs-all">
- <div id="delete,string,int,int">
- <dt><pre><span class="Keyword">func</span> <a href="#delete%2Cstring%2Cint%2Cint"><span class="Identifier">delete</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">first</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><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">"nsuDelete"</span><span class="Other">,</span>
- <span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"use `delete(s, first..last)`"</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>
- <div class="deprecation-message">
- <b>Deprecated:</b> use `delete(s, first..last)`
- </div>
- Deletes in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> the characters at positions <tt class="docutils literal"><span class="pre"><span class="Identifier">first</span> <span class="Operator">..</span> <span class="Identifier">last</span></span></tt> (both ends included).
- <p><strong class="examples_text">Example: cmd: --warning:deprecated:off</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"abracadabra"</span>
- <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"abradabra"</span>
- <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"ara"</span>
- <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">999</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"ar"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1596" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1596" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="delete,string,Slice[int]">
- <dt><pre><span class="Keyword">func</span> <a href="#delete%2Cstring%2CSlice%5Bint%5D"><span class="Identifier">delete</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">slice</span><span class="Other">:</span> <a href="system.html#Slice"><span class="Identifier">Slice</span></a><span class="Other">[</span><a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</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>Deletes the items <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">slice</span><span class="Punctuation">]</span></span></tt>, raising <tt class="docutils literal"><span class="pre"><span class="Identifier">IndexDefect</span></span></tt> if the slice contains elements out of range.</p>
- <p>This operation moves all elements after <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="Identifier">slice</span><span class="Punctuation">]</span></span></tt> in linear time, and is the string analog to <tt class="docutils literal"><span class="pre"><span class="Identifier">sequtils</span><span class="Operator">.</span><span class="Identifier">delete</span></span></tt>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="StringLit">"abcde"</span>
- <span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">IndexDefect</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="FloatNumber">4.</span><span class="Operator">.</span><span class="DecNumber">5</span><span class="Punctuation">)</span>
- <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"abcde"</span>
- <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="FloatNumber">4.</span><span class="Operator">.</span><span class="DecNumber">4</span><span class="Punctuation">)</span>
- <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"abcd"</span>
- <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="FloatNumber">1.</span><span class="Operator">.</span><span class="DecNumber">2</span><span class="Punctuation">)</span>
- <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"ad"</span>
- <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">delete</span><span class="Punctuation">(</span><span class="FloatNumber">1.</span><span class="Operator">.<</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Comment"># empty slice</span>
- <span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"ad"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1566" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1566" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="endsWith-procs-all">
- <div id="endsWith,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#endsWith%2Cstring%2Cstring"><span class="Identifier">endsWith</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">suffix</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><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">"nsuEndsWith"</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"><span class="Identifier">s</span></span></tt> ends with <tt class="docutils literal"><span class="pre"><span class="Identifier">suffix</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">suffix</span> <span class="Operator">==</span> <span class="StringLit">""</span></span></tt> true is returned.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#startsWith,string,string">startsWith func</a></li>
- <li><a class="reference external" href="#continuesWith,string,string,Natural">continuesWith func</a></li>
- <li><a class="reference external" href="#removeSuffix,string,string">removeSuffix func</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">"abracadabra"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">endsWith</span><span class="Punctuation">(</span><span class="StringLit">"abra"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">endsWith</span><span class="Punctuation">(</span><span class="StringLit">"dab"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1662" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1662" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="endsWith,string,char">
- <dt><pre><span class="Keyword">func</span> <a href="#endsWith%2Cstring%2Cchar"><span class="Identifier">endsWith</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">suffix</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</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 true if <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> ends with <tt class="docutils literal"><span class="pre"><span class="Identifier">suffix</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#startsWith,string,char">startsWith func</a></li>
- <li><a class="reference external" href="#continuesWith,string,string,Natural">continuesWith func</a></li>
- <li><a class="reference external" href="#removeSuffix,string,char">removeSuffix func</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">"abracadabra"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">endsWith</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">endsWith</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">') == false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1649" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1649" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="escape-procs-all">
- <div id="escape,string,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#escape%2Cstring%2Cstring%2Cstring"><span class="Identifier">escape</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">prefix</span> <span class="Other">=</span> <span class="StringLit">"\""</span><span class="Other">;</span> <span class="Identifier">suffix</span> <span class="Other">=</span> <span class="StringLit">"\""</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuEscape"</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>
-
- Escapes a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.<div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- The escaping scheme is different from <tt class="docutils literal"><span class="pre"><span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">addEscapedChar</span></span></tt>.</div>
- <ul class="simple"><li>replaces <tt class="docutils literal"><span class="pre"><span class="CharLit">'\0'</span><span class="Operator">..</span><span class="CharLit">'\31'</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="CharLit">'\127'</span><span class="Operator">..</span><span class="CharLit">'\255'</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">xHH</span></span></tt> where <tt class="docutils literal"><span class="pre"><span class="Identifier">HH</span></span></tt> is its hexadecimal value</li>
- <li>replaces <tt class="docutils literal"><span class="pre">\</span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\\</span></span></tt></li>
- <li>replaces <tt class="docutils literal"><span class="pre"><span class="CharLit">'</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="CharLit">'</span></span></tt></li>
- <li>replaces <tt class="docutils literal"><span class="pre"><span class="StringLit">"</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="StringLit">"</span></span></tt></li>
- </ul>
- <p>The resulting string is prefixed with <tt class="docutils literal"><span class="pre"><span class="Identifier">prefix</span></span></tt> and suffixed with <tt class="docutils literal"><span class="pre"><span class="Identifier">suffix</span></span></tt>. Both may be empty strings.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="system.html#addEscapedChar,string,char">addEscapedChar proc</a></li>
- <li><a class="reference external" href="#unescape,string,string,string">unescape func</a> for the opposite operation</li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2369" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2369" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="find-procs-all">
- <div id="find,SkipTable,string,string,Natural,int">
- <dt><pre><span class="Keyword">func</span> <a href="#find%2CSkipTable%2Cstring%2Cstring%2CNatural%2Cint"><span class="Identifier">find</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="strutils.html#SkipTable"><span class="Identifier">SkipTable</span></a><span class="Other">;</span> <span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">sub</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</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="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</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">"nsuFindStrA"</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>Searches for <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> inside range <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span><span class="Operator">..</span><span class="Identifier">last</span></span></tt> using preprocessed table <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is unspecified, it defaults to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">high</span></span></tt> (the last element).</p>
- <p>Searching is case-sensitive. If <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>, -1 is returned.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#initSkipTable,string">initSkipTable func</a></li>
- <li><a class="reference external" href="#initSkipTable,SkipTable,string">initSkipTable func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1919" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1919" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="find,string,string,Natural,int">
- <dt><pre><span class="Keyword">func</span> <a href="#find%2Cstring%2Cstring%2CNatural%2Cint"><span class="Identifier">find</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">sub</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</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="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</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">"nsuFindStr"</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>Searches for <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> inside range <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span><span class="Operator">..</span><span class="Identifier">last</span></span></tt> (both ends included). If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is unspecified or negative, it defaults to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">high</span></span></tt> (the last element).</p>
- <p>Searching is case-sensitive. If <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>, -1 is returned. Otherwise the index returned is relative to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span></span></tt>, not <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. Subtract <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt> from the result for a <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>-origin index.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rfind,string,string,Natural,int">rfind func</a></li>
- <li><a class="reference external" href="#replace,string,string,string">replace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2017" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2017" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="find,string,set[char],Natural,int">
- <dt><pre><span class="Keyword">func</span> <a href="#find%2Cstring%2Cset%5Bchar%5D%2CNatural%2Cint"><span class="Identifier">find</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">chars</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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">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="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</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">"nsuFindCharSet"</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>Searches for <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> inside range <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span><span class="Operator">..</span><span class="Identifier">last</span></span></tt> (both ends included). If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is unspecified or negative, it defaults to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">high</span></span></tt> (the last element).</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> contains none of the characters in <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt>, -1 is returned. Otherwise the index returned is relative to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span></span></tt>, not <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. Subtract <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt> from the result for a <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>-origin index.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rfind,string,set[char],Natural,int">rfind func</a></li>
- <li><a class="reference external" href="#multiReplace,string,varargs[]">multiReplace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1991" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1991" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="find,string,char,Natural,int">
- <dt><pre><span class="Keyword">func</span> <a href="#find%2Cstring%2Cchar%2CNatural%2Cint"><span class="Identifier">find</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">sub</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</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">"nsuFindChar"</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>Searches for <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> inside range <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span><span class="Operator">..</span><span class="Identifier">last</span></span></tt> (both ends included). If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is unspecified or negative, it defaults to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">high</span></span></tt> (the last element).</p>
- <p>Searching is case-sensitive. If <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>, -1 is returned. Otherwise the index returned is relative to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span></span></tt>, not <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. Subtract <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt> from the result for a <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>-origin index.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rfind,string,char,Natural,int">rfind func</a></li>
- <li><a class="reference external" href="#replace,string,char,char">replace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1959" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1959" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="format-procs-all">
- <div id="format,string,varargs[string,]">
- <dt><pre><span class="Keyword">func</span> <a href="#format%2Cstring%2Cvarargs%5Bstring%2C%5D"><span class="Identifier">format</span></a><span class="Other">(</span><span class="Identifier">formatstr</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#varargs"><span class="Identifier">varargs</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Other">`</span><span class="Operator">$</span><span class="Other">`</span><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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuFormatVarargs"</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>This is the same as <tt class="docutils literal"><span class="pre"><span class="Identifier">formatstr</span> <span class="Operator">%</span> <span class="Identifier">a</span></span></tt> (see <a class="reference external" href="#%25,string,openArray[string]">% func</a>) except that it supports auto stringification.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="strformat.html">strformat module</a> for string interpolation and formatting</li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2922" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2922" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="formatBiggestFloat-procs-all">
- <div id="formatBiggestFloat,BiggestFloat,FloatFormatMode,range[],char">
- <dt><pre><span class="Keyword">func</span> <a href="#formatBiggestFloat%2CBiggestFloat%2CFloatFormatMode%2Crange%5B%5D%2Cchar"><span class="Identifier">formatBiggestFloat</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <a href="ctypes.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a><span class="Other">;</span> <span class="Identifier">format</span><span class="Other">:</span> <a href="strutils.html#FloatFormatMode"><span class="Identifier">FloatFormatMode</span></a> <span class="Other">=</span> <span class="Identifier">ffDefault</span><span class="Other">;</span>
- <span class="Identifier">precision</span><span class="Other">:</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">[</span><span class="DecNumber">-1</span> <span class="Operator">..</span> <span class="DecNumber">32</span><span class="Other">]</span> <span class="Other">=</span> <span class="DecNumber">16</span><span class="Other">;</span> <span class="Identifier">decimalSep</span> <span class="Other">=</span> <span class="CharLit">'.'</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsu$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 floating point value <tt class="docutils literal"><span class="pre"><span class="Identifier">f</span></span></tt> to a string.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">format</span> <span class="Operator">==</span> <span class="Identifier">ffDecimal</span></span></tt> then precision is the number of digits to be printed after the decimal point. If <tt class="docutils literal"><span class="pre"><span class="Identifier">format</span> <span class="Operator">==</span> <span class="Identifier">ffScientific</span></span></tt> then precision is the maximum number of significant digits to be printed. <tt class="docutils literal"><span class="pre"><span class="Identifier">precision</span></span></tt>'s default value is the maximum number of meaningful digits after the decimal point for Nim's <tt class="docutils literal"><span class="pre"><span class="Identifier">biggestFloat</span></span></tt> type.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">precision</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span></span></tt>, it tries to format it nicely.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="FloatNumber">123.456</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">formatBiggestFloat</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"123.4560000000000"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">formatBiggestFloat</span><span class="Punctuation">(</span><span class="Identifier">ffDecimal</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"123.4560"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">formatBiggestFloat</span><span class="Punctuation">(</span><span class="Identifier">ffScientific</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1.23e+02"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2470" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2470" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="formatEng-procs-all">
- <div id="formatEng,BiggestFloat,range[],bool,bool,string,char">
- <dt><pre><span class="Keyword">func</span> <a href="#formatEng%2CBiggestFloat%2Crange%5B%5D%2Cbool%2Cbool%2Cstring%2Cchar"><span class="Identifier">formatEng</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <a href="ctypes.html#BiggestFloat"><span class="Identifier">BiggestFloat</span></a><span class="Other">;</span> <span class="Identifier">precision</span><span class="Other">:</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">[</span><span class="DecNumber">0</span> <span class="Operator">..</span> <span class="DecNumber">32</span><span class="Other">]</span> <span class="Other">=</span> <span class="DecNumber">10</span><span class="Other">;</span>
- <span class="Identifier">trim</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">;</span> <span class="Identifier">siPrefix</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">;</span> <span class="Identifier">unit</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span><span class="Other">;</span>
- <span class="Identifier">decimalSep</span> <span class="Other">=</span> <span class="CharLit">'.'</span><span class="Other">;</span> <span class="Identifier">useUnitSpace</span> <span class="Other">=</span> <span class="Identifier">false</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 floating point value <tt class="docutils literal"><span class="pre"><span class="Identifier">f</span></span></tt> to a string using engineering notation.</p>
- <p>Numbers in of the range -1000.0<f<1000.0 will be formatted without an exponent. Numbers outside of this range will be formatted as a significand in the range -1000.0<f<1000.0 and an exponent that will always be an integer multiple of 3, corresponding with the SI prefix scale k, M, G, T etc for numbers with an absolute value greater than 1 and m, μ, n, p etc for numbers with an absolute value less than 1.</p>
- <p>The default configuration (<tt class="docutils literal"><span class="pre"><span class="Identifier">trim</span><span class="Operator">=</span><span class="Identifier">true</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">precision</span><span class="Operator">=</span><span class="DecNumber">10</span></span></tt>) shows the <strong>shortest</strong> form that precisely (up to a maximum of 10 decimal places) displays the value. For example, 4.100000 will be displayed as 4.1 (which is mathematically identical) whereas 4.1000003 will be displayed as 4.1000003.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">trim</span></span></tt> is set to true, trailing zeros will be removed; if false, the number of digits specified by <tt class="docutils literal"><span class="pre"><span class="Identifier">precision</span></span></tt> will always be shown.</p>
- <p><tt class="docutils literal"><span class="pre"><span class="Identifier">precision</span></span></tt> can be used to set the number of digits to be shown after the decimal point or (if <tt class="docutils literal"><span class="pre"><span class="Identifier">trim</span></span></tt> is true) the maximum number of digits to be shown.</p>
- <p><pre class="listing"> <span class="Identifier">formatEng</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="Identifier">trim</span><span class="Operator">=</span><span class="Identifier">false</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"0.00"</span>
- <span class="Identifier">formatEng</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">"0"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="FloatNumber">0.053</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"53e-3"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="DecNumber">52731234</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"52.73e6"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">52731234</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"-52.73e6"</span></pre></p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">siPrefix</span></span></tt> is set to true, the number will be displayed with the SI prefix corresponding to the exponent. For example 4100 will be displayed as "4.1 k" instead of "4.1e3". Note that <tt class="docutils literal"><span class="pre"><span class="Identifier">u</span></span></tt> is used for micro- in place of the greek letter mu (μ) as per ISO 2955. Numbers with an absolute value outside of the range 1e-18<f<1000e18 (1a<f<1000E) will be displayed with an exponent rather than an SI prefix, regardless of whether <tt class="docutils literal"><span class="pre"><span class="Identifier">siPrefix</span></span></tt> is true.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">useUnitSpace</span></span></tt> is true, the provided unit will be appended to the string (with a space as required by the SI standard). This behaviour is slightly different to appending the unit to the result as the location of the space is altered depending on whether there is an exponent.</p>
- <p><pre class="listing"> <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="DecNumber">4100</span><span class="Punctuation">,</span> <span class="Identifier">siPrefix</span><span class="Operator">=</span><span class="Identifier">true</span><span class="Punctuation">,</span> <span class="Identifier">unit</span><span class="Operator">=</span><span class="StringLit">"V"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1 kV"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="FloatNumber">4.1</span><span class="Punctuation">,</span> <span class="Identifier">siPrefix</span><span class="Operator">=</span><span class="Identifier">true</span><span class="Punctuation">,</span> <span class="Identifier">unit</span><span class="Operator">=</span><span class="StringLit">"V"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1 V"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="FloatNumber">4.1</span><span class="Punctuation">,</span> <span class="Identifier">siPrefix</span><span class="Operator">=</span><span class="Identifier">true</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1"</span> <span class="Comment"># Note lack of space</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="DecNumber">4100</span><span class="Punctuation">,</span> <span class="Identifier">siPrefix</span><span class="Operator">=</span><span class="Identifier">true</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1 k"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="FloatNumber">4.1</span><span class="Punctuation">,</span> <span class="Identifier">siPrefix</span><span class="Operator">=</span><span class="Identifier">true</span><span class="Punctuation">,</span> <span class="Identifier">unit</span><span class="Operator">=</span><span class="StringLit">""</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1 "</span> <span class="Comment"># Space with unit=""</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="DecNumber">4100</span><span class="Punctuation">,</span> <span class="Identifier">siPrefix</span><span class="Operator">=</span><span class="Identifier">true</span><span class="Punctuation">,</span> <span class="Identifier">unit</span><span class="Operator">=</span><span class="StringLit">""</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1 k"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="DecNumber">4100</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1e3"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="DecNumber">4100</span><span class="Punctuation">,</span> <span class="Identifier">unit</span><span class="Operator">=</span><span class="StringLit">"V"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1e3 V"</span>
- <span class="Identifier">formatEng</span><span class="Punctuation">(</span><span class="DecNumber">4100</span><span class="Punctuation">,</span> <span class="Identifier">unit</span><span class="Operator">=</span><span class="StringLit">""</span><span class="Punctuation">,</span> <span class="Identifier">useUnitSpace</span><span class="Operator">=</span><span class="Identifier">true</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4.1e3 "</span> <span class="Comment"># Space with useUnitSpace=true</span></pre></p>
- <p><tt class="docutils literal"><span class="pre"><span class="Identifier">decimalSep</span></span></tt> is used as the decimal separator.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="strformat.html">strformat module</a> for string interpolation and formatting</li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2648" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2648" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="formatFloat-procs-all">
- <div id="formatFloat,float,FloatFormatMode,range[],char">
- <dt><pre><span class="Keyword">func</span> <a href="#formatFloat%2Cfloat%2CFloatFormatMode%2Crange%5B%5D%2Cchar"><span class="Identifier">formatFloat</span></a><span class="Other">(</span><span class="Identifier">f</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">;</span> <span class="Identifier">format</span><span class="Other">:</span> <a href="strutils.html#FloatFormatMode"><span class="Identifier">FloatFormatMode</span></a> <span class="Other">=</span> <span class="Identifier">ffDefault</span><span class="Other">;</span>
- <span class="Identifier">precision</span><span class="Other">:</span> <a href="system.html#range"><span class="Identifier">range</span></a><span class="Other">[</span><span class="DecNumber">-1</span> <span class="Operator">..</span> <span class="DecNumber">32</span><span class="Other">]</span> <span class="Other">=</span> <span class="DecNumber">16</span><span class="Other">;</span> <span class="Identifier">decimalSep</span> <span class="Other">=</span> <span class="CharLit">'.'</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsu$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 floating point value <tt class="docutils literal"><span class="pre"><span class="Identifier">f</span></span></tt> to a string.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">format</span> <span class="Operator">==</span> <span class="Identifier">ffDecimal</span></span></tt> then precision is the number of digits to be printed after the decimal point. If <tt class="docutils literal"><span class="pre"><span class="Identifier">format</span> <span class="Operator">==</span> <span class="Identifier">ffScientific</span></span></tt> then precision is the maximum number of significant digits to be printed. <tt class="docutils literal"><span class="pre"><span class="Identifier">precision</span></span></tt>'s default value is the maximum number of meaningful digits after the decimal point for Nim's <tt class="docutils literal"><span class="pre"><span class="Identifier">float</span></span></tt> type.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">precision</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span></span></tt>, it tries to format it nicely.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="FloatNumber">123.456</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">formatFloat</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"123.4560000000000"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">formatFloat</span><span class="Punctuation">(</span><span class="Identifier">ffDecimal</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"123.4560"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">formatFloat</span><span class="Punctuation">(</span><span class="Identifier">ffScientific</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1.23e+02"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2546" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2546" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="formatSize-procs-all">
- <div id="formatSize,int64,char">
- <dt><pre><span class="Keyword">func</span> <a href="#formatSize%2Cint64%2Cchar"><span class="Identifier">formatSize</span></a><span class="Other">(</span><span class="Identifier">bytes</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</span></a><span class="Other">;</span> <span class="Identifier">decimalSep</span> <span class="Other">=</span> <span class="CharLit">'.'</span><span class="Other">;</span> <span class="Identifier">prefix</span> <span class="Other">=</span> <span class="Identifier">bpIEC</span><span class="Other">;</span>
- <span class="Identifier">includeSpace</span> <span class="Other">=</span> <span class="Identifier">false</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>Rounds and formats <tt class="docutils literal"><span class="pre"><span class="Identifier">bytes</span></span></tt>.</p>
- <p>By default, uses the IEC/ISO standard binary prefixes, so 1024 will be formatted as 1KiB. Set prefix to <tt class="docutils literal"><span class="pre"><span class="Identifier">bpColloquial</span></span></tt> to use the colloquial names from the SI standard (e.g. k for 1000 being reused as 1024).</p>
- <p><tt class="docutils literal"><span class="pre"><span class="Identifier">includeSpace</span></span></tt> can be set to true to include the (SI preferred) space between the number and the unit (e.g. 1 KiB).</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="strformat.html">strformat module</a> for string interpolation and formatting</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">formatSize</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="DecNumber">1'i64</span> <span class="Keyword">shl</span> <span class="DecNumber">31</span><span class="Punctuation">)</span> <span class="Operator">+</span> <span class="Punctuation">(</span><span class="DecNumber">300'i64</span> <span class="Keyword">shl</span> <span class="DecNumber">20</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"2.293GiB"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">formatSize</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="FloatNumber">2.234</span><span class="Operator">*</span><span class="DecNumber">1024</span><span class="Operator">*</span><span class="DecNumber">1024</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"2.234MiB"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">formatSize</span><span class="Punctuation">(</span><span class="DecNumber">4096</span><span class="Punctuation">,</span> <span class="Identifier">includeSpace</span> <span class="Operator">=</span> <span class="Identifier">true</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4 KiB"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">formatSize</span><span class="Punctuation">(</span><span class="DecNumber">4096</span><span class="Punctuation">,</span> <span class="Identifier">prefix</span> <span class="Operator">=</span> <span class="Identifier">bpColloquial</span><span class="Punctuation">,</span> <span class="Identifier">includeSpace</span> <span class="Operator">=</span> <span class="Identifier">true</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4 kB"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">formatSize</span><span class="Punctuation">(</span><span class="DecNumber">4096</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"4KiB"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">formatSize</span><span class="Punctuation">(</span><span class="DecNumber">5_378_934</span><span class="Punctuation">,</span> <span class="Identifier">prefix</span> <span class="Operator">=</span> <span class="Identifier">bpColloquial</span><span class="Punctuation">,</span> <span class="Identifier">decimalSep</span> <span class="Operator">=</span> <span class="CharLit">','</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"5,13MB"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2592" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2592" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="fromBin-procs-all">
- <div id="fromBin,string">
- <dt><pre><span class="Keyword">func</span> <a href="#fromBin%2Cstring"><span class="Identifier">fromBin</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><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> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Parses a binary integer value from a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid binary integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> can have one of the following optional prefixes: <tt class="docutils literal"><span class="pre"><span class="BinNumber">0b</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="BinNumber">0B</span></span></tt>. Underscores within <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> are ignored.</p>
- <p>Does not check for overflow. If the value represented by <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is too big to fit into a return type, only the value of the rightmost binary digits of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is returned without producing an error.</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">"0b_0100_1000_1000_1000_1110_1110_1001_1001"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromBin</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1216933529</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromBin</span><span class="Punctuation">[</span><span class="Identifier">int8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="BinNumber">0b1001_1001'i8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromBin</span><span class="Punctuation">[</span><span class="Identifier">int8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">103'i8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromBin</span><span class="Punctuation">[</span><span class="Identifier">uint8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">153</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">fromBin</span><span class="Punctuation">[</span><span class="Punctuation">:</span><span class="Identifier">int16</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="BinNumber">0b1110_1110_1001_1001'i16</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">fromBin</span><span class="Punctuation">[</span><span class="Punctuation">:</span><span class="Identifier">uint64</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="DecNumber">1216933529'</span><span class="Identifier">u64</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1066" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1066" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="fromHex-procs-all">
- <div id="fromHex,string">
- <dt><pre><span class="Keyword">func</span> <a href="#fromHex%2Cstring"><span class="Identifier">fromHex</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><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> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Parses a hex integer value from a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid hex integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> can have one of the following optional prefixes: <tt class="docutils literal"><span class="pre"><span class="HexNumber">0x</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="HexNumber">0X</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Comment">#</span></span></tt>. Underscores within <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> are ignored.</p>
- <p>Does not check for overflow. If the value represented by <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is too big to fit into a return type, only the value of the rightmost hex digits of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is returned without producing an error.</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">"0x_1235_8df6"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromHex</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">305499638</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromHex</span><span class="Punctuation">[</span><span class="Identifier">int8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="HexNumber">0xf6'i8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromHex</span><span class="Punctuation">[</span><span class="Identifier">int8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">10'i8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromHex</span><span class="Punctuation">[</span><span class="Identifier">uint8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">246'</span><span class="Identifier">u8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">fromHex</span><span class="Punctuation">[</span><span class="Punctuation">:</span><span class="Identifier">int16</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">29194'i16</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">fromHex</span><span class="Punctuation">[</span><span class="Punctuation">:</span><span class="Identifier">uint64</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="DecNumber">305499638'</span><span class="Identifier">u64</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1112" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1112" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="fromOct-procs-all">
- <div id="fromOct,string">
- <dt><pre><span class="Keyword">func</span> <a href="#fromOct%2Cstring"><span class="Identifier">fromOct</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><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> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Parses an octal integer value from a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid octal integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> can have one of the following optional prefixes: <tt class="docutils literal"><span class="pre"><span class="OctNumber">0o</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="OctNumber">0O</span></span></tt>. Underscores within <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> are ignored.</p>
- <p>Does not check for overflow. If the value represented by <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is too big to fit into a return type, only the value of the rightmost octal digits of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is returned without producing an error.</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">"0o_123_456_777"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromOct</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">21913087</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromOct</span><span class="Punctuation">[</span><span class="Identifier">int8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="OctNumber">0o377'i8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromOct</span><span class="Punctuation">[</span><span class="Identifier">int8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1'i8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fromOct</span><span class="Punctuation">[</span><span class="Identifier">uint8</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Identifier">s</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">255'</span><span class="Identifier">u8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">fromOct</span><span class="Punctuation">[</span><span class="Punctuation">:</span><span class="Identifier">int16</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="DecNumber">24063'i16</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">fromOct</span><span class="Punctuation">[</span><span class="Punctuation">:</span><span class="Identifier">uint64</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="DecNumber">21913087'</span><span class="Identifier">u64</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1089" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1089" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="indent-procs-all">
- <div id="indent,string,Natural,string">
- <dt><pre><span class="Keyword">func</span> <a href="#indent%2Cstring%2CNatural%2Cstring"><span class="Identifier">indent</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> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">" "</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuIndent"</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>Indents each line in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Identifier">count</span></span></tt> amount of <tt class="docutils literal"><span class="pre"><span class="Identifier">padding</span></span></tt>.</p>
- <p><strong>Note:</strong> This does not preserve the new line characters used in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#align,string,Natural,char">align func</a></li>
- <li><a class="reference external" href="#alignLeft,string,Natural,char">alignLeft func</a></li>
- <li><a class="reference external" href="#spaces,Natural">spaces func</a></li>
- <li><a class="reference external" href="#unindent,string,Natural,string">unindent func</a></li>
- <li><a class="reference external" href="#dedent,string,Natural">dedent func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">indent</span><span class="Punctuation">(</span><span class="StringLit">"First line</span><span class="EscapeSequence">\c</span><span class="EscapeSequence">\l</span><span class="StringLit"> and second line."</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span>
- <span class="StringLit">" First line</span><span class="EscapeSequence">\l</span><span class="StringLit"> and second line."</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1470" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1470" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="indentation-procs-all">
- <div id="indentation,string">
- <dt><pre><span class="Keyword">func</span> <a href="#indentation%2Cstring"><span class="Identifier">indentation</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#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>
-
- Returns the amount of indentation all lines of <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> have in common, ignoring lines that consist only of whitespace.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1528" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1528" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="initSkipTable-procs-all">
- <div id="initSkipTable,SkipTable,string">
- <dt><pre><span class="Keyword">func</span> <a href="#initSkipTable%2CSkipTable%2Cstring"><span class="Identifier">initSkipTable</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="strutils.html#SkipTable"><span class="Identifier">SkipTable</span></a><span class="Other">;</span> <span class="Identifier">sub</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><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">"nsuInitSkipTable"</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>Initializes table <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> for efficient search of substring <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#initSkipTable,string">initSkipTable func</a></li>
- <li><a class="reference external" href="#find,SkipTable,string,string,Natural,int">find func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1896" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1896" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="initSkipTable,string">
- <dt><pre><span class="Keyword">func</span> <a href="#initSkipTable%2Cstring"><span class="Identifier">initSkipTable</span></a><span class="Other">(</span><span class="Identifier">sub</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="strutils.html#SkipTable"><span class="Identifier">SkipTable</span></a> {.<span class="Identifier">noinit</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">"nsuInitNewSkipTable"</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 new table initialized for <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#initSkipTable,SkipTable,string">initSkipTable func</a></li>
- <li><a class="reference external" href="#find,SkipTable,string,string,Natural,int">find func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1910" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1910" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="insertSep-procs-all">
- <div id="insertSep,string,char,int">
- <dt><pre><span class="Keyword">func</span> <a href="#insertSep%2Cstring%2Cchar%2Cint"><span class="Identifier">insertSep</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> <span class="CharLit">'_'</span><span class="Other">;</span> <span class="Identifier">digits</span> <span class="Other">=</span> <span class="DecNumber">3</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuInsertSep"</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>Inserts the separator <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt> after <tt class="docutils literal"><span class="pre"><span class="Identifier">digits</span></span></tt> characters (default: 3) from right to left.</p>
- <p>Even though the algorithm works with any string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>, it is only useful if <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> contains a number.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">insertSep</span><span class="Punctuation">(</span><span class="StringLit">"1000000"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1_000_000"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2335" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2335" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="intToStr-procs-all">
- <div id="intToStr,int,Positive">
- <dt><pre><span class="Keyword">func</span> <a href="#intToStr%2Cint%2CPositive"><span class="Identifier">intToStr</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">minchars</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuIntToStr"</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"><span class="Identifier">x</span></span></tt> to its decimal representation.</p>
- <p>The resulting string will be minimally <tt class="docutils literal"><span class="pre"><span class="Identifier">minchars</span></span></tt> characters long. This is achieved by adding leading zeros.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">intToStr</span><span class="Punctuation">(</span><span class="DecNumber">1984</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1984"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">intToStr</span><span class="Punctuation">(</span><span class="DecNumber">1984</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"001984"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1135" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1135" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isAlphaAscii-procs-all">
- <div id="isAlphaAscii,char">
- <dt><pre><span class="Keyword">func</span> <a href="#isAlphaAscii%2Cchar"><span class="Identifier">isAlphaAscii</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuIsAlphaAsciiChar"</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>Checks whether or not character <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> is alphabetical.</p>
- <p>This checks a-z, A-Z ASCII characters only. Use <a class="reference external" href="unicode.html">Unicode module</a> for UTF-8 support.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">isAlphaAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isAlphaAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">E</span><span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isAlphaAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="DecNumber">8'</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L138" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L138" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isAlphaNumeric-procs-all">
- <div id="isAlphaNumeric,char">
- <dt><pre><span class="Keyword">func</span> <a href="#isAlphaNumeric%2Cchar"><span class="Identifier">isAlphaNumeric</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuIsAlphaNumericChar"</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>Checks whether or not <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> is alphanumeric.</p>
- <p>This checks a-z, A-Z, 0-9 ASCII characters only.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">isAlphaNumeric</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">n</span><span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isAlphaNumeric</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="DecNumber">8'</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isAlphaNumeric</span><span class="Punctuation">(</span><span class="Punctuation">'</span> <span class="CharLit">') == false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L149" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L149" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isDigit-procs-all">
- <div id="isDigit,char">
- <dt><pre><span class="Keyword">func</span> <a href="#isDigit%2Cchar"><span class="Identifier">isDigit</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuIsDigitChar"</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>Checks whether or not <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> is a number.</p>
- <p>This checks 0-9 ASCII characters only.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">isDigit</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">n</span><span class="CharLit">') == false</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isDigit</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="DecNumber">8'</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L159" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L159" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isEmptyOrWhitespace-procs-all">
- <div id="isEmptyOrWhitespace,string">
- <dt><pre><span class="Keyword">func</span> <a href="#isEmptyOrWhitespace%2Cstring"><span class="Identifier">isEmptyOrWhitespace</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><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">"nsuIsEmptyOrWhitespace"</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>
-
- Checks if <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is empty or consists entirely of whitespace characters.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L3032" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L3032" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isLowerAscii-procs-all">
- <div id="isLowerAscii,char">
- <dt><pre><span class="Keyword">func</span> <a href="#isLowerAscii%2Cchar"><span class="Identifier">isLowerAscii</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuIsLowerAsciiChar"</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>Checks whether or not <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> is a lower case character.</p>
- <p>This checks ASCII characters only. Use <a class="reference external" href="unicode.html">Unicode module</a> for UTF-8 support.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toLowerAscii,char">toLowerAscii func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">isLowerAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isLowerAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">E</span><span class="CharLit">') == false</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isLowerAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="DecNumber">7'</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L176" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L176" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isSpaceAscii-procs-all">
- <div id="isSpaceAscii,char">
- <dt><pre><span class="Keyword">func</span> <a href="#isSpaceAscii%2Cchar"><span class="Identifier">isSpaceAscii</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuIsSpaceAsciiChar"</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>
-
- Checks whether or not <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> is a whitespace character.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">isSpaceAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">n</span><span class="CharLit">') == false</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isSpaceAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span> <span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isSpaceAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Operator">\</span><span class="Identifier">t</span><span class="CharLit">') == true</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L168" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L168" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isUpperAscii-procs-all">
- <div id="isUpperAscii,char">
- <dt><pre><span class="Keyword">func</span> <a href="#isUpperAscii%2Cchar"><span class="Identifier">isUpperAscii</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuIsUpperAsciiChar"</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>Checks whether or not <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> is an upper case character.</p>
- <p>This checks ASCII characters only. Use <a class="reference external" href="unicode.html">Unicode module</a> for UTF-8 support.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toUpperAscii,char">toUpperAscii func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">isUpperAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">') == false</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isUpperAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">E</span><span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">isUpperAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="DecNumber">7'</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L190" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L190" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="join-procs-all">
- <div id="join,openArray[string],string">
- <dt><pre><span class="Keyword">func</span> <a href="#join%2CopenArray%5Bstring%5D%2Cstring"><span class="Identifier">join</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">sep</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuJoinSep"</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>
-
- Concatenates all strings in the container <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>, separating them with <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">join</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="StringLit">"A"</span><span class="Punctuation">,</span> <span class="StringLit">"B"</span><span class="Punctuation">,</span> <span class="StringLit">"Conclusion"</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="StringLit">" -> "</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"A -> B -> Conclusion"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1864" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1864" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="join,openArray[T],string">
- <dt><pre><span class="Keyword">proc</span> <a href="#join%2CopenArray%5BT%5D%2Cstring"><span class="Identifier">join</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">not</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">a</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">sep</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">""</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
- <dd>
-
- Converts all elements in the container <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> to strings using <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt>, and concatenates them with <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">join</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="StringLit">" -> "</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1 -> 2 -> 3"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1881" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1881" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="multiReplace-procs-all">
- <div id="multiReplace,string,varargs[]">
- <dt><pre><span class="Keyword">func</span> <a href="#multiReplace%2Cstring%2Cvarargs%5B%5D"><span class="Identifier">multiReplace</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> <a href="system.html#varargs"><span class="Identifier">varargs</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> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">)</span><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>Same as <a class="reference external" href="#replace,string,string,string">replace</a>, but specialized for doing multiple replacements in a single pass through the input string.</p>
- <p><tt class="docutils literal"><span class="pre"><span class="Identifier">multiReplace</span></span></tt> scans the input string from left to right and replaces the matching substrings in the same order as passed in the argument list.</p>
- <p>The implications of the order of scanning the string and matching the replacements:</p>
- <ul class="simple"><li>In case of multiple matches at a given position, the earliest replacement is applied.</li>
- <li>Overlaps are not handled. After performing a replacement, the scan continues from the character after the matched substring. If the resulting string then contains a possible match starting in a newly placed substring, the additional replacement is not performed.</li>
- </ul>
- <p>If the resulting string is not longer than the original input string, only a single memory allocation is required. </p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Comment"># Swapping occurrences of 'a' and 'b':</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">multireplace</span><span class="Punctuation">(</span><span class="StringLit">"abba"</span><span class="Punctuation">,</span> <span class="Punctuation">[</span><span class="Punctuation">(</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="StringLit">"b"</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Punctuation">(</span><span class="StringLit">"b"</span><span class="Punctuation">,</span> <span class="StringLit">"a"</span><span class="Punctuation">)</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"baab"</span>
- <span class="Comment"># The second replacement ("ab") is matched and performed first, the scan then</span>
- <span class="Comment"># continues from 'c', so the "bc" replacement is never matched and thus skipped.</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">multireplace</span><span class="Punctuation">(</span><span class="StringLit">"abc"</span><span class="Punctuation">,</span> <span class="Punctuation">[</span><span class="Punctuation">(</span><span class="StringLit">"bc"</span><span class="Punctuation">,</span> <span class="StringLit">"x"</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Punctuation">(</span><span class="StringLit">"ab"</span><span class="Punctuation">,</span> <span class="StringLit">"_b"</span><span class="Punctuation">)</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"_bc"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2286" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2286" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="nimIdentNormalize-procs-all">
- <div id="nimIdentNormalize,string">
- <dt><pre><span class="Keyword">func</span> <a href="#nimIdentNormalize%2Cstring"><span class="Identifier">nimIdentNormalize</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>Normalizes the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> as a Nim identifier.</p>
- <p>That means to convert to lower case and remove any '_' on all characters except first one.</p>
- <div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
- Backticks (`) are not handled: they remain <em>as is</em> and spaces are preserved. See <a class="reference external" href="dochelpers.html#nimIdentBackticksNormalize,string">nimIdentBackticksNormalize</a> for an alternative approach.</div>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">nimIdentNormalize</span><span class="Punctuation">(</span><span class="StringLit">"Foo_bar"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"Foobar"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L286" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L286" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="normalize-procs-all">
- <div id="normalize,string">
- <dt><pre><span class="Keyword">func</span> <a href="#normalize%2Cstring"><span class="Identifier">normalize</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuNormalize"</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>Normalizes the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>That means to convert it to lower case and remove any '_'. This should NOT be used to normalize Nim identifier names.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toLowerAscii,string">toLowerAscii func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">normalize</span><span class="Punctuation">(</span><span class="StringLit">"Foo_bar"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"foobar"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">normalize</span><span class="Punctuation">(</span><span class="StringLit">"Foo Bar"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"foo bar"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L312" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L312" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseBiggestInt-procs-all">
- <div id="parseBiggestInt,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseBiggestInt%2Cstring"><span class="Identifier">parseBiggestInt</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="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</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">"nsuParseBiggestInt"</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a decimal integer value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1161" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1161" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseBiggestUInt-procs-all">
- <div id="parseBiggestUInt,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseBiggestUInt%2Cstring"><span class="Identifier">parseBiggestUInt</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="ctypes.html#BiggestUInt"><span class="Identifier">BiggestUInt</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">"nsuParseBiggestUInt"</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a decimal unsigned integer value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1180" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1180" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseBinInt-procs-all">
- <div id="parseBinInt,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseBinInt%2Cstring"><span class="Identifier">parseBinInt</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><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">"nsuParseBinInt"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a binary integer value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid binary integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> can have one of the following optional prefixes: <tt class="docutils literal"><span class="pre"><span class="BinNumber">0b</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="BinNumber">0B</span></span></tt>. Underscores within <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> are ignored.</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">"0b11_0101"</span>
- <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">"111"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">parseBinInt</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">53</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">parseBinInt</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">7</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1203" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1203" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseBool-procs-all">
- <div id="parseBool,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseBool%2Cstring"><span class="Identifier">parseBool</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><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a value into a <tt class="docutils literal"><span class="pre"><span class="Identifier">bool</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is one of the following values: <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span><span class="Punctuation">,</span> <span class="Identifier">yes</span><span class="Punctuation">,</span> <span class="Identifier">true</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="Identifier">on</span></span></tt>, then returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is one of the following values: <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span><span class="Punctuation">,</span> <span class="Identifier">no</span><span class="Punctuation">,</span> <span class="Identifier">false</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="Identifier">off</span></span></tt>, then returns <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is something else a <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> exception is raised.</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">"n"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseBool</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1289" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1289" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseEnum-procs-all">
- <div id="parseEnum,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseEnum%2Cstring"><span class="Identifier">parseEnum</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">enum</span><span class="Other">]</span><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> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Parses an enum <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>. This errors at compile time, if the given enum type contains multiple fields with the same string value.</p>
- <p>Raises <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> for an invalid value in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>. The comparison is done in a style insensitive way (first letter is still case-sensitive).</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">type</span>
- <span class="Identifier">MyEnum</span> <span class="Operator">=</span> <span class="Keyword">enum</span>
- <span class="Identifier">first</span> <span class="Operator">=</span> <span class="StringLit">"1st"</span><span class="Punctuation">,</span>
- <span class="Identifier">second</span><span class="Punctuation">,</span>
- <span class="Identifier">third</span> <span class="Operator">=</span> <span class="StringLit">"3rd"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseEnum</span><span class="Punctuation">[</span><span class="Identifier">MyEnum</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="StringLit">"1_st"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">first</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseEnum</span><span class="Punctuation">[</span><span class="Identifier">MyEnum</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="StringLit">"second"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">second</span>
- <span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">ValueError</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">echo</span> <span class="Identifier">parseEnum</span><span class="Punctuation">[</span><span class="Identifier">MyEnum</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="StringLit">"third"</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1305" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1305" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="parseEnum,string,T">
- <dt><pre><span class="Keyword">func</span> <a href="#parseEnum%2Cstring%2CT"><span class="Identifier">parseEnum</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Keyword">enum</span><span class="Other">]</span><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">default</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Parses an enum <tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>. This errors at compile time, if the given enum type contains multiple fields with the same string value.</p>
- <p>Uses <tt class="docutils literal"><span class="pre"><span class="Identifier">default</span></span></tt> for an invalid value in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>. The comparison is done in a style insensitive way (first letter is still case-sensitive).</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">type</span>
- <span class="Identifier">MyEnum</span> <span class="Operator">=</span> <span class="Keyword">enum</span>
- <span class="Identifier">first</span> <span class="Operator">=</span> <span class="StringLit">"1st"</span><span class="Punctuation">,</span>
- <span class="Identifier">second</span><span class="Punctuation">,</span>
- <span class="Identifier">third</span> <span class="Operator">=</span> <span class="StringLit">"3rd"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseEnum</span><span class="Punctuation">[</span><span class="Identifier">MyEnum</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="StringLit">"1_st"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">first</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseEnum</span><span class="Punctuation">[</span><span class="Identifier">MyEnum</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="StringLit">"second"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">second</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseEnum</span><span class="Punctuation">[</span><span class="Identifier">MyEnum</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="StringLit">"last"</span><span class="Punctuation">,</span> <span class="Identifier">third</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">third</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1325" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1325" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseFloat-procs-all">
- <div id="parseFloat,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseFloat%2Cstring"><span class="Identifier">parseFloat</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#float"><span class="Identifier">float</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">"nsuParseFloat"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a decimal floating point value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid floating point number, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. <tt class="docutils literal"><span class="pre"><span class="Identifier">NAN</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">INF</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Operator">-</span><span class="Identifier">INF</span></span></tt> are also supported (case insensitive comparison).</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">parseFloat</span><span class="Punctuation">(</span><span class="StringLit">"3.14"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.14</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseFloat</span><span class="Punctuation">(</span><span class="StringLit">"inf"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">1.0</span><span class="Operator">/</span><span class="DecNumber">0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1190" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1190" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseHexInt-procs-all">
- <div id="parseHexInt,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseHexInt%2Cstring"><span class="Identifier">parseHexInt</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><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">"nsuParseHexInt"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a hexadecimal integer value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid hex integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> can have one of the following optional prefixes: <tt class="docutils literal"><span class="pre"><span class="HexNumber">0x</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="HexNumber">0X</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Comment">#</span></span></tt>. Underscores within <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> are ignored.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1232" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1232" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseHexStr-procs-all">
- <div id="parseHexStr,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseHexStr%2Cstring"><span class="Identifier">parseHexStr</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuParseHexStr"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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 hex-encoded string to byte string, e.g.:</p>
- <p>Raises <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> for an invalid hex values. The comparison is case-insensitive.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#toHex,string">toHex func</a> for the 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="StringLit">"41"</span>
- <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">"3161"</span>
- <span class="Identifier">c</span> <span class="Operator">=</span> <span class="StringLit">"00ff"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseHexStr</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"A"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseHexStr</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1a"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">parseHexStr</span><span class="Punctuation">(</span><span class="Identifier">c</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"</span><span class="EscapeSequence">\0</span><span class="EscapeSequence">\255</span><span class="StringLit">"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1258" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1258" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseInt-procs-all">
- <div id="parseInt,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseInt%2Cstring"><span class="Identifier">parseInt</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><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">"nsuParseInt"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a decimal integer value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">parseInt</span><span class="Punctuation">(</span><span class="StringLit">"-0042"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">42</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1150" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1150" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseOctInt-procs-all">
- <div id="parseOctInt,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseOctInt%2Cstring"><span class="Identifier">parseOctInt</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><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">"nsuParseOctInt"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses an octal integer value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid oct integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised. <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> can have one of the following optional prefixes: <tt class="docutils literal"><span class="pre"><span class="OctNumber">0o</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="OctNumber">0O</span></span></tt>. Underscores within <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> are ignored.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1221" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1221" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="parseUInt-procs-all">
- <div id="parseUInt,string">
- <dt><pre><span class="Keyword">func</span> <a href="#parseUInt%2Cstring"><span class="Identifier">parseUInt</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#uint"><span class="Identifier">uint</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">"nsuParseUInt"</span><span class="Other">,</span>
- <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Parses a decimal unsigned integer value contained in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> is not a valid integer, <tt class="docutils literal"><span class="pre"><span class="Identifier">ValueError</span></span></tt> is raised.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1171" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1171" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="removePrefix-procs-all">
- <div id="removePrefix,string,char">
- <dt><pre><span class="Keyword">func</span> <a href="#removePrefix%2Cstring%2Cchar"><span class="Identifier">removePrefix</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="system.html#char"><span class="Identifier">char</span></a><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">"nsuRemovePrefixChar"</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>Removes all occurrences of a single character (in-place) from the start of a string.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#removeSuffix,string,char">removeSuffix func</a></li>
- <li><a class="reference external" href="#startsWith,string,char">startsWith func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">ident</span> <span class="Operator">=</span> <span class="StringLit">"pControl"</span>
- <span class="Identifier">ident</span><span class="Operator">.</span><span class="Identifier">removePrefix</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">p</span><span class="CharLit">')</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">ident</span> <span class="Operator">==</span> <span class="StringLit">"Control"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1722" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1722" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="removePrefix,string,set[char]">
- <dt><pre><span class="Keyword">func</span> <a href="#removePrefix%2Cstring%2Cset%5Bchar%5D"><span class="Identifier">removePrefix</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">chars</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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">Newlines</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">"nsuRemovePrefixCharSet"</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>Removes all characters from <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt> from the start of the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> (in-place).</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#removeSuffix,string,set[char]">removeSuffix func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">userInput</span> <span class="Operator">=</span> <span class="StringLit">"</span><span class="EscapeSequence">\r</span><span class="EscapeSequence">\n</span><span class="StringLit">*~Hello World!"</span>
- <span class="Identifier">userInput</span><span class="Operator">.</span><span class="Identifier">removePrefix</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">userInput</span> <span class="Operator">==</span> <span class="StringLit">"*~Hello World!"</span>
- <span class="Identifier">userInput</span><span class="Operator">.</span><span class="Identifier">removePrefix</span><span class="Punctuation">(</span><span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Operator">~</span><span class="CharLit">', '</span><span class="Operator">*</span><span class="CharLit">'})</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">userInput</span> <span class="Operator">==</span> <span class="StringLit">"Hello World!"</span>
- <span class="Keyword">var</span> <span class="Identifier">otherInput</span> <span class="Operator">=</span> <span class="StringLit">"?!?Hello!?!"</span>
- <span class="Identifier">otherInput</span><span class="Operator">.</span><span class="Identifier">removePrefix</span><span class="Punctuation">(</span><span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Operator">!</span><span class="CharLit">', '</span><span class="Operator">?</span><span class="CharLit">'})</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">otherInput</span> <span class="Operator">==</span> <span class="StringLit">"Hello!?!"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1700" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1700" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="removePrefix,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#removePrefix%2Cstring%2Cstring"><span class="Identifier">removePrefix</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">prefix</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><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">"nsuRemovePrefixString"</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>Remove the first matching prefix (in-place) from a string.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#removeSuffix,string,string">removeSuffix func</a></li>
- <li><a class="reference external" href="#startsWith,string,string">startsWith func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">answers</span> <span class="Operator">=</span> <span class="StringLit">"yesyes"</span>
- <span class="Identifier">answers</span><span class="Operator">.</span><span class="Identifier">removePrefix</span><span class="Punctuation">(</span><span class="StringLit">"yes"</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">answers</span> <span class="Operator">==</span> <span class="StringLit">"yes"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1736" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1736" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="removeSuffix-procs-all">
- <div id="removeSuffix,string,char">
- <dt><pre><span class="Keyword">func</span> <a href="#removeSuffix%2Cstring%2Cchar"><span class="Identifier">removeSuffix</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="system.html#char"><span class="Identifier">char</span></a><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">"nsuRemoveSuffixChar"</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>Removes all occurrences of a single character (in-place) from the end of a string.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#removePrefix,string,char">removePrefix func</a></li>
- <li><a class="reference external" href="#endsWith,string,char">endsWith func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">table</span> <span class="Operator">=</span> <span class="StringLit">"users"</span>
- <span class="Identifier">table</span><span class="Operator">.</span><span class="Identifier">removeSuffix</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">s</span><span class="CharLit">')</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">table</span> <span class="Operator">==</span> <span class="StringLit">"user"</span>
- <span class="Keyword">var</span> <span class="Identifier">dots</span> <span class="Operator">=</span> <span class="StringLit">"Trailing dots......."</span>
- <span class="Identifier">dots</span><span class="Operator">.</span><span class="Identifier">removeSuffix</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Operator">.</span><span class="CharLit">')</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">dots</span> <span class="Operator">==</span> <span class="StringLit">"Trailing dots"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1773" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1773" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="removeSuffix,string,set[char]">
- <dt><pre><span class="Keyword">func</span> <a href="#removeSuffix%2Cstring%2Cset%5Bchar%5D"><span class="Identifier">removeSuffix</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">chars</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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">Newlines</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">"nsuRemoveSuffixCharSet"</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>Removes all characters from <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt> from the end of the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> (in-place).</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#removePrefix,string,set[char]">removePrefix func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">userInput</span> <span class="Operator">=</span> <span class="StringLit">"Hello World!*~</span><span class="EscapeSequence">\r</span><span class="EscapeSequence">\n</span><span class="StringLit">"</span>
- <span class="Identifier">userInput</span><span class="Operator">.</span><span class="Identifier">removeSuffix</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">userInput</span> <span class="Operator">==</span> <span class="StringLit">"Hello World!*~"</span>
- <span class="Identifier">userInput</span><span class="Operator">.</span><span class="Identifier">removeSuffix</span><span class="Punctuation">(</span><span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Operator">~</span><span class="CharLit">', '</span><span class="Operator">*</span><span class="CharLit">'})</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">userInput</span> <span class="Operator">==</span> <span class="StringLit">"Hello World!"</span>
- <span class="Keyword">var</span> <span class="Identifier">otherInput</span> <span class="Operator">=</span> <span class="StringLit">"Hello!?!"</span>
- <span class="Identifier">otherInput</span><span class="Operator">.</span><span class="Identifier">removeSuffix</span><span class="Punctuation">(</span><span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Operator">!</span><span class="CharLit">', '</span><span class="Operator">?</span><span class="CharLit">'})</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">otherInput</span> <span class="Operator">==</span> <span class="StringLit">"Hello"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1750" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1750" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="removeSuffix,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#removeSuffix%2Cstring%2Cstring"><span class="Identifier">removeSuffix</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">suffix</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><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">"nsuRemoveSuffixString"</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>Remove the first matching suffix (in-place) from a string.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#removePrefix,string,string">removePrefix func</a></li>
- <li><a class="reference external" href="#endsWith,string,string">endsWith func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">answers</span> <span class="Operator">=</span> <span class="StringLit">"yeses"</span>
- <span class="Identifier">answers</span><span class="Operator">.</span><span class="Identifier">removeSuffix</span><span class="Punctuation">(</span><span class="StringLit">"es"</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">answers</span> <span class="Operator">==</span> <span class="StringLit">"yes"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1792" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1792" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="repeat-procs-all">
- <div id="repeat,char,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#repeat%2Cchar%2CNatural"><span class="Identifier">repeat</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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><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">"nsuRepeatChar"</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 a string of length <tt class="docutils literal"><span class="pre"><span class="Identifier">count</span></span></tt> consisting only of the character <tt class="docutils literal"><span class="pre"><span class="Identifier">c</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="CharLit">'z'</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">"zzzzz"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1344" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1344" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="repeat,string,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#repeat%2Cstring%2CNatural"><span class="Identifier">repeat</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">n</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuRepeatStr"</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> concatenated <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> times.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="StringLit">"+ foo +"</span><span class="Operator">.</span><span class="Identifier">repeat</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"+ foo ++ foo ++ foo +"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1353" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1353" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="replace-procs-all">
- <div id="replace,string,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#replace%2Cstring%2Cstring%2Cstring"><span class="Identifier">replace</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">sub</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">by</span> <span class="Other">=</span> <span class="StringLit">""</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuReplaceStr"</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>Replaces every occurrence of the string <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> with the string <tt class="docutils literal"><span class="pre"><span class="Identifier">by</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#find,string,string,Natural,int">find func</a></li>
- <li><a class="reference external" href="#replace,string,char,char">replace func</a> for replacing single characters</li>
- <li><a class="reference external" href="#replaceWord,string,string,string">replaceWord func</a></li>
- <li><a class="reference external" href="#multiReplace,string,varargs[]">multiReplace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2196" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2196" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="replace,string,char,char">
- <dt><pre><span class="Keyword">func</span> <a href="#replace%2Cstring%2Cchar%2Cchar"><span class="Identifier">replace</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">sub</span><span class="Other">,</span> <span class="Identifier">by</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuReplaceChar"</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>Replaces every occurrence of the character <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> with the character <tt class="docutils literal"><span class="pre"><span class="Identifier">by</span></span></tt>.</p>
- <p>Optimized version of <a class="reference external" href="#replace,string,string,string">replace</a> for characters.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#find,string,char,Natural,int">find func</a></li>
- <li><a class="reference external" href="#replaceWord,string,string,string">replaceWord func</a></li>
- <li><a class="reference external" href="#multiReplace,string,varargs[]">multiReplace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2237" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2237" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="replaceWord-procs-all">
- <div id="replaceWord,string,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#replaceWord%2Cstring%2Cstring%2Cstring"><span class="Identifier">replaceWord</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">sub</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">by</span> <span class="Other">=</span> <span class="StringLit">""</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuReplaceWord"</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>Replaces every occurrence of the string <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> with the string <tt class="docutils literal"><span class="pre"><span class="Identifier">by</span></span></tt>.</p>
- <p>Each occurrence of <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> has to be surrounded by word boundaries (comparable to <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">b</span></span></tt> in regular expressions), otherwise it is not replaced.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2256" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2256" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="rfind-procs-all">
- <div id="rfind,string,string,Natural,int">
- <dt><pre><span class="Keyword">func</span> <a href="#rfind%2Cstring%2Cstring%2CNatural%2Cint"><span class="Identifier">rfind</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">sub</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</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="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</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">"nsuRFindStr"</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>Searches for <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> inside range <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span><span class="Operator">..</span><span class="Identifier">last</span></span></tt> (both ends included) included) in reverse -- starting at high indexes and moving lower to the first character or <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is unspecified, it defaults to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">high</span></span></tt> (the last element).</p>
- <p>Searching is case-sensitive. If <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>, -1 is returned. Otherwise the index returned is relative to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span></span></tt>, not <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. Subtract <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt> from the result for a <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>-origin index.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#find,string,string,Natural,int">find func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2087" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2087" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="rfind,string,set[char],Natural,int">
- <dt><pre><span class="Keyword">func</span> <a href="#rfind%2Cstring%2Cset%5Bchar%5D%2CNatural%2Cint"><span class="Identifier">rfind</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">chars</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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">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="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</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">"nsuRFindCharSet"</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>Searches for <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> inside range <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span><span class="Operator">..</span><span class="Identifier">last</span></span></tt> (both ends included) in reverse -- starting at high indexes and moving lower to the first character or <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is unspecified, it defaults to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">high</span></span></tt> (the last element).</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> contains none of the characters in <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt>, -1 is returned. Otherwise the index returned is relative to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span></span></tt>, not <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. Subtract <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt> from the result for a <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>-origin index.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#find,string,set[char],Natural,int">find func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2069" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2069" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="rfind,string,char,Natural,int">
- <dt><pre><span class="Keyword">func</span> <a href="#rfind%2Cstring%2Cchar%2CNatural%2Cint"><span class="Identifier">rfind</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">sub</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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="Identifier">last</span> <span class="Other">=</span> <span class="DecNumber">-1</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">"nsuRFindChar"</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>Searches for <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> inside range <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span><span class="Operator">..</span><span class="Identifier">last</span></span></tt> (both ends included) in reverse -- starting at high indexes and moving lower to the first character or <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">last</span></span></tt> is unspecified, it defaults to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">high</span></span></tt> (the last element).</p>
- <p>Searching is case-sensitive. If <tt class="docutils literal"><span class="pre"><span class="Identifier">sub</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>, -1 is returned. Otherwise the index returned is relative to <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span></span></tt>, not <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>. Subtract <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt> from the result for a <tt class="docutils literal"><span class="pre"><span class="Identifier">start</span></span></tt>-origin index.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#find,string,char,Natural,int">find func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2051" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2051" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="rsplit-procs-all">
- <div id="rsplit,string,char,int">
- <dt><pre><span class="Keyword">func</span> <a href="#rsplit%2Cstring%2Cchar%2Cint"><span class="Identifier">rsplit</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="system.html#char"><span class="Identifier">char</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><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">"nsuRSplitChar"</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>The same as the <a class="reference external" href="#rsplit.i,string,char,int">rsplit iterator</a>, but is a func that returns a sequence of substrings in original order.</p>
- <p>A possible common use case for <tt class="docutils literal"><span class="pre"><span class="Identifier">rsplit</span></span></tt> is path manipulation, particularly on systems that don't use a common delimiter.</p>
- <p>For example, if a system had <tt class="docutils literal"><span class="pre"><span class="Comment">#</span></span></tt> as a delimiter, you could do the following to get the tail of the path:</p>
- <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tailSplit</span> <span class="Operator">=</span> <span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">"Root#Object#Method#Index"</span><span class="Punctuation">,</span> <span class="CharLit">'#'</span><span class="Punctuation">,</span> <span class="Identifier">maxsplit</span><span class="Operator">=</span><span class="DecNumber">1</span><span class="Punctuation">)</span></pre></p>
- <p>Results in <tt class="docutils literal"><span class="pre"><span class="Identifier">tailSplit</span></span></tt> containing:</p>
- <p><pre class="listing"><span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"Root#Object#Method"</span><span class="Punctuation">,</span> <span class="StringLit">"Index"</span><span class="Punctuation">]</span></pre></p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rsplit.i,string,char,int">rsplit iterator</a></li>
- <li><a class="reference external" href="#split,string,char,int">split func</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L805" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L805" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="rsplit,string,string,int">
- <dt><pre><span class="Keyword">func</span> <a href="#rsplit%2Cstring%2Cstring%2Cint"><span class="Identifier">rsplit</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="system.html#string"><span class="Identifier">string</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><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">"nsuRSplitString"</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>The same as the <a class="reference external" href="#rsplit.i,string,string,int,bool">rsplit iterator</a>, but is a func that returns a sequence of substrings in original order.</p>
- <p>A possible common use case for <tt class="docutils literal"><span class="pre"><span class="Identifier">rsplit</span></span></tt> is path manipulation, particularly on systems that don't use a common delimiter.</p>
- <p>For example, if a system had <tt class="docutils literal"><span class="pre"><span class="Comment">#</span></span></tt> as a delimiter, you could do the following to get the tail of the path:</p>
- <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tailSplit</span> <span class="Operator">=</span> <span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">"Root#Object#Method#Index"</span><span class="Punctuation">,</span> <span class="StringLit">"#"</span><span class="Punctuation">,</span> <span class="Identifier">maxsplit</span><span class="Operator">=</span><span class="DecNumber">1</span><span class="Punctuation">)</span></pre></p>
- <p>Results in <tt class="docutils literal"><span class="pre"><span class="Identifier">tailSplit</span></span></tt> containing:</p>
- <p><pre class="listing"><span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"Root#Object#Method"</span><span class="Punctuation">,</span> <span class="StringLit">"Index"</span><span class="Punctuation">]</span></pre></p>
- <div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator string results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rsplit.i,string,string,int,bool">rsplit iterator</a></li>
- <li><a class="reference external" href="#split,string,string,int">split func</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="StringLit">"a largely spaced sentence"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">,</span> <span class="Identifier">maxsplit</span> <span class="Operator">=</span> <span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span>
- <span class="StringLit">"a largely spaced"</span><span class="Punctuation">,</span> <span class="StringLit">"sentence"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"a,b,c"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">","</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="StringLit">"b"</span><span class="Punctuation">,</span> <span class="StringLit">"c"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"a man a plan a canal panama"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">"a "</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">"man "</span><span class="Punctuation">,</span>
- <span class="StringLit">"plan "</span><span class="Punctuation">,</span> <span class="StringLit">"canal panama"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">""</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">"Elon Musk"</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="Identifier">doAssert</span> <span class="StringLit">"a largely spaced sentence"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span>
- <span class="StringLit">"largely"</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> <span class="StringLit">"spaced"</span><span class="Punctuation">,</span> <span class="StringLit">"sentence"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"empty sep returns unsplit s"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">""</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"empty sep returns unsplit s"</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L867" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L867" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="rsplit,string,set[char],int">
- <dt><pre><span class="Keyword">func</span> <a href="#rsplit%2Cstring%2Cset%5Bchar%5D%2Cint"><span class="Identifier">rsplit</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#set"><span class="Identifier">set</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">Whitespace</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><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">"nsuRSplitCharSet"</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>The same as the <a class="reference external" href="#rsplit.i,string,set[char],int">rsplit iterator</a>, but is a func that returns a sequence of substrings in original order.</p>
- <p>A possible common use case for <tt class="docutils literal"><span class="pre"><span class="Identifier">rsplit</span></span></tt> is path manipulation, particularly on systems that don't use a common delimiter.</p>
- <p>For example, if a system had <tt class="docutils literal"><span class="pre"><span class="Comment">#</span></span></tt> as a delimiter, you could do the following to get the tail of the path:</p>
- <p><pre class="listing"><span class="Keyword">var</span> <span class="Identifier">tailSplit</span> <span class="Operator">=</span> <span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">"Root#Object#Method#Index"</span><span class="Punctuation">,</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Comment">#'}, maxsplit=1)</span></pre></p>
- <p>Results in <tt class="docutils literal"><span class="pre"><span class="Identifier">tailSplit</span></span></tt> containing:</p>
- <p><pre class="listing"><span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"Root#Object#Method"</span><span class="Punctuation">,</span> <span class="StringLit">"Index"</span><span class="Punctuation">]</span></pre></p>
- <div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator set results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rsplit.i,string,set[char],int">rsplit iterator</a></li>
- <li><a class="reference external" href="#split,string,set[char],int">split func</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L834" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L834" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="spaces-procs-all">
- <div id="spaces,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#spaces%2CNatural"><span class="Identifier">spaces</span></a><span class="Other">(</span><span class="Identifier">n</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 a string with <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt> space characters. You can use this func to left align strings.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#align,string,Natural,char">align func</a></li>
- <li><a class="reference external" href="#alignLeft,string,Natural,char">alignLeft func</a></li>
- <li><a class="reference external" href="#indent,string,Natural,string">indent func</a></li>
- <li><a class="reference external" href="#center,string,int,char">center func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span>
- <span class="Identifier">width</span> <span class="Operator">=</span> <span class="DecNumber">15</span>
- <span class="Identifier">text1</span> <span class="Operator">=</span> <span class="StringLit">"Hello user!"</span>
- <span class="Identifier">text2</span> <span class="Operator">=</span> <span class="StringLit">"This is a very long string"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">text1</span> <span class="Operator">&</span> <span class="Identifier">spaces</span><span class="Punctuation">(</span><span class="Identifier">max</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="Identifier">width</span> <span class="Operator">-</span> <span class="Identifier">text1</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">&</span> <span class="StringLit">"|"</span> <span class="Operator">==</span>
- <span class="StringLit">"Hello user! |"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">text2</span> <span class="Operator">&</span> <span class="Identifier">spaces</span><span class="Punctuation">(</span><span class="Identifier">max</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">,</span> <span class="Identifier">width</span> <span class="Operator">-</span> <span class="Identifier">text2</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">&</span> <span class="StringLit">"|"</span> <span class="Operator">==</span>
- <span class="StringLit">"This is a very long string|"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1361" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1361" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="split-procs-all">
- <div id="split,string,char,int">
- <dt><pre><span class="Keyword">func</span> <a href="#split%2Cstring%2Cchar%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="system.html#char"><span class="Identifier">char</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><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">"nsuSplitChar"</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>The same as the <a class="reference external" href="#split.i,string,char,int">split iterator</a> (see its documentation), but is a func that returns a sequence of substrings.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#split.i,string,char,int">split iterator</a></li>
- <li><a class="reference external" href="#rsplit,string,char,int">rsplit func</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="StringLit">"a,b,c"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="Punctuation">'</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">"a"</span><span class="Punctuation">,</span> <span class="StringLit">"b"</span><span class="Punctuation">,</span> <span class="StringLit">"c"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">""</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="Punctuation">'</span> <span class="CharLit">') == @[""]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L746" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L746" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split,string,string,int">
- <dt><pre><span class="Keyword">func</span> <a href="#split%2Cstring%2Cstring%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="system.html#string"><span class="Identifier">string</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><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">"nsuSplitString"</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>Splits the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into substrings using a string separator.</p>
- <p>Substrings are separated by the string <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt>. This is a wrapper around the <a class="reference external" href="#split.i,string,string,int">split iterator</a>.</p>
- <div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator string results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#split.i,string,string,int">split iterator</a></li>
- <li><a class="reference external" href="#rsplit,string,string,int">rsplit func</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="StringLit">"a,b,c"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">","</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="StringLit">"b"</span><span class="Punctuation">,</span> <span class="StringLit">"c"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"a man a plan a canal panama"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">"a "</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">"man "</span><span class="Punctuation">,</span> <span class="StringLit">"plan "</span><span class="Punctuation">,</span> <span class="StringLit">"canal panama"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">""</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">"Elon Musk"</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="Identifier">doAssert</span> <span class="StringLit">"a largely spaced sentence"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="StringLit">""</span><span class="Punctuation">,</span> <span class="StringLit">"largely"</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> <span class="StringLit">"spaced"</span><span class="Punctuation">,</span> <span class="StringLit">"sentence"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"a largely spaced sentence"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">,</span> <span class="Identifier">maxsplit</span> <span class="Operator">=</span> <span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"a"</span><span class="Punctuation">,</span> <span class="StringLit">" largely spaced sentence"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"empty sep returns unsplit s"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">""</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"empty sep returns unsplit s"</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L780" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L780" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split,string,set[char],int">
- <dt><pre><span class="Keyword">func</span> <a href="#split%2Cstring%2Cset%5Bchar%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#set"><span class="Identifier">set</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">Whitespace</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><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">"nsuSplitCharSet"</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,set[char],int">split iterator</a> (see its documentation), but is a func that returns a sequence of substrings.<div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator set results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#split.i,string,set[char],int">split iterator</a></li>
- <li><a class="reference external" href="#rsplit,string,set[char],int">rsplit func</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="StringLit">"a,b;c"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Punctuation">,</span><span class="Punctuation">'</span><span class="Punctuation">,</span> <span class="CharLit">';'</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"</span><span class="Punctuation">,</span> <span class="StringLit">"b"</span><span class="Punctuation">,</span> <span class="StringLit">"c"</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">""</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</span><span class="Punctuation">{</span><span class="Punctuation">'</span> <span class="CharLit">'}) == @[""]</span>
- <span class="Identifier">doAssert</span> <span class="StringLit">"empty seps return unsplit s"</span><span class="Operator">.</span><span class="Identifier">split</span><span class="Punctuation">(</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">"empty seps return unsplit s"</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L761" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L761" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="splitLines-procs-all">
- <div id="splitLines,string">
- <dt><pre><span class="Keyword">func</span> <a href="#splitLines%2Cstring"><span class="Identifier">splitLines</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">keepEol</span> <span class="Other">=</span> <span class="Identifier">false</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><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">"nsuSplitLines"</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>The same as the <a class="reference external" href="#splitLines.i,string">splitLines iterator</a> (see its documentation), but is a func that returns a sequence of substrings.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- <li><a class="reference external" href="#countLines,string">countLines func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L909" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L909" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="splitWhitespace-procs-all">
- <div id="splitWhitespace,string,int">
- <dt><pre><span class="Keyword">func</span> <a href="#splitWhitespace%2Cstring%2Cint"><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="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><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">"nsuSplitWhitespace"</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>The same as the <a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a> (see its documentation), but is a func that returns a sequence of substrings.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L920" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L920" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="startsWith-procs-all">
- <div id="startsWith,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#startsWith%2Cstring%2Cstring"><span class="Identifier">startsWith</span></a><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">prefix</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><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">"nsuStartsWith"</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"><span class="Identifier">s</span></span></tt> starts with string <tt class="docutils literal"><span class="pre"><span class="Identifier">prefix</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">prefix</span> <span class="Operator">==</span> <span class="StringLit">""</span></span></tt> true is returned.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#endsWith,string,string">endsWith func</a></li>
- <li><a class="reference external" href="#continuesWith,string,string,Natural">continuesWith func</a></li>
- <li><a class="reference external" href="#removePrefix,string,string">removePrefix func</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">"abracadabra"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">startsWith</span><span class="Punctuation">(</span><span class="StringLit">"abra"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">startsWith</span><span class="Punctuation">(</span><span class="StringLit">"bra"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1633" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1633" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="startsWith,string,char">
- <dt><pre><span class="Keyword">func</span> <a href="#startsWith%2Cstring%2Cchar"><span class="Identifier">startsWith</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">prefix</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</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 true if <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> starts with character <tt class="docutils literal"><span class="pre"><span class="Identifier">prefix</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#endsWith,string,char">endsWith func</a></li>
- <li><a class="reference external" href="#continuesWith,string,string,Natural">continuesWith func</a></li>
- <li><a class="reference external" href="#removePrefix,string,char">removePrefix func</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">"abracadabra"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">startsWith</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == true</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">startsWith</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">') == false</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1620" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1620" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="strip-procs-all">
- <div id="strip,string,set[char]">
- <dt><pre><span class="Keyword">func</span> <a href="#strip%2Cstring%2Cset%5Bchar%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">chars</span><span class="Other">:</span> <a href="system.html#set"><span class="Identifier">set</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">Whitespace</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuStrip"</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"><span class="Identifier">chars</span></span></tt> (default: whitespace characters) from <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> and returns the resulting string.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">leading</span></span></tt> is true (default), leading <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt> are stripped. If <tt class="docutils literal"><span class="pre"><span class="Identifier">trailing</span></span></tt> is true (default), trailing <tt class="docutils literal"><span class="pre"><span class="Identifier">chars</span></span></tt> are stripped. If both are false, the string is returned unchanged.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="strbasics.html#strip,string,set[char]">strip proc</a> Inplace version.</li>
- <li><a class="reference external" href="#stripLineEnd,string">stripLineEnd func</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">" vhellov "</span>
- <span class="Keyword">let</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="StringLit">"vhellov"</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">" vhellov"</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">"vhellov "</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">chars</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">v</span><span class="CharLit">'}) == "hello"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</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="Identifier">chars</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">v</span><span class="CharLit">'}) == "vhello"</span>
- <span class="Keyword">let</span> <span class="Identifier">c</span> <span class="Operator">=</span> <span class="StringLit">"blaXbla"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">c</span><span class="Operator">.</span><span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">chars</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', '</span><span class="Identifier">a</span><span class="CharLit">'}) == "laXbl"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">c</span><span class="Operator">.</span><span class="Identifier">strip</span><span class="Punctuation">(</span><span class="Identifier">chars</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', '</span><span class="Identifier">a</span><span class="CharLit">', '</span><span class="Identifier">l</span><span class="CharLit">'}) == "X"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2934" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2934" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="stripLineEnd-procs-all">
- <div id="stripLineEnd,string">
- <dt><pre><span class="Keyword">func</span> <a href="#stripLineEnd%2Cstring"><span class="Identifier">stripLineEnd</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><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>
-
- Strips one of these suffixes from <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> in-place: <tt class="docutils literal"><span class="pre"><span class="Operator">\</span><span class="Identifier">r</span><span class="Punctuation">,</span> <span class="Operator">\</span><span class="Identifier">n</span><span class="Punctuation">,</span> <span class="Operator">\</span><span class="Identifier">r</span><span class="Operator">\</span><span class="Identifier">n</span><span class="Punctuation">,</span> <span class="Operator">\</span><span class="Identifier">f</span><span class="Punctuation">,</span> <span class="Operator">\</span><span class="Identifier">v</span></span></tt> (at most once instance). For example, can be useful in conjunction with <tt class="docutils literal"><span class="pre"><span class="Identifier">osproc</span><span class="Operator">.</span><span class="Identifier">execCmdEx</span></span></tt>. aka: <span id="chomp_1">chomp</span>
- <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">"foo</span><span class="EscapeSequence">\n</span><span class="EscapeSequence">\n</span><span class="StringLit">"</span>
- <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">stripLineEnd</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span> <span class="Operator">==</span> <span class="StringLit">"foo</span><span class="EscapeSequence">\n</span><span class="StringLit">"</span>
- <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">"foo</span><span class="EscapeSequence">\r</span><span class="EscapeSequence">\n</span><span class="StringLit">"</span>
- <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">stripLineEnd</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">s</span> <span class="Operator">==</span> <span class="StringLit">"foo"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2970" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2970" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toBin-procs-all">
- <div id="toBin,BiggestInt,Positive">
- <dt><pre><span class="Keyword">func</span> <a href="#toBin%2CBiggestInt%2CPositive"><span class="Identifier">toBin</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</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">"nsuToBin"</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"><span class="Identifier">x</span></span></tt> into its binary representation.</p>
- <p>The resulting string is always <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt> characters long. No leading <tt class="docutils literal"><span class="pre"><span class="BinNumber">0b</span></span></tt> prefix is generated.</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="DecNumber">29</span>
- <span class="Identifier">b</span> <span class="Operator">=</span> <span class="DecNumber">257</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">toBin</span><span class="Punctuation">(</span><span class="DecNumber">8</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"00011101"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">toBin</span><span class="Punctuation">(</span><span class="DecNumber">8</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"00000001"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">toBin</span><span class="Punctuation">(</span><span class="DecNumber">9</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"100000001"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L930" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L930" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toHex-procs-all">
- <div id="toHex,string">
- <dt><pre><span class="Keyword">func</span> <a href="#toHex%2Cstring"><span class="Identifier">toHex</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">gcsafe</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 bytes string to its hexadecimal representation.</p>
- <p>The output is twice the input long. No prefix like <tt class="docutils literal"><span class="pre"><span class="HexNumber">0x</span></span></tt> is generated.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#parseHexStr,string">parseHexStr func</a> for the 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="StringLit">"1"</span>
- <span class="Identifier">b</span> <span class="Operator">=</span> <span class="StringLit">"A"</span>
- <span class="Identifier">c</span> <span class="Operator">=</span> <span class="StringLit">"</span><span class="EscapeSequence">\0</span><span class="EscapeSequence">\255</span><span class="StringLit">"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"31"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"41"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">c</span><span class="Operator">.</span><span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"00FF"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1022" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1022" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toHex,T">
- <dt><pre><span class="Keyword">func</span> <a href="#toHex%2CT"><span class="Identifier">toHex</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
- <dd>
-
- Shortcut for <tt class="docutils literal"><span class="pre"><span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">,</span> <span class="Identifier">T</span><span class="Operator">.</span><span class="Identifier">sizeof</span> <span class="Operator">*</span> <span class="DecNumber">2</span><span class="Punctuation">)</span></span></tt>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="DecNumber">1984'i64</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"00000000000007C0"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="DecNumber">1984'i16</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"07C0"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1009" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1009" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toHex,T,Positive">
- <dt><pre><span class="Keyword">func</span> <a href="#toHex%2CT%2CPositive"><span class="Identifier">toHex</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
- <dd>
-
- <p>Converts <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to its hexadecimal representation.</p>
- <p>The resulting string will be exactly <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt> characters long. No prefix like <tt class="docutils literal"><span class="pre"><span class="HexNumber">0x</span></span></tt> is generated. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is treated as an unsigned value.</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="DecNumber">62'</span><span class="Identifier">u64</span>
- <span class="Identifier">b</span> <span class="Operator">=</span> <span class="DecNumber">4097'</span><span class="Identifier">u64</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"03E"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"001"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"1001"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="DecNumber">62</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"03E"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toHex</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"FFFFF8"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L987" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L987" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toLowerAscii-procs-all">
- <div id="toLowerAscii,char">
- <dt><pre><span class="Keyword">func</span> <a href="#toLowerAscii%2Cchar"><span class="Identifier">toLowerAscii</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuToLowerAsciiChar"</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 the lower case version of character <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt>.</p>
- <p>This works only for the letters <tt class="docutils literal"><span class="pre"><span class="Identifier">A</span><span class="Operator">-</span><span class="Identifier">Z</span></span></tt>. See <a class="reference external" href="unicode.html#toLower,Rune">unicode.toLower</a> for a version that works for any Unicode character.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#isLowerAscii,char">isLowerAscii func</a></li>
- <li><a class="reference external" href="#toLowerAscii,string">toLowerAscii func</a> for converting a string</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toLowerAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">A</span><span class="CharLit">') == '</span><span class="Identifier">a</span><span class="CharLit">'</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toLowerAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">') == '</span><span class="Identifier">e</span><span class="CharLit">'</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L204" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L204" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toLowerAscii,string">
- <dt><pre><span class="Keyword">func</span> <a href="#toLowerAscii%2Cstring"><span class="Identifier">toLowerAscii</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuToLowerAsciiStr"</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into lower case.</p>
- <p>This works only for the letters <tt class="docutils literal"><span class="pre"><span class="Identifier">A</span><span class="Operator">-</span><span class="Identifier">Z</span></span></tt>. See <a class="reference external" href="unicode.html#toLower,string">unicode.toLower</a> for a version that works for any Unicode character.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#normalize,string">normalize func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toLowerAscii</span><span class="Punctuation">(</span><span class="StringLit">"FooBar!"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"foobar!"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L227" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L227" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toOct-procs-all">
- <div id="toOct,BiggestInt,Positive">
- <dt><pre><span class="Keyword">func</span> <a href="#toOct%2CBiggestInt%2CPositive"><span class="Identifier">toOct</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</span></a><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#Positive"><span class="Identifier">Positive</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">"nsuToOct"</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"><span class="Identifier">x</span></span></tt> into its octal representation.</p>
- <p>The resulting string is always <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt> characters long. No leading <tt class="docutils literal"><span class="pre"><span class="OctNumber">0o</span></span></tt> prefix is generated.</p>
- <p>Do not confuse it with <a class="reference external" href="#toOctal,char">toOctal func</a>.</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="DecNumber">62</span>
- <span class="Identifier">b</span> <span class="Operator">=</span> <span class="DecNumber">513</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">toOct</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"076"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">toOct</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"001"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">b</span><span class="Operator">.</span><span class="Identifier">toOct</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"01001"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L952" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L952" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toOctal-procs-all">
- <div id="toOctal,char">
- <dt><pre><span class="Keyword">func</span> <a href="#toOctal%2Cchar"><span class="Identifier">toOctal</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuToOctal"</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 character <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> to its octal representation.</p>
- <p>The resulting string may not have a leading zero. Its length is always exactly 3.</p>
- <p>Do not confuse it with <a class="reference external" href="#toOct,BiggestInt,Positive">toOct func</a>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toOctal</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="DecNumber">1'</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"061"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toOctal</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">A</span><span class="CharLit">') == "101"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toOctal</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == "141"</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toOctal</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Operator">!</span><span class="CharLit">') == "041"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1047" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1047" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="toUpperAscii-procs-all">
- <div id="toUpperAscii,char">
- <dt><pre><span class="Keyword">func</span> <a href="#toUpperAscii%2Cchar"><span class="Identifier">toUpperAscii</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#char"><span class="Identifier">char</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">"nsuToUpperAsciiChar"</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 character <tt class="docutils literal"><span class="pre"><span class="Identifier">c</span></span></tt> into upper case.</p>
- <p>This works only for the letters <tt class="docutils literal"><span class="pre"><span class="Identifier">A</span><span class="Operator">-</span><span class="Identifier">Z</span></span></tt>. See <a class="reference external" href="unicode.html#toUpper,Rune">unicode.toUpper</a> for a version that works for any Unicode character.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#isUpperAscii,char">isUpperAscii func</a></li>
- <li><a class="reference external" href="#toUpperAscii,string">toUpperAscii func</a> for converting a string</li>
- <li><a class="reference external" href="#capitalizeAscii,string">capitalizeAscii func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toUpperAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == '</span><span class="Identifier">A</span><span class="CharLit">'</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">toUpperAscii</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">E</span><span class="CharLit">') == '</span><span class="Identifier">E</span><span class="CharLit">'</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L240" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L240" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="toUpperAscii,string">
- <dt><pre><span class="Keyword">func</span> <a href="#toUpperAscii%2Cstring"><span class="Identifier">toUpperAscii</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuToUpperAsciiStr"</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into upper case.</p>
- <p>This works only for the letters <tt class="docutils literal"><span class="pre"><span class="Identifier">A</span><span class="Operator">-</span><span class="Identifier">Z</span></span></tt>. See <a class="reference external" href="unicode.html#toUpper,string">unicode.toUpper</a> for a version that works for any Unicode character.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#capitalizeAscii,string">capitalizeAscii func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">toUpperAscii</span><span class="Punctuation">(</span><span class="StringLit">"FooBar!"</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="StringLit">"FOOBAR!"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L259" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L259" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="trimZeros-procs-all">
- <div id="trimZeros,string,char">
- <dt><pre><span class="Keyword">func</span> <a href="#trimZeros%2Cstring%2Cchar"><span class="Identifier">trimZeros</span></a><span class="Other">(</span><span class="Identifier">x</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">decimalSep</span> <span class="Other">=</span> <span class="CharLit">'.'</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>Trim trailing zeros from a formatted floating point value <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>).</p>
- <p>This modifies <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> itself, it does not return a copy.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="StringLit">"123.456000000"</span>
- <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">trimZeros</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span> <span class="Operator">==</span> <span class="StringLit">"123.456"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2567" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2567" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="unescape-procs-all">
- <div id="unescape,string,string,string">
- <dt><pre><span class="Keyword">func</span> <a href="#unescape%2Cstring%2Cstring%2Cstring"><span class="Identifier">unescape</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">prefix</span> <span class="Other">=</span> <span class="StringLit">"\""</span><span class="Other">;</span> <span class="Identifier">suffix</span> <span class="Other">=</span> <span class="StringLit">"\""</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">gcsafe</span><span class="Other">,</span>
- <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuUnescape"</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ValueError</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>Unescapes a string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>This complements <a class="reference external" href="#escape,string,string,string">escape func</a> as it performs the opposite operations.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> does not begin with <tt class="docutils literal"><span class="pre"><span class="Identifier">prefix</span></span></tt> and end with <tt class="docutils literal"><span class="pre"><span class="Identifier">suffix</span></span></tt> a ValueError exception will be raised.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2401" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2401" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="unindent-procs-all">
- <div id="unindent,string,Natural,string">
- <dt><pre><span class="Keyword">func</span> <a href="#unindent%2Cstring%2CNatural%2Cstring"><span class="Identifier">unindent</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> <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="Identifier">padding</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a> <span class="Other">=</span> <span class="StringLit">" "</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">gcsafe</span><span class="Other">,</span> <span class="Identifier">extern</span><span class="Other">:</span> <span class="StringLit">"nsuUnindent"</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>Unindents each line in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Identifier">count</span></span></tt> amount of <tt class="docutils literal"><span class="pre"><span class="Identifier">padding</span></span></tt>.</p>
- <p><strong>Note:</strong> This does not preserve the new line characters used in <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#dedent,string,Natural">dedent func</a></li>
- <li><a class="reference external" href="#align,string,Natural,char">align func</a></li>
- <li><a class="reference external" href="#alignLeft,string,Natural,char">alignLeft func</a></li>
- <li><a class="reference external" href="#spaces,Natural">spaces func</a></li>
- <li><a class="reference external" href="#indent,string,Natural,string">indent func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">x</span> <span class="Operator">=</span> <span class="LongStringLit">"""
- Hello
- There
- """</span><span class="Operator">.</span><span class="Identifier">unindent</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span> <span class="Operator">==</span> <span class="StringLit">"Hello</span><span class="EscapeSequence">\n</span><span class="StringLit">There</span><span class="EscapeSequence">\n</span><span class="StringLit">"</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L1495" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L1495" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="validIdentifier-procs-all">
- <div id="validIdentifier,string">
- <dt><pre><span class="Keyword">func</span> <a href="#validIdentifier%2Cstring"><span class="Identifier">validIdentifier</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><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">"nsuValidIdentifier"</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"><span class="Identifier">s</span></span></tt> is a valid identifier.</p>
- <p>A valid identifier starts with a character of the set <tt class="docutils literal"><span class="pre"><span class="Identifier">IdentStartChars</span></span></tt> and is followed by any number of characters of the set <tt class="docutils literal"><span class="pre"><span class="Identifier">IdentChars</span></span></tt>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="StringLit">"abc_def08"</span><span class="Operator">.</span><span class="Identifier">validIdentifier</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2444" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2444" 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="rsplit-iterators-all">
- <div id="rsplit.i,string,char,int">
- <dt><pre><span class="Keyword">iterator</span> <a href="#rsplit.i%2Cstring%2Cchar%2Cint"><span class="Identifier">rsplit</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="system.html#char"><span class="Identifier">char</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>
-
- <p>Splits the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into substrings from the right using a string separator. Works exactly the same as <a class="reference external" href="#split.i,string,char,int">split iterator</a> except in <strong>reverse</strong> order.</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">piece</span> <span class="Keyword">in</span> <span class="StringLit">"foo:bar"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Punctuation">:</span><span class="Punctuation">'</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">echo</span> <span class="Identifier">piece</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">"bar"</span>
- <span class="StringLit">"foo"</span></pre></p>
- <p>Substrings are separated from the right by the char <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#split.i,string,char,int">split iterator</a></li>
- <li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#rsplit,string,char,int">rsplit func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L564" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L564" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="rsplit.i,string,string,int,bool">
- <dt><pre><span class="Keyword">iterator</span> <a href="#rsplit.i%2Cstring%2Cstring%2Cint%2Cbool"><span class="Identifier">rsplit</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="system.html#string"><span class="Identifier">string</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="Identifier">keepSeparators</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> <span class="Other">=</span> <span class="Identifier">false</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into substrings from the right using a string separator. Works exactly the same as <a class="reference external" href="#split.i,string,string,int">split iterator</a> except in <strong>reverse</strong> order.</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">piece</span> <span class="Keyword">in</span> <span class="StringLit">"foothebar"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="StringLit">"the"</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">echo</span> <span class="Identifier">piece</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">"bar"</span>
- <span class="StringLit">"foo"</span></pre></p>
- <p>Substrings are separated from the right by the string <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt></p>
- <div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator string results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#split.i,string,string,int">split iterator</a></li>
- <li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#rsplit,string,string,int">rsplit func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L621" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L621" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="rsplit.i,string,set[char],int">
- <dt><pre><span class="Keyword">iterator</span> <a href="#rsplit.i%2Cstring%2Cset%5Bchar%5D%2Cint"><span class="Identifier">rsplit</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#set"><span class="Identifier">set</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">Whitespace</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into substrings from the right using a string separator. Works exactly the same as <a class="reference external" href="#split.i,string,char,int">split iterator</a> except in <strong>reverse</strong> order.</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">piece</span> <span class="Keyword">in</span> <span class="StringLit">"foo bar"</span><span class="Operator">.</span><span class="Identifier">rsplit</span><span class="Punctuation">(</span><span class="Identifier">WhiteSpace</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">echo</span> <span class="Identifier">piece</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">"bar"</span>
- <span class="StringLit">"foo"</span></pre></p>
- <p>Substrings are separated from the right by the set of chars <tt class="docutils literal"><span class="pre"><span class="Identifier">seps</span></span></tt></p>
- <div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator set results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#split.i,string,set[char],int">split iterator</a></li>
- <li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#rsplit,string,set[char],int">rsplit func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L591" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L591" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="split-iterators-all">
- <div id="split.i,string,char,int">
- <dt><pre><span class="Keyword">iterator</span> <a href="#split.i%2Cstring%2Cchar%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="system.html#char"><span class="Identifier">char</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>
-
- <p>Splits the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into substrings using a single separator.</p>
- <p>Substrings are separated by the character <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt>. The code:</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">word</span> <span class="Keyword">in</span> <span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">";;this;is;an;;example;;;"</span><span class="Punctuation">,</span> <span class="CharLit">';'</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">word</span><span class="Punctuation">)</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">""</span>
- <span class="StringLit">""</span>
- <span class="StringLit">"this"</span>
- <span class="StringLit">"is"</span>
- <span class="StringLit">"an"</span>
- <span class="StringLit">""</span>
- <span class="StringLit">"example"</span>
- <span class="StringLit">""</span>
- <span class="StringLit">""</span>
- <span class="StringLit">""</span></pre></p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rsplit.i,string,char,int">rsplit iterator</a></li>
- <li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#split,string,char,int">split func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L421" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L421" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split.i,string,string,int">
- <dt><pre><span class="Keyword">iterator</span> <a href="#split.i%2Cstring%2Cstring%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="system.html#string"><span class="Identifier">string</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>
-
- <p>Splits the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into substrings using a string separator.</p>
- <p>Substrings are separated by the string <tt class="docutils literal"><span class="pre"><span class="Identifier">sep</span></span></tt>. The code:</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">word</span> <span class="Keyword">in</span> <span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">"thisDATAisDATAcorrupted"</span><span class="Punctuation">,</span> <span class="StringLit">"DATA"</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">word</span><span class="Punctuation">)</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">"this"</span>
- <span class="StringLit">"is"</span>
- <span class="StringLit">"corrupted"</span></pre></p>
- <div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator string results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rsplit.i,string,string,int,bool">rsplit iterator</a></li>
- <li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#split,string,string,int">split func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L508" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L508" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="split.i,string,set[char],int">
- <dt><pre><span class="Keyword">iterator</span> <a href="#split.i%2Cstring%2Cset%5Bchar%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#set"><span class="Identifier">set</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">Whitespace</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></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"><span class="Identifier">seps</span></span></tt>.</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">word</span> <span class="Keyword">in</span> <span class="Identifier">split</span><span class="Punctuation">(</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="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">word</span><span class="Punctuation">)</span></pre></p>
- <p>...generates this output:</p>
- <p><pre class="listing"><span class="StringLit">"this"</span>
- <span class="StringLit">"is"</span>
- <span class="StringLit">"an"</span>
- <span class="StringLit">"example"</span></pre></p>
- <p>And the following code:</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">word</span> <span class="Keyword">in</span> <span class="Identifier">split</span><span class="Punctuation">(</span><span class="StringLit">"this:is;an$example"</span><span class="Punctuation">,</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Punctuation">;</span><span class="Punctuation">'</span><span class="Punctuation">,</span> <span class="CharLit">':'</span><span class="Punctuation">,</span> <span class="CharLit">'$'</span><span class="Punctuation">}</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">word</span><span class="Punctuation">)</span></pre></p>
- <p>...produces the same output as the first example. The code:</p>
- <p><pre class="listing"><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="Keyword">let</span> <span class="Identifier">separators</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span> <span class="CharLit">', '</span><span class="Operator">-</span><span class="CharLit">', '</span><span class="Punctuation">:</span><span class="Punctuation">'</span><span class="Punctuation">,</span> <span class="CharLit">'T'</span><span class="Punctuation">}</span>
- <span class="Keyword">for</span> <span class="Identifier">number</span> <span class="Keyword">in</span> <span class="Identifier">split</span><span class="Punctuation">(</span><span class="Identifier">date</span><span class="Punctuation">,</span> <span class="Identifier">separators</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">number</span><span class="Punctuation">)</span></pre></p>
- <p>...results in:</p>
- <p><pre class="listing"><span class="StringLit">"2012"</span>
- <span class="StringLit">"11"</span>
- <span class="StringLit">"20"</span>
- <span class="StringLit">"22"</span>
- <span class="StringLit">"08"</span>
- <span class="StringLit">"08.398990"</span></pre></p>
- <div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
- Empty separator set results in returning an original string, following the interpretation "split by no element".</div>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#rsplit.i,string,set[char],int">rsplit iterator</a></li>
- <li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#split,string,set[char],int">split func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L451" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L451" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="splitLines-iterators-all">
- <div id="splitLines.i,string">
- <dt><pre><span class="Keyword">iterator</span> <a href="#splitLines.i%2Cstring"><span class="Identifier">splitLines</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">keepEol</span> <span class="Other">=</span> <span class="Identifier">false</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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into its containing lines.</p>
- <p>Every <a class="reference external" href="manual.html#lexical-analysis-character-literals">character literal</a> newline combination (CR, LF, CR-LF) is supported. The result strings contain no trailing end of line characters unless the parameter <tt class="docutils literal"><span class="pre"><span class="Identifier">keepEol</span></span></tt> is set to <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>.</p>
- <p>Example:</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">line</span> <span class="Keyword">in</span> <span class="Identifier">splitLines</span><span class="Punctuation">(</span><span class="StringLit">"</span><span class="EscapeSequence">\n</span><span class="StringLit">this</span><span class="EscapeSequence">\n</span><span class="StringLit">is</span><span class="EscapeSequence">\n</span><span class="StringLit">an</span><span class="EscapeSequence">\n</span><span class="EscapeSequence">\n</span><span class="StringLit">example</span><span class="EscapeSequence">\n</span><span class="StringLit">"</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">line</span><span class="Punctuation">)</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="StringLit">""</span>
- <span class="StringLit">"this"</span>
- <span class="StringLit">"is"</span>
- <span class="StringLit">"an"</span>
- <span class="StringLit">""</span>
- <span class="StringLit">"example"</span>
- <span class="StringLit">""</span></pre></p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#splitWhitespace.i,string,int">splitWhitespace iterator</a></li>
- <li><a class="reference external" href="#splitLines,string">splitLines func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L653" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L653" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="splitWhitespace-iterators-all">
- <div id="splitWhitespace.i,string,int">
- <dt><pre><span class="Keyword">iterator</span> <a href="#splitWhitespace.i%2Cstring%2Cint"><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="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 string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> at whitespace stripping leading and trailing whitespace if necessary. If <tt class="docutils literal"><span class="pre"><span class="Identifier">maxsplit</span></span></tt> is specified and is positive, no more than <tt class="docutils literal"><span class="pre"><span class="Identifier">maxsplit</span></span></tt> splits is made.</p>
- <p>The following code:</p>
- <p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="StringLit">" foo </span><span class="EscapeSequence">\t</span><span class="StringLit"> bar baz "</span>
- <span class="Keyword">for</span> <span class="Identifier">ms</span> <span class="Keyword">in</span> <span class="Punctuation">[</span><span class="Operator">-</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">]</span><span class="Punctuation">:</span>
- <span class="Identifier">echo</span> <span class="StringLit">"------ maxsplit = "</span><span class="Punctuation">,</span> <span class="Identifier">ms</span><span class="Punctuation">,</span> <span class="StringLit">":"</span>
- <span class="Keyword">for</span> <span class="Identifier">item</span> <span class="Keyword">in</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">splitWhitespace</span><span class="Punctuation">(</span><span class="Identifier">maxsplit</span><span class="Operator">=</span><span class="Identifier">ms</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">echo</span> <span class="CharLit">'"'</span><span class="Punctuation">,</span> <span class="Identifier">item</span><span class="Punctuation">,</span> <span class="CharLit">'"'</span></pre></p>
- <p>...results in:</p>
- <p><pre class="listing"><span class="Operator">------</span> <span class="Identifier">maxsplit</span> <span class="Operator">=</span> <span class="Operator">-</span><span class="DecNumber">1</span><span class="Punctuation">:</span>
- <span class="StringLit">"foo"</span>
- <span class="StringLit">"bar"</span>
- <span class="StringLit">"baz"</span>
- <span class="Operator">------</span> <span class="Identifier">maxsplit</span> <span class="Operator">=</span> <span class="DecNumber">1</span><span class="Punctuation">:</span>
- <span class="StringLit">"foo"</span>
- <span class="StringLit">"bar baz "</span>
- <span class="Operator">------</span> <span class="Identifier">maxsplit</span> <span class="Operator">=</span> <span class="DecNumber">2</span><span class="Punctuation">:</span>
- <span class="StringLit">"foo"</span>
- <span class="StringLit">"bar"</span>
- <span class="StringLit">"baz "</span>
- <span class="Operator">------</span> <span class="Identifier">maxsplit</span> <span class="Operator">=</span> <span class="DecNumber">3</span><span class="Punctuation">:</span>
- <span class="StringLit">"foo"</span>
- <span class="StringLit">"bar"</span>
- <span class="StringLit">"baz"</span></pre></p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#splitLines.i,string">splitLines iterator</a></li>
- <li><a class="reference external" href="#splitWhitespace,string,int">splitWhitespace func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L704" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L704" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="tokenize-iterators-all">
- <div id="tokenize.i,string,set[char]">
- <dt><pre><span class="Keyword">iterator</span> <a href="#tokenize.i%2Cstring%2Cset%5Bchar%5D"><span class="Identifier">tokenize</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#set"><span class="Identifier">set</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">Whitespace</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">token</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span>
- <span class="Identifier">isSep</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</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>Tokenizes the string <tt class="docutils literal"><span class="pre"><span class="Identifier">s</span></span></tt> into substrings.</p>
- <p>Substrings are separated by a substring containing only <tt class="docutils literal"><span class="pre"><span class="Identifier">seps</span></span></tt>. Example:</p>
- <p><pre class="listing"><span class="Keyword">for</span> <span class="Identifier">word</span> <span class="Keyword">in</span> <span class="Identifier">tokenize</span><span class="Punctuation">(</span><span class="StringLit">" this is an example "</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
- <span class="Identifier">writeLine</span><span class="Punctuation">(</span><span class="Identifier">stdout</span><span class="Punctuation">,</span> <span class="Identifier">word</span><span class="Punctuation">)</span></pre></p>
- <p>Results in:</p>
- <p><pre class="listing"><span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">,</span> <span class="Identifier">true</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">"this"</span><span class="Punctuation">,</span> <span class="Identifier">false</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">,</span> <span class="Identifier">true</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">"is"</span><span class="Punctuation">,</span> <span class="Identifier">false</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">,</span> <span class="Identifier">true</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">"an"</span><span class="Punctuation">,</span> <span class="Identifier">false</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">,</span> <span class="Identifier">true</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">"example"</span><span class="Punctuation">,</span> <span class="Identifier">false</span><span class="Punctuation">)</span>
- <span class="Punctuation">(</span><span class="StringLit">" "</span><span class="Punctuation">,</span> <span class="Identifier">true</span><span class="Punctuation">)</span></pre></p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/strutils.nim#L2996" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/strutils.nim#L2996" 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-02-06 22:28:15 UTC</small>
- </div>
- </div>
- </div>
- <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
-
- </body>
- </html>
|