typeinfo.html 113 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <!-- This file is generated by Nim. -->
  4. <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>std/typeinfo</title>
  9. <!-- Google fonts -->
  10. <link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
  11. <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
  12. <!-- Favicon -->
  13. <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
  14. <link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
  15. <!-- CSS -->
  16. <link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
  17. <!-- JS -->
  18. <script type="text/javascript" src="dochack.js?v=2.3.1"></script>
  19. </head>
  20. <body>
  21. <div class="document" id="documentId">
  22. <div class="container">
  23. <h1 class="title">std/typeinfo</h1>
  24. <div class="row">
  25. <div class="three columns">
  26. <div class="theme-select-wrapper">
  27. <label for="theme-select">Theme:&nbsp;</label>
  28. <select id="theme-select" onchange="setTheme(this.value)">
  29. <option value="auto">🌗 Match OS</option>
  30. <option value="dark">🌑 Dark</option>
  31. <option value="light">🌕 Light</option>
  32. </select>
  33. </div>
  34. <div id="global-links">
  35. <ul class="simple-boot">
  36. <li><a href="manual.html">Manual</a></li>
  37. <li><a href="lib.html">Standard library</a></li>
  38. <li> <a id="indexLink" href="theindex.html">Index</a></li>
  39. <li><a href="compiler/theindex.html">Compiler docs</a></li>
  40. <li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
  41. <li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
  42. </ul>
  43. </div>
  44. <div id="searchInputDiv">
  45. Search: <input type="search" id="searchInput"
  46. oninput="search()" />
  47. </div>
  48. <ul class="simple simple-toc" id="toc-list">
  49. <li>
  50. <a class="reference reference-toplevel" href="#6" id="56">Imports</a>
  51. </li>
  52. <li>
  53. <details open>
  54. <summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
  55. <ul class="simple simple-toc-section">
  56. <li><a class="reference" href="#Any" title="Any = object
  57. when defined(js):
  58. else:">Any</a></li>
  59. <li><a class="reference" href="#AnyKind" title="AnyKind = enum
  60. akNone = 0, ## invalid
  61. akBool = 1, ## bool
  62. akChar = 2, ## char
  63. akEnum = 14, ## enum
  64. akArray = 16, ## array
  65. akObject = 17, ## object
  66. akTuple = 18, ## tuple
  67. akSet = 19, ## set
  68. akRange = 20, ## range
  69. akPtr = 21, ## ptr
  70. akRef = 22, ## ref
  71. akSequence = 24, ## sequence
  72. akProc = 25, ## proc
  73. akPointer = 26, ## pointer
  74. akString = 28, ## string
  75. akCString = 29, ## cstring
  76. akInt = 31, ## int
  77. akInt8 = 32, ## int8
  78. akInt16 = 33, ## int16
  79. akInt32 = 34, ## int32
  80. akInt64 = 35, ## int64
  81. akFloat = 36, ## float
  82. akFloat32 = 37, ## float32
  83. akFloat64 = 38, ## float64
  84. akFloat128 = 39, ## float128
  85. akUInt = 40, ## uint
  86. akUInt8 = 41, ## uint8
  87. akUInt16 = 42, ## uin16
  88. akUInt32 = 43, ## uint32
  89. akUInt64 = 44 ## uint64">AnyKind</a></li>
  90. </ul>
  91. </details>
  92. </li>
  93. <li>
  94. <details open>
  95. <summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
  96. <ul class="simple simple-toc-section">
  97. <ul class="simple nested-toc-section">[]
  98. <li><a class="reference" href="#%5B%5D%2CAny" title="`[]`(x: Any): Any">`[]`(x: Any): Any</a></li>
  99. <li><a class="reference" href="#%5B%5D%2CAny%2Cstring" title="`[]`(x: Any; fieldName: string): Any">`[]`(x: Any; fieldName: string): Any</a></li>
  100. <li><a class="reference" href="#%5B%5D%2CAny%2Cint" title="`[]`(x: Any; i: int): Any">`[]`(x: Any; i: int): Any</a></li>
  101. </ul>
  102. <ul class="simple nested-toc-section">[]=
  103. <li><a class="reference" href="#%5B%5D%3D%2CAny%2CAny" title="`[]=`(x, y: Any)">`[]=`(x, y: Any)</a></li>
  104. <li><a class="reference" href="#%5B%5D%3D%2CAny%2Cstring%2CAny" title="`[]=`(x: Any; fieldName: string; value: Any)">`[]=`(x: Any; fieldName: string; value: Any)</a></li>
  105. <li><a class="reference" href="#%5B%5D%3D%2CAny%2Cint%2CAny" title="`[]=`(x: Any; i: int; y: Any)">`[]=`(x: Any; i: int; y: Any)</a></li>
  106. </ul>
  107. <ul class="simple nested-toc-section">assign
  108. <li><a class="reference" href="#assign%2CAny%2CAny" title="assign(x, y: Any)">assign(x, y: Any)</a></li>
  109. </ul>
  110. <ul class="simple nested-toc-section">base
  111. <li><a class="reference" href="#base%2CAny" title="base(x: Any): Any">base(x: Any): Any</a></li>
  112. </ul>
  113. <ul class="simple nested-toc-section">baseTypeKind
  114. <li><a class="reference" href="#baseTypeKind%2CAny" title="baseTypeKind(x: Any): AnyKind">baseTypeKind(x: Any): AnyKind</a></li>
  115. </ul>
  116. <ul class="simple nested-toc-section">baseTypeSize
  117. <li><a class="reference" href="#baseTypeSize%2CAny" title="baseTypeSize(x: Any): int">baseTypeSize(x: Any): int</a></li>
  118. </ul>
  119. <ul class="simple nested-toc-section">extendSeq
  120. <li><a class="reference" href="#extendSeq%2CAny" title="extendSeq(x: Any)">extendSeq(x: Any)</a></li>
  121. </ul>
  122. <ul class="simple nested-toc-section">getBiggestFloat
  123. <li><a class="reference" href="#getBiggestFloat%2CAny" title="getBiggestFloat(x: Any): BiggestFloat">getBiggestFloat(x: Any): BiggestFloat</a></li>
  124. </ul>
  125. <ul class="simple nested-toc-section">getBiggestInt
  126. <li><a class="reference" href="#getBiggestInt%2CAny" title="getBiggestInt(x: Any): BiggestInt">getBiggestInt(x: Any): BiggestInt</a></li>
  127. </ul>
  128. <ul class="simple nested-toc-section">getBiggestUint
  129. <li><a class="reference" href="#getBiggestUint%2CAny" title="getBiggestUint(x: Any): uint64">getBiggestUint(x: Any): uint64</a></li>
  130. </ul>
  131. <ul class="simple nested-toc-section">getBool
  132. <li><a class="reference" href="#getBool%2CAny" title="getBool(x: Any): bool">getBool(x: Any): bool</a></li>
  133. </ul>
  134. <ul class="simple nested-toc-section">getChar
  135. <li><a class="reference" href="#getChar%2CAny" title="getChar(x: Any): char">getChar(x: Any): char</a></li>
  136. </ul>
  137. <ul class="simple nested-toc-section">getCString
  138. <li><a class="reference" href="#getCString%2CAny" title="getCString(x: Any): cstring">getCString(x: Any): cstring</a></li>
  139. </ul>
  140. <ul class="simple nested-toc-section">getEnumField
  141. <li><a class="reference" href="#getEnumField%2CAny" title="getEnumField(x: Any): string">getEnumField(x: Any): string</a></li>
  142. <li><a class="reference" href="#getEnumField%2CAny%2Cint" title="getEnumField(x: Any; ordinalValue: int): string">getEnumField(x: Any; ordinalValue: int): string</a></li>
  143. </ul>
  144. <ul class="simple nested-toc-section">getEnumOrdinal
  145. <li><a class="reference" href="#getEnumOrdinal%2CAny%2Cstring" title="getEnumOrdinal(x: Any; name: string): int">getEnumOrdinal(x: Any; name: string): int</a></li>
  146. </ul>
  147. <ul class="simple nested-toc-section">getFloat
  148. <li><a class="reference" href="#getFloat%2CAny" title="getFloat(x: Any): float">getFloat(x: Any): float</a></li>
  149. </ul>
  150. <ul class="simple nested-toc-section">getFloat32
  151. <li><a class="reference" href="#getFloat32%2CAny" title="getFloat32(x: Any): float32">getFloat32(x: Any): float32</a></li>
  152. </ul>
  153. <ul class="simple nested-toc-section">getFloat64
  154. <li><a class="reference" href="#getFloat64%2CAny" title="getFloat64(x: Any): float64">getFloat64(x: Any): float64</a></li>
  155. </ul>
  156. <ul class="simple nested-toc-section">getInt
  157. <li><a class="reference" href="#getInt%2CAny" title="getInt(x: Any): int">getInt(x: Any): int</a></li>
  158. </ul>
  159. <ul class="simple nested-toc-section">getInt8
  160. <li><a class="reference" href="#getInt8%2CAny" title="getInt8(x: Any): int8">getInt8(x: Any): int8</a></li>
  161. </ul>
  162. <ul class="simple nested-toc-section">getInt16
  163. <li><a class="reference" href="#getInt16%2CAny" title="getInt16(x: Any): int16">getInt16(x: Any): int16</a></li>
  164. </ul>
  165. <ul class="simple nested-toc-section">getInt32
  166. <li><a class="reference" href="#getInt32%2CAny" title="getInt32(x: Any): int32">getInt32(x: Any): int32</a></li>
  167. </ul>
  168. <ul class="simple nested-toc-section">getInt64
  169. <li><a class="reference" href="#getInt64%2CAny" title="getInt64(x: Any): int64">getInt64(x: Any): int64</a></li>
  170. </ul>
  171. <ul class="simple nested-toc-section">getPointer
  172. <li><a class="reference" href="#getPointer%2CAny" title="getPointer(x: Any): pointer">getPointer(x: Any): pointer</a></li>
  173. </ul>
  174. <ul class="simple nested-toc-section">getString
  175. <li><a class="reference" href="#getString%2CAny" title="getString(x: Any): string">getString(x: Any): string</a></li>
  176. </ul>
  177. <ul class="simple nested-toc-section">getUInt
  178. <li><a class="reference" href="#getUInt%2CAny" title="getUInt(x: Any): uint">getUInt(x: Any): uint</a></li>
  179. </ul>
  180. <ul class="simple nested-toc-section">getUInt8
  181. <li><a class="reference" href="#getUInt8%2CAny" title="getUInt8(x: Any): uint8">getUInt8(x: Any): uint8</a></li>
  182. </ul>
  183. <ul class="simple nested-toc-section">getUInt16
  184. <li><a class="reference" href="#getUInt16%2CAny" title="getUInt16(x: Any): uint16">getUInt16(x: Any): uint16</a></li>
  185. </ul>
  186. <ul class="simple nested-toc-section">getUInt32
  187. <li><a class="reference" href="#getUInt32%2CAny" title="getUInt32(x: Any): uint32">getUInt32(x: Any): uint32</a></li>
  188. </ul>
  189. <ul class="simple nested-toc-section">getUInt64
  190. <li><a class="reference" href="#getUInt64%2CAny" title="getUInt64(x: Any): uint64">getUInt64(x: Any): uint64</a></li>
  191. </ul>
  192. <ul class="simple nested-toc-section">inclSetElement
  193. <li><a class="reference" href="#inclSetElement%2CAny%2Cint" title="inclSetElement(x: Any; elem: int)">inclSetElement(x: Any; elem: int)</a></li>
  194. </ul>
  195. <ul class="simple nested-toc-section">invokeNew
  196. <li><a class="reference" href="#invokeNew%2CAny" title="invokeNew(x: Any)">invokeNew(x: Any)</a></li>
  197. </ul>
  198. <ul class="simple nested-toc-section">invokeNewSeq
  199. <li><a class="reference" href="#invokeNewSeq%2CAny%2Cint" title="invokeNewSeq(x: Any; len: int)">invokeNewSeq(x: Any; len: int)</a></li>
  200. </ul>
  201. <ul class="simple nested-toc-section">isNil
  202. <li><a class="reference" href="#isNil%2CAny" title="isNil(x: Any): bool">isNil(x: Any): bool</a></li>
  203. </ul>
  204. <ul class="simple nested-toc-section">kind
  205. <li><a class="reference" href="#kind%2CAny" title="kind(x: Any): AnyKind">kind(x: Any): AnyKind</a></li>
  206. </ul>
  207. <ul class="simple nested-toc-section">len
  208. <li><a class="reference" href="#len%2CAny" title="len(x: Any): int">len(x: Any): int</a></li>
  209. </ul>
  210. <ul class="simple nested-toc-section">setBiggestFloat
  211. <li><a class="reference" href="#setBiggestFloat%2CAny%2CBiggestFloat" title="setBiggestFloat(x: Any; y: BiggestFloat)">setBiggestFloat(x: Any; y: BiggestFloat)</a></li>
  212. </ul>
  213. <ul class="simple nested-toc-section">setBiggestInt
  214. <li><a class="reference" href="#setBiggestInt%2CAny%2CBiggestInt" title="setBiggestInt(x: Any; y: BiggestInt)">setBiggestInt(x: Any; y: BiggestInt)</a></li>
  215. </ul>
  216. <ul class="simple nested-toc-section">setBiggestUint
  217. <li><a class="reference" href="#setBiggestUint%2CAny%2Cuint64" title="setBiggestUint(x: Any; y: uint64)">setBiggestUint(x: Any; y: uint64)</a></li>
  218. </ul>
  219. <ul class="simple nested-toc-section">setObjectRuntimeType
  220. <li><a class="reference" href="#setObjectRuntimeType%2CAny" title="setObjectRuntimeType(x: Any)">setObjectRuntimeType(x: Any)</a></li>
  221. </ul>
  222. <ul class="simple nested-toc-section">setPointer
  223. <li><a class="reference" href="#setPointer%2CAny%2Cpointer" title="setPointer(x: Any; y: pointer)">setPointer(x: Any; y: pointer)</a></li>
  224. </ul>
  225. <ul class="simple nested-toc-section">setString
  226. <li><a class="reference" href="#setString%2CAny%2Cstring" title="setString(x: Any; y: string)">setString(x: Any; y: string)</a></li>
  227. </ul>
  228. <ul class="simple nested-toc-section">size
  229. <li><a class="reference" href="#size%2CAny" title="size(x: Any): int">size(x: Any): int</a></li>
  230. </ul>
  231. <ul class="simple nested-toc-section">skipRange
  232. <li><a class="reference" href="#skipRange%2CAny" title="skipRange(x: Any): Any">skipRange(x: Any): Any</a></li>
  233. </ul>
  234. <ul class="simple nested-toc-section">toAny
  235. <li><a class="reference" href="#toAny%2CT" title="toAny[T](x: var T): Any">toAny[T](x: var T): Any</a></li>
  236. </ul>
  237. </ul>
  238. </details>
  239. </li>
  240. <li>
  241. <details open>
  242. <summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
  243. <ul class="simple simple-toc-section">
  244. <ul class="simple nested-toc-section">elements
  245. <li><a class="reference" href="#elements.i%2CAny" title="elements(x: Any): int">elements(x: Any): int</a></li>
  246. </ul>
  247. <ul class="simple nested-toc-section">fields
  248. <li><a class="reference" href="#fields.i%2CAny" title="fields(x: Any): tuple[name: string, any: Any]">fields(x: Any): tuple[name: string, any: Any]</a></li>
  249. </ul>
  250. </ul>
  251. </details>
  252. </li>
  253. </ul>
  254. </div>
  255. <div class="nine columns" id="content">
  256. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L1" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  257. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L1" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  258. <div id="tocRoot"></div>
  259. <p class="module-desc">This module implements an interface to Nim's <span id="runtime-type-information_1">runtime type information</span> (<span id="rtti_1">RTTI</span>). See the <a class="reference external" href="marshal.html">marshal</a> module for an example of what this allows you to do.<div class="admonition admonition-info"><span class="admonition-info-text"><b>Note:</b></span>
  260. Even though <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt> and its operations hide the nasty low level details from its users, it remains inherently unsafe! Also, Nim's runtime type information will evolve and may eventually be deprecated. As an alternative approach to programmatically understanding and manipulating types, consider using the <a class="reference external" href="macros.html">macros</a> module to work with the types' AST representation at compile time. See for example the <a class="reference external" href="macros.html#getTypeImpl,NimNode">getTypeImpl proc</a>. As an alternative approach to storing arbitrary types at runtime, consider using generics.</div>
  261. <p><strong class="examples_text">Example:</strong></p>
  262. <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">typeinfo</span>
  263. <span class="Keyword">var</span> <span class="Identifier">x</span><span class="Punctuation">:</span> <span class="Identifier">Any</span>
  264. <span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">42</span>
  265. <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">i</span><span class="Operator">.</span><span class="Identifier">toAny</span>
  266. <span class="Identifier">assert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">kind</span> <span class="Operator">==</span> <span class="Identifier">akInt</span>
  267. <span class="Identifier">assert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">getInt</span> <span class="Operator">==</span> <span class="DecNumber">42</span>
  268. <span class="Keyword">var</span> <span class="Identifier">s</span> <span class="Operator">=</span> <span class="Operator">@</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>
  269. <span class="Identifier">x</span> <span class="Operator">=</span> <span class="Identifier">s</span><span class="Operator">.</span><span class="Identifier">toAny</span>
  270. <span class="Identifier">assert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">kind</span> <span class="Operator">==</span> <span class="Identifier">akSequence</span>
  271. <span class="Identifier">assert</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">3</span></pre></p>
  272. <div class="section" id="6">
  273. <h1><a class="toc-backref" href="#6">Imports</a></h1>
  274. <dl class="item">
  275. <a class="reference external" href="assertions.html">assertions</a>, <a class="reference external" href="strimpl.html">strimpl</a>
  276. </dl>
  277. </div>
  278. <div class="section" id="7">
  279. <h1><a class="toc-backref" href="#7">Types</a></h1>
  280. <dl class="item">
  281. <div id="Any">
  282. <dt><pre><a href="typeinfo.html#Any"><span class="Identifier">Any</span></a> <span class="Other">=</span> <span class="Keyword">object</span>
  283. <span class="Keyword">when</span> <span class="Identifier">defined</span><span class="Other">(</span><span class="Identifier">js</span><span class="Other">)</span><span class="Other">:</span>
  284. <span class="Keyword">else</span><span class="Other">:</span></pre></dt>
  285. <dd>
  286. A type that can represent any nim value.<div class="admonition admonition-error"><span class="admonition-error-text"><b>Danger:</b></span>
  287. The wrapped value can be modified with its wrapper! This means that <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt> keeps a non-traced pointer to its wrapped value and <strong>must not</strong> live longer than its wrapped value.</div>
  288. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L81" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  289. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L81" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  290. </dd>
  291. </div>
  292. <div id="AnyKind">
  293. <dt><pre><a href="typeinfo.html#AnyKind"><span class="Identifier">AnyKind</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
  294. <span class="Identifier">akNone</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Comment">## invalid</span>
  295. <span class="Identifier">akBool</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">,</span> <span class="Comment">## bool</span>
  296. <span class="Identifier">akChar</span> <span class="Other">=</span> <span class="DecNumber">2</span><span class="Other">,</span> <span class="Comment">## char</span>
  297. <span class="Identifier">akEnum</span> <span class="Other">=</span> <span class="DecNumber">14</span><span class="Other">,</span> <span class="Comment">## enum</span>
  298. <span class="Identifier">akArray</span> <span class="Other">=</span> <span class="DecNumber">16</span><span class="Other">,</span> <span class="Comment">## array</span>
  299. <span class="Identifier">akObject</span> <span class="Other">=</span> <span class="DecNumber">17</span><span class="Other">,</span> <span class="Comment">## object</span>
  300. <span class="Identifier">akTuple</span> <span class="Other">=</span> <span class="DecNumber">18</span><span class="Other">,</span> <span class="Comment">## tuple</span>
  301. <span class="Identifier">akSet</span> <span class="Other">=</span> <span class="DecNumber">19</span><span class="Other">,</span> <span class="Comment">## set</span>
  302. <span class="Identifier">akRange</span> <span class="Other">=</span> <span class="DecNumber">20</span><span class="Other">,</span> <span class="Comment">## range</span>
  303. <span class="Identifier">akPtr</span> <span class="Other">=</span> <span class="DecNumber">21</span><span class="Other">,</span> <span class="Comment">## ptr</span>
  304. <span class="Identifier">akRef</span> <span class="Other">=</span> <span class="DecNumber">22</span><span class="Other">,</span> <span class="Comment">## ref</span>
  305. <span class="Identifier">akSequence</span> <span class="Other">=</span> <span class="DecNumber">24</span><span class="Other">,</span> <span class="Comment">## sequence</span>
  306. <span class="Identifier">akProc</span> <span class="Other">=</span> <span class="DecNumber">25</span><span class="Other">,</span> <span class="Comment">## proc</span>
  307. <span class="Identifier">akPointer</span> <span class="Other">=</span> <span class="DecNumber">26</span><span class="Other">,</span> <span class="Comment">## pointer</span>
  308. <span class="Identifier">akString</span> <span class="Other">=</span> <span class="DecNumber">28</span><span class="Other">,</span> <span class="Comment">## string</span>
  309. <span class="Identifier">akCString</span> <span class="Other">=</span> <span class="DecNumber">29</span><span class="Other">,</span> <span class="Comment">## cstring</span>
  310. <span class="Identifier">akInt</span> <span class="Other">=</span> <span class="DecNumber">31</span><span class="Other">,</span> <span class="Comment">## int</span>
  311. <span class="Identifier">akInt8</span> <span class="Other">=</span> <span class="DecNumber">32</span><span class="Other">,</span> <span class="Comment">## int8</span>
  312. <span class="Identifier">akInt16</span> <span class="Other">=</span> <span class="DecNumber">33</span><span class="Other">,</span> <span class="Comment">## int16</span>
  313. <span class="Identifier">akInt32</span> <span class="Other">=</span> <span class="DecNumber">34</span><span class="Other">,</span> <span class="Comment">## int32</span>
  314. <span class="Identifier">akInt64</span> <span class="Other">=</span> <span class="DecNumber">35</span><span class="Other">,</span> <span class="Comment">## int64</span>
  315. <span class="Identifier">akFloat</span> <span class="Other">=</span> <span class="DecNumber">36</span><span class="Other">,</span> <span class="Comment">## float</span>
  316. <span class="Identifier">akFloat32</span> <span class="Other">=</span> <span class="DecNumber">37</span><span class="Other">,</span> <span class="Comment">## float32</span>
  317. <span class="Identifier">akFloat64</span> <span class="Other">=</span> <span class="DecNumber">38</span><span class="Other">,</span> <span class="Comment">## float64</span>
  318. <span class="Identifier">akFloat128</span> <span class="Other">=</span> <span class="DecNumber">39</span><span class="Other">,</span> <span class="Comment">## float128</span>
  319. <span class="Identifier">akUInt</span> <span class="Other">=</span> <span class="DecNumber">40</span><span class="Other">,</span> <span class="Comment">## uint</span>
  320. <span class="Identifier">akUInt8</span> <span class="Other">=</span> <span class="DecNumber">41</span><span class="Other">,</span> <span class="Comment">## uint8</span>
  321. <span class="Identifier">akUInt16</span> <span class="Other">=</span> <span class="DecNumber">42</span><span class="Other">,</span> <span class="Comment">## uin16</span>
  322. <span class="Identifier">akUInt32</span> <span class="Other">=</span> <span class="DecNumber">43</span><span class="Other">,</span> <span class="Comment">## uint32</span>
  323. <span class="Identifier">akUInt64</span> <span class="Other">=</span> <span class="DecNumber">44</span> <span class="Comment">## uint64</span></pre></dt>
  324. <dd>
  325. The kind of <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt>.
  326. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L48" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  327. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L48" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  328. </dd>
  329. </div>
  330. </dl>
  331. </div>
  332. <div class="section" id="12">
  333. <h1><a class="toc-backref" href="#12">Procs</a></h1>
  334. <dl class="item">
  335. <div id="[]-procs-all">
  336. <div id="[],Any">
  337. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CAny"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  338. <dd>
  339. Dereference operator for <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a ptr or a ref.
  340. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L432" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  341. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L432" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  342. </dd>
  343. </div>
  344. <div id="[],Any,string">
  345. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CAny%2Cstring"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">fieldName</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="typeinfo.html#Any"><span class="Identifier">Any</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>
  346. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  347. <dd>
  348. Gets a field of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an object or a tuple.
  349. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L416" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  350. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L416" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  351. </dd>
  352. </div>
  353. <div id="[],Any,int">
  354. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CAny%2Cint"><span class="Identifier">`[]`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  355. <dd>
  356. Accessor for an any <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> that represents an array or a sequence.
  357. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L246" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  358. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L246" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  359. </dd>
  360. </div>
  361. </div>
  362. <div id="[]=-procs-all">
  363. <div id="[]=,Any,Any">
  364. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CAny%2CAny"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  365. <dd>
  366. Dereference operator for <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a ptr or a ref.
  367. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L438" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  368. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L438" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  369. </dd>
  370. </div>
  371. <div id="[]=,Any,string,Any">
  372. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CAny%2Cstring%2CAny"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">fieldName</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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="Identifier">ValueError</span><span class="Other">]</span><span class="Other">,</span>
  373. <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>
  374. <dd>
  375. Sets a field of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an object or a tuple.
  376. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L402" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  377. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L402" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  378. </dd>
  379. </div>
  380. <div id="[]=,Any,int,Any">
  381. <dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CAny%2Cint%2CAny"><span class="Identifier">`[]=`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">i</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  382. <dd>
  383. Accessor for an any <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> that represents an array or a sequence.
  384. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L272" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  385. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L272" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  386. </dd>
  387. </div>
  388. </div>
  389. <div id="assign-procs-all">
  390. <div id="assign,Any,Any">
  391. <dt><pre><span class="Keyword">proc</span> <a href="#assign%2CAny%2CAny"><span class="Identifier">assign</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  392. <dd>
  393. Copies the value of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> to <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. The assignment operator for <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt> does NOT do this; it performs a shallow copy instead!
  394. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L677" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  395. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L677" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  396. </dd>
  397. </div>
  398. </div>
  399. <div id="base-procs-all">
  400. <div id="base,Any">
  401. <dt><pre><span class="Keyword">proc</span> <a href="#base%2CAny"><span class="Identifier">base</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  402. <dd>
  403. Returns the base type of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (useful for inherited object types).
  404. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L318" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  405. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L318" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  406. </dd>
  407. </div>
  408. </div>
  409. <div id="baseTypeKind-procs-all">
  410. <div id="baseTypeKind,Any">
  411. <dt><pre><span class="Keyword">proc</span> <a href="#baseTypeKind%2CAny"><span class="Identifier">baseTypeKind</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="typeinfo.html#AnyKind"><span class="Identifier">AnyKind</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>
  412. <dd>
  413. Gets the base type's kind. If <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> has no base type, <tt class="docutils literal"><span class="pre"><span class="Identifier">akNone</span></span></tt> is returned.
  414. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L178" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  415. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L178" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  416. </dd>
  417. </div>
  418. </div>
  419. <div id="baseTypeSize-procs-all">
  420. <div id="baseTypeSize,Any">
  421. <dt><pre><span class="Keyword">proc</span> <a href="#baseTypeSize%2CAny"><span class="Identifier">baseTypeSize</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  422. <dd>
  423. Returns the size of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>'s base type. If <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> has no base type, 0 is returned.
  424. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L185" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  425. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L185" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  426. </dd>
  427. </div>
  428. </div>
  429. <div id="extendSeq-procs-all">
  430. <div id="extendSeq,Any">
  431. <dt><pre><span class="Keyword">proc</span> <a href="#extendSeq%2CAny"><span class="Identifier">extendSeq</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  432. <dd>
  433. Performs <tt class="docutils literal"><span class="pre"><span class="Identifier">setLen</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">,</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">len</span><span class="Operator">+</span><span class="DecNumber">1</span><span class="Punctuation">)</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span></span></tt>.
  434. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L213" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  435. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L213" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  436. </dd>
  437. </div>
  438. </div>
  439. <div id="getBiggestFloat-procs-all">
  440. <div id="getBiggestFloat,Any">
  441. <dt><pre><span class="Keyword">proc</span> <a href="#getBiggestFloat%2CAny"><span class="Identifier">getBiggestFloat</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="ctypes.html#BiggestFloat"><span class="Identifier">BiggestFloat</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>
  442. <dd>
  443. Retrieves the float value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent some float. The value is extended to <tt class="docutils literal"><span class="pre"><span class="Identifier">BiggestFloat</span></span></tt>.
  444. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L640" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  445. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L640" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  446. </dd>
  447. </div>
  448. </div>
  449. <div id="getBiggestInt-procs-all">
  450. <div id="getBiggestInt,Any">
  451. <dt><pre><span class="Keyword">proc</span> <a href="#getBiggestInt%2CAny"><span class="Identifier">getBiggestInt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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">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>
  452. <dd>
  453. Retrieves the integer value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent some integer, a bool, a char, an enum or a small enough bit set. The value might be sign-extended to <tt class="docutils literal"><span class="pre"><span class="Identifier">BiggestInt</span></span></tt>.
  454. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L469" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  455. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L469" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  456. </dd>
  457. </div>
  458. </div>
  459. <div id="getBiggestUint-procs-all">
  460. <div id="getBiggestUint,Any">
  461. <dt><pre><span class="Keyword">proc</span> <a href="#getBiggestUint%2CAny"><span class="Identifier">getBiggestUint</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</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>
  462. <dd>
  463. Retrieves the unsigned integer value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an unsigned integer.
  464. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L545" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  465. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L545" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  466. </dd>
  467. </div>
  468. </div>
  469. <div id="getBool-procs-all">
  470. <div id="getBool,Any">
  471. <dt><pre><span class="Keyword">proc</span> <a href="#getBool%2CAny"><span class="Identifier">getBool</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  472. <dd>
  473. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">bool</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">bool</span></span></tt>.
  474. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L575" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  475. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L575" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  476. </dd>
  477. </div>
  478. </div>
  479. <div id="getChar-procs-all">
  480. <div id="getChar,Any">
  481. <dt><pre><span class="Keyword">proc</span> <a href="#getChar%2CAny"><span class="Identifier">getChar</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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">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>
  482. <dd>
  483. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">char</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">char</span></span></tt>.
  484. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L569" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  485. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L569" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  486. </dd>
  487. </div>
  488. </div>
  489. <div id="getCString-procs-all">
  490. <div id="getCString,Any">
  491. <dt><pre><span class="Keyword">proc</span> <a href="#getCString%2CAny"><span class="Identifier">getCString</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#cstring"><span class="Identifier">cstring</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>
  492. <dd>
  493. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">cstring</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">cstring</span></span></tt>.
  494. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L672" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  495. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L672" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  496. </dd>
  497. </div>
  498. </div>
  499. <div id="getEnumField-procs-all">
  500. <div id="getEnumField,Any">
  501. <dt><pre><span class="Keyword">proc</span> <a href="#getEnumField%2CAny"><span class="Identifier">getEnumField</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  502. <dd>
  503. Gets the enum field name as a string. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an enum.
  504. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L621" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  505. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L621" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  506. </dd>
  507. </div>
  508. <div id="getEnumField,Any,int">
  509. <dt><pre><span class="Keyword">proc</span> <a href="#getEnumField%2CAny%2Cint"><span class="Identifier">getEnumField</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">ordinalValue</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="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>
  510. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  511. <dd>
  512. Gets the enum field name as a string. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an enum but is only used to access the type information. The field name of <tt class="docutils literal"><span class="pre"><span class="Identifier">ordinalValue</span></span></tt> is returned.
  513. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L603" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  514. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L603" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  515. </dd>
  516. </div>
  517. </div>
  518. <div id="getEnumOrdinal-procs-all">
  519. <div id="getEnumOrdinal,Any,string">
  520. <dt><pre><span class="Keyword">proc</span> <a href="#getEnumOrdinal%2CAny%2Cstring"><span class="Identifier">getEnumOrdinal</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">name</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">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>
  521. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  522. <dd>
  523. Gets the enum field ordinal from <tt class="docutils literal"><span class="pre"><span class="Identifier">name</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an enum but is only used to access the type information. In case of an error <tt class="docutils literal"><span class="pre"><span class="Identifier">low</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span></span></tt> is returned.
  524. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L587" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  525. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L587" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  526. </dd>
  527. </div>
  528. </div>
  529. <div id="getFloat-procs-all">
  530. <div id="getFloat,Any">
  531. <dt><pre><span class="Keyword">proc</span> <a href="#getFloat%2CAny"><span class="Identifier">getFloat</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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">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>
  532. <dd>
  533. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">float</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">float</span></span></tt>.
  534. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L625" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  535. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L625" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  536. </dd>
  537. </div>
  538. </div>
  539. <div id="getFloat32-procs-all">
  540. <div id="getFloat32,Any">
  541. <dt><pre><span class="Keyword">proc</span> <a href="#getFloat32%2CAny"><span class="Identifier">getFloat32</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</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>
  542. <dd>
  543. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">float32</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">float32</span></span></tt>.
  544. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L630" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  545. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L630" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  546. </dd>
  547. </div>
  548. </div>
  549. <div id="getFloat64-procs-all">
  550. <div id="getFloat64,Any">
  551. <dt><pre><span class="Keyword">proc</span> <a href="#getFloat64%2CAny"><span class="Identifier">getFloat64</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</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>
  552. <dd>
  553. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">float64</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">float64</span></span></tt>.
  554. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L635" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  555. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L635" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  556. </dd>
  557. </div>
  558. </div>
  559. <div id="getInt-procs-all">
  560. <div id="getInt,Any">
  561. <dt><pre><span class="Keyword">proc</span> <a href="#getInt%2CAny"><span class="Identifier">getInt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  562. <dd>
  563. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt>.
  564. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L444" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  565. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L444" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  566. </dd>
  567. </div>
  568. </div>
  569. <div id="getInt8-procs-all">
  570. <div id="getInt8,Any">
  571. <dt><pre><span class="Keyword">proc</span> <a href="#getInt8%2CAny"><span class="Identifier">getInt8</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int8"><span class="Identifier">int8</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>
  572. <dd>
  573. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">int8</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an <tt class="docutils literal"><span class="pre"><span class="Identifier">int8</span></span></tt>.
  574. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L449" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  575. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L449" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  576. </dd>
  577. </div>
  578. </div>
  579. <div id="getInt16-procs-all">
  580. <div id="getInt16,Any">
  581. <dt><pre><span class="Keyword">proc</span> <a href="#getInt16%2CAny"><span class="Identifier">getInt16</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int16"><span class="Identifier">int16</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>
  582. <dd>
  583. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">int16</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an <tt class="docutils literal"><span class="pre"><span class="Identifier">int16</span></span></tt>.
  584. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L454" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  585. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L454" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  586. </dd>
  587. </div>
  588. </div>
  589. <div id="getInt32-procs-all">
  590. <div id="getInt32,Any">
  591. <dt><pre><span class="Keyword">proc</span> <a href="#getInt32%2CAny"><span class="Identifier">getInt32</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int32"><span class="Identifier">int32</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>
  592. <dd>
  593. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">int32</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an <tt class="docutils literal"><span class="pre"><span class="Identifier">int32</span></span></tt>.
  594. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L459" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  595. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L459" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  596. </dd>
  597. </div>
  598. </div>
  599. <div id="getInt64-procs-all">
  600. <div id="getInt64,Any">
  601. <dt><pre><span class="Keyword">proc</span> <a href="#getInt64%2CAny"><span class="Identifier">getInt64</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int64"><span class="Identifier">int64</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>
  602. <dd>
  603. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">int64</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an <tt class="docutils literal"><span class="pre"><span class="Identifier">int64</span></span></tt>.
  604. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L464" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  605. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L464" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  606. </dd>
  607. </div>
  608. </div>
  609. <div id="getPointer-procs-all">
  610. <div id="getPointer,Any">
  611. <dt><pre><span class="Keyword">proc</span> <a href="#getPointer%2CAny"><span class="Identifier">getPointer</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</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>
  612. <dd>
  613. Retrieves the pointer value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to be of kind <tt class="docutils literal"><span class="pre"><span class="Identifier">akString</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akCString</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akProc</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akRef</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akPtr</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akPointer</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">akSequence</span></span></tt>.
  614. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L333" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  615. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L333" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  616. </dd>
  617. </div>
  618. </div>
  619. <div id="getString-procs-all">
  620. <div id="getString,Any">
  621. <dt><pre><span class="Keyword">proc</span> <a href="#getString%2CAny"><span class="Identifier">getString</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  622. <dd>
  623. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">string</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">string</span></span></tt>.
  624. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L658" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  625. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L658" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  626. </dd>
  627. </div>
  628. </div>
  629. <div id="getUInt-procs-all">
  630. <div id="getUInt,Any">
  631. <dt><pre><span class="Keyword">proc</span> <a href="#getUInt%2CAny"><span class="Identifier">getUInt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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">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>
  632. <dd>
  633. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">uint</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">uint</span></span></tt>.
  634. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L520" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  635. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L520" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  636. </dd>
  637. </div>
  638. </div>
  639. <div id="getUInt8-procs-all">
  640. <div id="getUInt8,Any">
  641. <dt><pre><span class="Keyword">proc</span> <a href="#getUInt8%2CAny"><span class="Identifier">getUInt8</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint8"><span class="Identifier">uint8</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>
  642. <dd>
  643. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">uint8</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">uint8</span></span></tt>.
  644. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L525" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  645. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L525" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  646. </dd>
  647. </div>
  648. </div>
  649. <div id="getUInt16-procs-all">
  650. <div id="getUInt16,Any">
  651. <dt><pre><span class="Keyword">proc</span> <a href="#getUInt16%2CAny"><span class="Identifier">getUInt16</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint16"><span class="Identifier">uint16</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>
  652. <dd>
  653. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">uint16</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">uint16</span></span></tt>.
  654. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L530" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  655. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L530" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  656. </dd>
  657. </div>
  658. </div>
  659. <div id="getUInt32-procs-all">
  660. <div id="getUInt32,Any">
  661. <dt><pre><span class="Keyword">proc</span> <a href="#getUInt32%2CAny"><span class="Identifier">getUInt32</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint32"><span class="Identifier">uint32</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>
  662. <dd>
  663. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">uint32</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">uint32</span></span></tt>.
  664. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L535" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  665. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L535" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  666. </dd>
  667. </div>
  668. </div>
  669. <div id="getUInt64-procs-all">
  670. <div id="getUInt64,Any">
  671. <dt><pre><span class="Keyword">proc</span> <a href="#getUInt64%2CAny"><span class="Identifier">getUInt64</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</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>
  672. <dd>
  673. Retrieves the <tt class="docutils literal"><span class="pre"><span class="Identifier">uint64</span></span></tt> value out of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">uint64</span></span></tt>.
  674. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L540" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  675. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L540" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  676. </dd>
  677. </div>
  678. </div>
  679. <div id="inclSetElement-procs-all">
  680. <div id="inclSetElement,Any,int">
  681. <dt><pre><span class="Keyword">proc</span> <a href="#inclSetElement%2CAny%2Cint"><span class="Identifier">inclSetElement</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">elem</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">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>
  682. <dd>
  683. Includes an element <tt class="docutils literal"><span class="pre"><span class="Identifier">elem</span></span></tt> in <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a Nim bitset.
  684. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L705" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  685. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L705" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  686. </dd>
  687. </div>
  688. </div>
  689. <div id="invokeNew-procs-all">
  690. <div id="invokeNew,Any">
  691. <dt><pre><span class="Keyword">proc</span> <a href="#invokeNew%2CAny"><span class="Identifier">invokeNew</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  692. <dd>
  693. Performs <tt class="docutils literal"><span class="pre"><span class="Identifier">new</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Keyword">ref</span></span></tt>.
  694. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L192" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  695. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L192" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  696. </dd>
  697. </div>
  698. </div>
  699. <div id="invokeNewSeq-procs-all">
  700. <div id="invokeNewSeq,Any,int">
  701. <dt><pre><span class="Keyword">proc</span> <a href="#invokeNewSeq%2CAny%2Cint"><span class="Identifier">invokeNewSeq</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">len</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span> {.<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>
  702. <dd>
  703. Performs <tt class="docutils literal"><span class="pre"><span class="Identifier">newSeq</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">,</span> <span class="Identifier">len</span><span class="Punctuation">)</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">seq</span></span></tt>.
  704. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L201" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  705. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L201" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  706. </dd>
  707. </div>
  708. </div>
  709. <div id="isNil-procs-all">
  710. <div id="isNil,Any">
  711. <dt><pre><span class="Keyword">proc</span> <a href="#isNil%2CAny"><span class="Identifier">isNil</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  712. <dd>
  713. <tt class="docutils literal"><span class="pre"><span class="Identifier">isNil</span></span></tt> for an <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> that represents a cstring, proc or some pointer type.
  714. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L323" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  715. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L323" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  716. </dd>
  717. </div>
  718. </div>
  719. <div id="kind-procs-all">
  720. <div id="kind,Any">
  721. <dt><pre><span class="Keyword">proc</span> <a href="#kind%2CAny"><span class="Identifier">kind</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="typeinfo.html#AnyKind"><span class="Identifier">AnyKind</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>
  722. <dd>
  723. Gets the type kind.
  724. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L170" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  725. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L170" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  726. </dd>
  727. </div>
  728. </div>
  729. <div id="len-procs-all">
  730. <div id="len,Any">
  731. <dt><pre><span class="Keyword">proc</span> <a href="#len%2CAny"><span class="Identifier">len</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  732. <dd>
  733. <tt class="docutils literal"><span class="pre"><span class="Identifier">len</span></span></tt> for an any <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> that represents an array or a sequence.
  734. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L301" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  735. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L301" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  736. </dd>
  737. </div>
  738. </div>
  739. <div id="setBiggestFloat-procs-all">
  740. <div id="setBiggestFloat,Any,BiggestFloat">
  741. <dt><pre><span class="Keyword">proc</span> <a href="#setBiggestFloat%2CAny%2CBiggestFloat"><span class="Identifier">setBiggestFloat</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="ctypes.html#BiggestFloat"><span class="Identifier">BiggestFloat</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>
  742. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  743. <dd>
  744. Sets the float value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent some float.
  745. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L649" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  746. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L649" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  747. </dd>
  748. </div>
  749. </div>
  750. <div id="setBiggestInt-procs-all">
  751. <div id="setBiggestInt,Any,BiggestInt">
  752. <dt><pre><span class="Keyword">proc</span> <a href="#setBiggestInt%2CAny%2CBiggestInt"><span class="Identifier">setBiggestInt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="ctypes.html#BiggestInt"><span class="Identifier">BiggestInt</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>
  753. <dd>
  754. Sets the integer value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent some integer, a bool, a char, an enum or a small enough bit set.
  755. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L495" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  756. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L495" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  757. </dd>
  758. </div>
  759. </div>
  760. <div id="setBiggestUint-procs-all">
  761. <div id="setBiggestUint,Any,uint64">
  762. <dt><pre><span class="Keyword">proc</span> <a href="#setBiggestUint%2CAny%2Cuint64"><span class="Identifier">setBiggestUint</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#uint64"><span class="Identifier">uint64</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>
  763. <dd>
  764. Sets the unsigned integer value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an unsigned integer.
  765. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L557" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  766. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L557" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  767. </dd>
  768. </div>
  769. </div>
  770. <div id="setObjectRuntimeType-procs-all">
  771. <div id="setObjectRuntimeType,Any">
  772. <dt><pre><span class="Keyword">proc</span> <a href="#setObjectRuntimeType%2CAny"><span class="Identifier">setObjectRuntimeType</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  773. <dd>
  774. This needs to be called to set <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>'s runtime object type field.
  775. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L231" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  776. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L231" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  777. </dd>
  778. </div>
  779. </div>
  780. <div id="setPointer-procs-all">
  781. <div id="setPointer,Any,pointer">
  782. <dt><pre><span class="Keyword">proc</span> <a href="#setPointer%2CAny%2Cpointer"><span class="Identifier">setPointer</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#pointer"><span class="Identifier">pointer</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>
  783. <dd>
  784. Sets the pointer value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to be of kind <tt class="docutils literal"><span class="pre"><span class="Identifier">akString</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akCString</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akProc</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akRef</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akPtr</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">akPointer</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">akSequence</span></span></tt>.
  785. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L340" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  786. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L340" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  787. </dd>
  788. </div>
  789. </div>
  790. <div id="setString-procs-all">
  791. <div id="setString,Any,string">
  792. <dt><pre><span class="Keyword">proc</span> <a href="#setString%2CAny%2Cstring"><span class="Identifier">setString</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">;</span> <span class="Identifier">y</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">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>
  793. <dd>
  794. Sets the <tt class="docutils literal"><span class="pre"><span class="Identifier">string</span></span></tt> value of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">string</span></span></tt>.
  795. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L667" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  796. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L667" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  797. </dd>
  798. </div>
  799. </div>
  800. <div id="size-procs-all">
  801. <div id="size,Any">
  802. <dt><pre><span class="Keyword">proc</span> <a href="#size%2CAny"><span class="Identifier">size</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  803. <dd>
  804. Returns the size of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>'s type.
  805. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L174" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  806. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L174" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  807. </dd>
  808. </div>
  809. </div>
  810. <div id="skipRange-procs-all">
  811. <div id="skipRange,Any">
  812. <dt><pre><span class="Keyword">proc</span> <a href="#skipRange%2CAny"><span class="Identifier">skipRange</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  813. <dd>
  814. Skips the range information of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.
  815. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L581" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  816. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L581" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  817. </dd>
  818. </div>
  819. </div>
  820. <div id="toAny-procs-all">
  821. <div id="toAny,T">
  822. <dt><pre><span class="Keyword">proc</span> <a href="#toAny%2CT"><span class="Identifier">toAny</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
  823. <dd>
  824. Constructs an <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt> object from <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. This captures <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>'s address, so <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> can be modified with its <tt class="docutils literal"><span class="pre"><span class="Identifier">Any</span></span></tt> wrapper! The caller needs to ensure that the wrapper <strong>does not</strong> live longer than <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>!
  825. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L164" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  826. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L164" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  827. </dd>
  828. </div>
  829. </div>
  830. </dl>
  831. </div>
  832. <div class="section" id="15">
  833. <h1><a class="toc-backref" href="#15">Iterators</a></h1>
  834. <dl class="item">
  835. <div id="elements-iterators-all">
  836. <div id="elements.i,Any">
  837. <dt><pre><span class="Keyword">iterator</span> <a href="#elements.i%2CAny"><span class="Identifier">elements</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  838. <dd>
  839. Iterates over every element of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent a <tt class="docutils literal"><span class="pre"><span class="Identifier">set</span></span></tt>.
  840. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L683" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  841. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L683" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  842. </dd>
  843. </div>
  844. </div>
  845. <div id="fields-iterators-all">
  846. <div id="fields.i,Any">
  847. <dt><pre><span class="Keyword">iterator</span> <a href="#fields.i%2CAny"><span class="Identifier">fields</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">name</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a><span class="Other">,</span> <span class="Identifier">any</span><span class="Other">:</span> <a href="typeinfo.html#Any"><span class="Identifier">Any</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>
  848. <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
  849. <dd>
  850. Iterates over every active field of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> needs to represent an object or a tuple.
  851. <a href="https://github.com/nim-lang/Nim/tree/devel/lib/core/typeinfo.nim#L364" class="link-seesrc" target="_blank">Source</a>&nbsp;&nbsp;
  852. <a href="https://github.com/nim-lang/Nim/edit/devel/lib/core/typeinfo.nim#L364" class="link-seesrc" target="_blank" >Edit</a>&nbsp;&nbsp;
  853. </dd>
  854. </div>
  855. </div>
  856. </dl>
  857. </div>
  858. </div>
  859. </div>
  860. <div class="twelve-columns footer">
  861. <span class="nim-sprite"></span>
  862. <br>
  863. <small style="color: var(--hint);">Made with Nim. Generated: 2025-02-03 14:57:18 UTC</small>
  864. </div>
  865. </div>
  866. </div>
  867. <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
  868. </body>
  869. </html>