ProtoBuf.Map.html 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Class: Map</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Class: Map</h1>
  17. <section>
  18. <header>
  19. <h2>
  20. <span class="ancestors"><a href="ProtoBuf.html">ProtoBuf</a>.</span>
  21. Map
  22. </h2>
  23. </header>
  24. <article>
  25. <div class="container-overview">
  26. <h4 class="name" id="Map"><span class="type-signature"></span>new Map<span class="signature">(field<span class="signature-attributes">non-null</span>, contents<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
  27. <div class="description">
  28. <p>Constructs a new Map. A Map is a container that is used to implement map
  29. fields on message objects. It closely follows the ES6 Map API; however,
  30. it is distinct because we do not want to depend on external polyfills or
  31. on ES6 itself.</p>
  32. </div>
  33. <h5>Parameters:</h5>
  34. <table class="params">
  35. <thead>
  36. <tr>
  37. <th>Name</th>
  38. <th>Type</th>
  39. <th>Attributes</th>
  40. <th class="last">Description</th>
  41. </tr>
  42. </thead>
  43. <tbody>
  44. <tr>
  45. <td class="name"><code>field</code></td>
  46. <td class="type">
  47. <span class="param-type">ProtoBuf.Reflect.Field</span>
  48. </td>
  49. <td class="attributes">
  50. </td>
  51. <td class="description last"><p>Map field</p></td>
  52. </tr>
  53. <tr>
  54. <td class="name"><code>contents</code></td>
  55. <td class="type">
  56. <span class="param-type">Object.&lt;string, *></span>
  57. </td>
  58. <td class="attributes">
  59. &lt;optional><br>
  60. </td>
  61. <td class="description last"><p>Initial contents</p></td>
  62. </tr>
  63. </tbody>
  64. </table>
  65. <dl class="details">
  66. <dt class="tag-source">Source:</dt>
  67. <dd class="tag-source"><ul class="dummy"><li>
  68. <a href="protobuf.js.html">protobuf.js</a>, <a href="protobuf.js.html#line4934">line 4934</a>
  69. </li></ul></dd>
  70. </dl>
  71. </div>
  72. <h3 class="subsection-title">Members</h3>
  73. <h4 class="name" id="field"><span class="type-signature">(non-null) </span>field<span class="type-signature"> :ProtoBuf.Reflect.Field</span></h4>
  74. <div class="description">
  75. <p>The field corresponding to this map.</p>
  76. </div>
  77. <h5>Type:</h5>
  78. <ul>
  79. <li>
  80. <span class="param-type">ProtoBuf.Reflect.Field</span>
  81. </li>
  82. </ul>
  83. <dl class="details">
  84. <dt class="tag-source">Source:</dt>
  85. <dd class="tag-source"><ul class="dummy"><li>
  86. <a href="protobuf.js.html">protobuf.js</a>, <a href="protobuf.js.html#line4942">line 4942</a>
  87. </li></ul></dd>
  88. </dl>
  89. <h4 class="name" id="keyElem"><span class="type-signature">(non-null) </span>keyElem<span class="type-signature"> :<a href="ProtoBuf.Reflect.Element.html">ProtoBuf.Reflect.Element</a></span></h4>
  90. <div class="description">
  91. <p>Element instance corresponding to key type.</p>
  92. </div>
  93. <h5>Type:</h5>
  94. <ul>
  95. <li>
  96. <span class="param-type"><a href="ProtoBuf.Reflect.Element.html">ProtoBuf.Reflect.Element</a></span>
  97. </li>
  98. </ul>
  99. <dl class="details">
  100. <dt class="tag-source">Source:</dt>
  101. <dd class="tag-source"><ul class="dummy"><li>
  102. <a href="protobuf.js.html">protobuf.js</a>, <a href="protobuf.js.html#line4948">line 4948</a>
  103. </li></ul></dd>
  104. </dl>
  105. <h4 class="name" id="map"><span class="type-signature">(non-null) </span>map<span class="type-signature"> :Object.&lt;string, {key: *, value: *}></span></h4>
  106. <div class="description">
  107. <p>Internal map: stores mapping of (string form of key) -&gt; (key, value)
  108. pair.</p>
  109. <p>We provide map semantics for arbitrary key types, but we build on top
  110. of an Object, which has only string keys. In order to avoid the need
  111. to convert a string key back to its native type in many situations,
  112. we store the native key value alongside the value. Thus, we only need
  113. a one-way mapping from a key type to its string form that guarantees
  114. uniqueness and equality (i.e., str(K1) === str(K2) if and only if K1
  115. === K2).</p>
  116. </div>
  117. <h5>Type:</h5>
  118. <ul>
  119. <li>
  120. <span class="param-type">Object.&lt;string, {key: *, value: *}></span>
  121. </li>
  122. </ul>
  123. <dl class="details">
  124. <dt class="tag-source">Source:</dt>
  125. <dd class="tag-source"><ul class="dummy"><li>
  126. <a href="protobuf.js.html">protobuf.js</a>, <a href="protobuf.js.html#line4970">line 4970</a>
  127. </li></ul></dd>
  128. </dl>
  129. <h4 class="name" id="valueElem"><span class="type-signature">(non-null) </span>valueElem<span class="type-signature"> :<a href="ProtoBuf.Reflect.Element.html">ProtoBuf.Reflect.Element</a></span></h4>
  130. <div class="description">
  131. <p>Element instance corresponding to value type.</p>
  132. </div>
  133. <h5>Type:</h5>
  134. <ul>
  135. <li>
  136. <span class="param-type"><a href="ProtoBuf.Reflect.Element.html">ProtoBuf.Reflect.Element</a></span>
  137. </li>
  138. </ul>
  139. <dl class="details">
  140. <dt class="tag-source">Source:</dt>
  141. <dd class="tag-source"><ul class="dummy"><li>
  142. <a href="protobuf.js.html">protobuf.js</a>, <a href="protobuf.js.html#line4954">line 4954</a>
  143. </li></ul></dd>
  144. </dl>
  145. </article>
  146. </section>
  147. </div>
  148. <nav>
  149. <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ProtoBuf.Builder.html">Builder</a></li><li><a href="ProtoBuf.Builder.Message.html">Message</a></li><li><a href="ProtoBuf.Builder.Service.html">Service</a></li><li><a href="ProtoBuf.DotProto.Parser.html">Parser</a></li><li><a href="ProtoBuf.DotProto.Tokenizer.html">Tokenizer</a></li><li><a href="ProtoBuf.Map.html">Map</a></li><li><a href="ProtoBuf.Reflect.Element.html">Element</a></li><li><a href="ProtoBuf.Reflect.Enum.html">Enum</a></li><li><a href="ProtoBuf.Reflect.Enum.Value.html">Value</a></li><li><a href="ProtoBuf.Reflect.Extension.html">Extension</a></li><li><a href="ProtoBuf.Reflect.Message.html">Message</a></li><li><a href="ProtoBuf.Reflect.Message.ExtensionField.html">ExtensionField</a></li><li><a href="ProtoBuf.Reflect.Message.Field.html">Field</a></li><li><a href="ProtoBuf.Reflect.Message.OneOf.html">OneOf</a></li><li><a href="ProtoBuf.Reflect.Namespace.html">Namespace</a></li><li><a href="ProtoBuf.Reflect.Service.html">Service</a></li><li><a href="ProtoBuf.Reflect.Service.Method.html">Method</a></li><li><a href="ProtoBuf.Reflect.Service.RPCMethod.html">RPCMethod</a></li><li><a href="ProtoBuf.Reflect.T.html">T</a></li></ul><h3>Namespaces</h3><ul><li><a href="ProtoBuf.html">ProtoBuf</a></li><li><a href="ProtoBuf.DotProto.html">DotProto</a></li><li><a href="ProtoBuf.Reflect.html">Reflect</a></li><li><a href="ProtoBuf.Util.html">Util</a></li></ul>
  150. </nav>
  151. <br class="clear">
  152. <footer>
  153. Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.3</a> on Fri Jan 27 2017 17:03:55 GMT+0100 (Mitteleuropäische Zeit)
  154. </footer>
  155. <script> prettyPrint(); </script>
  156. <script src="scripts/linenumber.js"> </script>
  157. </body>
  158. </html>