@itwin/core-bentley 4.0.0-dev.8 → 4.0.0-dev.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/lib/cjs/AccessToken.d.ts +10 -10
  3. package/lib/cjs/AccessToken.d.ts.map +1 -1
  4. package/lib/cjs/AccessToken.js +9 -9
  5. package/lib/cjs/AccessToken.js.map +1 -1
  6. package/lib/cjs/Assert.d.ts +25 -25
  7. package/lib/cjs/Assert.js +45 -45
  8. package/lib/cjs/Assert.js.map +1 -1
  9. package/lib/cjs/BeEvent.d.ts +81 -81
  10. package/lib/cjs/BeEvent.d.ts.map +1 -1
  11. package/lib/cjs/BeEvent.js +156 -156
  12. package/lib/cjs/BeEvent.js.map +1 -1
  13. package/lib/cjs/BeSQLite.d.ts +172 -170
  14. package/lib/cjs/BeSQLite.d.ts.map +1 -1
  15. package/lib/cjs/BeSQLite.js +185 -183
  16. package/lib/cjs/BeSQLite.js.map +1 -1
  17. package/lib/cjs/BentleyError.d.ts +378 -378
  18. package/lib/cjs/BentleyError.d.ts.map +1 -1
  19. package/lib/cjs/BentleyError.js +703 -702
  20. package/lib/cjs/BentleyError.js.map +1 -1
  21. package/lib/cjs/BentleyLoggerCategory.d.ts +11 -11
  22. package/lib/cjs/BentleyLoggerCategory.js +19 -19
  23. package/lib/cjs/BentleyLoggerCategory.js.map +1 -1
  24. package/lib/cjs/ByteStream.d.ts +110 -110
  25. package/lib/cjs/ByteStream.js +159 -159
  26. package/lib/cjs/ByteStream.js.map +1 -1
  27. package/lib/cjs/ClassUtils.d.ts +14 -14
  28. package/lib/cjs/ClassUtils.js +27 -27
  29. package/lib/cjs/ClassUtils.js.map +1 -1
  30. package/lib/cjs/Compare.d.ts +47 -47
  31. package/lib/cjs/Compare.d.ts.map +1 -1
  32. package/lib/cjs/Compare.js +75 -75
  33. package/lib/cjs/Compare.js.map +1 -1
  34. package/lib/cjs/CompressedId64Set.d.ts +134 -134
  35. package/lib/cjs/CompressedId64Set.d.ts.map +1 -1
  36. package/lib/cjs/CompressedId64Set.js +428 -428
  37. package/lib/cjs/CompressedId64Set.js.map +1 -1
  38. package/lib/cjs/Dictionary.d.ts +125 -125
  39. package/lib/cjs/Dictionary.js +203 -203
  40. package/lib/cjs/Dictionary.js.map +1 -1
  41. package/lib/cjs/Disposable.d.ts +80 -80
  42. package/lib/cjs/Disposable.d.ts.map +1 -1
  43. package/lib/cjs/Disposable.js +120 -120
  44. package/lib/cjs/Disposable.js.map +1 -1
  45. package/lib/cjs/Id.d.ts +285 -285
  46. package/lib/cjs/Id.d.ts.map +1 -1
  47. package/lib/cjs/Id.js +643 -643
  48. package/lib/cjs/Id.js.map +1 -1
  49. package/lib/cjs/IndexMap.d.ts +65 -65
  50. package/lib/cjs/IndexMap.js +91 -91
  51. package/lib/cjs/IndexMap.js.map +1 -1
  52. package/lib/cjs/JsonSchema.d.ts +77 -77
  53. package/lib/cjs/JsonSchema.d.ts.map +1 -1
  54. package/lib/cjs/JsonSchema.js +9 -9
  55. package/lib/cjs/JsonSchema.js.map +1 -1
  56. package/lib/cjs/JsonUtils.d.ts +78 -78
  57. package/lib/cjs/JsonUtils.js +151 -151
  58. package/lib/cjs/JsonUtils.js.map +1 -1
  59. package/lib/cjs/LRUMap.d.ts +129 -129
  60. package/lib/cjs/LRUMap.js +333 -333
  61. package/lib/cjs/LRUMap.js.map +1 -1
  62. package/lib/cjs/Logger.d.ts +143 -143
  63. package/lib/cjs/Logger.d.ts.map +1 -1
  64. package/lib/cjs/Logger.js +256 -258
  65. package/lib/cjs/Logger.js.map +1 -1
  66. package/lib/cjs/ObservableSet.d.ts +23 -23
  67. package/lib/cjs/ObservableSet.js +51 -51
  68. package/lib/cjs/ObservableSet.js.map +1 -1
  69. package/lib/cjs/OneAtATimeAction.d.ts +31 -31
  70. package/lib/cjs/OneAtATimeAction.js +94 -94
  71. package/lib/cjs/OneAtATimeAction.js.map +1 -1
  72. package/lib/cjs/OrderedId64Iterable.d.ts +74 -74
  73. package/lib/cjs/OrderedId64Iterable.d.ts.map +1 -1
  74. package/lib/cjs/OrderedId64Iterable.js +235 -235
  75. package/lib/cjs/OrderedId64Iterable.js.map +1 -1
  76. package/lib/cjs/OrderedSet.d.ts +40 -40
  77. package/lib/cjs/OrderedSet.js +64 -64
  78. package/lib/cjs/OrderedSet.js.map +1 -1
  79. package/lib/cjs/PriorityQueue.d.ts +70 -70
  80. package/lib/cjs/PriorityQueue.d.ts.map +1 -1
  81. package/lib/cjs/PriorityQueue.js +140 -140
  82. package/lib/cjs/PriorityQueue.js.map +1 -1
  83. package/lib/cjs/ProcessDetector.d.ts +59 -59
  84. package/lib/cjs/ProcessDetector.js +71 -71
  85. package/lib/cjs/ProcessDetector.js.map +1 -1
  86. package/lib/cjs/SortedArray.d.ts +236 -232
  87. package/lib/cjs/SortedArray.d.ts.map +1 -1
  88. package/lib/cjs/SortedArray.js +315 -303
  89. package/lib/cjs/SortedArray.js.map +1 -1
  90. package/lib/cjs/StatusCategory.d.ts +30 -30
  91. package/lib/cjs/StatusCategory.d.ts.map +1 -1
  92. package/lib/cjs/StatusCategory.js +460 -460
  93. package/lib/cjs/StatusCategory.js.map +1 -1
  94. package/lib/cjs/StringUtils.d.ts +22 -22
  95. package/lib/cjs/StringUtils.js +148 -148
  96. package/lib/cjs/StringUtils.js.map +1 -1
  97. package/lib/cjs/Time.d.ts +122 -122
  98. package/lib/cjs/Time.js +152 -152
  99. package/lib/cjs/Time.js.map +1 -1
  100. package/lib/cjs/Tracing.d.ts +43 -40
  101. package/lib/cjs/Tracing.d.ts.map +1 -1
  102. package/lib/cjs/Tracing.js +134 -130
  103. package/lib/cjs/Tracing.js.map +1 -1
  104. package/lib/cjs/TupleKeyedMap.d.ts +36 -36
  105. package/lib/cjs/TupleKeyedMap.js +102 -102
  106. package/lib/cjs/TupleKeyedMap.js.map +1 -1
  107. package/lib/cjs/TypedArrayBuilder.d.ts +155 -155
  108. package/lib/cjs/TypedArrayBuilder.d.ts.map +1 -1
  109. package/lib/cjs/TypedArrayBuilder.js +206 -208
  110. package/lib/cjs/TypedArrayBuilder.js.map +1 -1
  111. package/lib/cjs/UnexpectedErrors.d.ts +43 -43
  112. package/lib/cjs/UnexpectedErrors.d.ts.map +1 -1
  113. package/lib/cjs/UnexpectedErrors.js +68 -68
  114. package/lib/cjs/UnexpectedErrors.js.map +1 -1
  115. package/lib/cjs/UtilityTypes.d.ts +112 -96
  116. package/lib/cjs/UtilityTypes.d.ts.map +1 -1
  117. package/lib/cjs/UtilityTypes.js +40 -40
  118. package/lib/cjs/UtilityTypes.js.map +1 -1
  119. package/lib/cjs/YieldManager.d.ts +18 -18
  120. package/lib/cjs/YieldManager.js +34 -34
  121. package/lib/cjs/YieldManager.js.map +1 -1
  122. package/lib/cjs/core-bentley.d.ts +74 -74
  123. package/lib/cjs/core-bentley.js +94 -90
  124. package/lib/cjs/core-bentley.js.map +1 -1
  125. package/lib/cjs/partitionArray.d.ts +21 -21
  126. package/lib/cjs/partitionArray.js +43 -43
  127. package/lib/cjs/partitionArray.js.map +1 -1
  128. package/lib/esm/AccessToken.d.ts +10 -10
  129. package/lib/esm/AccessToken.d.ts.map +1 -1
  130. package/lib/esm/AccessToken.js +8 -8
  131. package/lib/esm/AccessToken.js.map +1 -1
  132. package/lib/esm/Assert.d.ts +25 -25
  133. package/lib/esm/Assert.js +41 -41
  134. package/lib/esm/Assert.js.map +1 -1
  135. package/lib/esm/BeEvent.d.ts +81 -81
  136. package/lib/esm/BeEvent.d.ts.map +1 -1
  137. package/lib/esm/BeEvent.js +150 -150
  138. package/lib/esm/BeEvent.js.map +1 -1
  139. package/lib/esm/BeSQLite.d.ts +172 -170
  140. package/lib/esm/BeSQLite.d.ts.map +1 -1
  141. package/lib/esm/BeSQLite.js +182 -180
  142. package/lib/esm/BeSQLite.js.map +1 -1
  143. package/lib/esm/BentleyError.d.ts +378 -378
  144. package/lib/esm/BentleyError.d.ts.map +1 -1
  145. package/lib/esm/BentleyError.js +699 -698
  146. package/lib/esm/BentleyError.js.map +1 -1
  147. package/lib/esm/BentleyLoggerCategory.d.ts +11 -11
  148. package/lib/esm/BentleyLoggerCategory.js +16 -16
  149. package/lib/esm/BentleyLoggerCategory.js.map +1 -1
  150. package/lib/esm/ByteStream.d.ts +110 -110
  151. package/lib/esm/ByteStream.js +155 -155
  152. package/lib/esm/ByteStream.js.map +1 -1
  153. package/lib/esm/ClassUtils.d.ts +14 -14
  154. package/lib/esm/ClassUtils.js +22 -22
  155. package/lib/esm/ClassUtils.js.map +1 -1
  156. package/lib/esm/Compare.d.ts +47 -47
  157. package/lib/esm/Compare.d.ts.map +1 -1
  158. package/lib/esm/Compare.js +63 -63
  159. package/lib/esm/Compare.js.map +1 -1
  160. package/lib/esm/CompressedId64Set.d.ts +134 -134
  161. package/lib/esm/CompressedId64Set.d.ts.map +1 -1
  162. package/lib/esm/CompressedId64Set.js +423 -423
  163. package/lib/esm/CompressedId64Set.js.map +1 -1
  164. package/lib/esm/Dictionary.d.ts +125 -125
  165. package/lib/esm/Dictionary.js +199 -199
  166. package/lib/esm/Dictionary.js.map +1 -1
  167. package/lib/esm/Disposable.d.ts +80 -80
  168. package/lib/esm/Disposable.d.ts.map +1 -1
  169. package/lib/esm/Disposable.js +112 -112
  170. package/lib/esm/Disposable.js.map +1 -1
  171. package/lib/esm/Id.d.ts +285 -285
  172. package/lib/esm/Id.d.ts.map +1 -1
  173. package/lib/esm/Id.js +639 -639
  174. package/lib/esm/Id.js.map +1 -1
  175. package/lib/esm/IndexMap.d.ts +65 -65
  176. package/lib/esm/IndexMap.js +86 -86
  177. package/lib/esm/IndexMap.js.map +1 -1
  178. package/lib/esm/JsonSchema.d.ts +77 -77
  179. package/lib/esm/JsonSchema.d.ts.map +1 -1
  180. package/lib/esm/JsonSchema.js +8 -8
  181. package/lib/esm/JsonSchema.js.map +1 -1
  182. package/lib/esm/JsonUtils.d.ts +78 -78
  183. package/lib/esm/JsonUtils.js +148 -148
  184. package/lib/esm/JsonUtils.js.map +1 -1
  185. package/lib/esm/LRUMap.d.ts +129 -129
  186. package/lib/esm/LRUMap.js +326 -326
  187. package/lib/esm/LRUMap.js.map +1 -1
  188. package/lib/esm/Logger.d.ts +143 -143
  189. package/lib/esm/Logger.d.ts.map +1 -1
  190. package/lib/esm/Logger.js +253 -253
  191. package/lib/esm/Logger.js.map +1 -1
  192. package/lib/esm/ObservableSet.d.ts +23 -23
  193. package/lib/esm/ObservableSet.js +47 -47
  194. package/lib/esm/ObservableSet.js.map +1 -1
  195. package/lib/esm/OneAtATimeAction.d.ts +31 -31
  196. package/lib/esm/OneAtATimeAction.js +89 -89
  197. package/lib/esm/OneAtATimeAction.js.map +1 -1
  198. package/lib/esm/OrderedId64Iterable.d.ts +74 -74
  199. package/lib/esm/OrderedId64Iterable.d.ts.map +1 -1
  200. package/lib/esm/OrderedId64Iterable.js +232 -232
  201. package/lib/esm/OrderedId64Iterable.js.map +1 -1
  202. package/lib/esm/OrderedSet.d.ts +40 -40
  203. package/lib/esm/OrderedSet.js +59 -59
  204. package/lib/esm/OrderedSet.js.map +1 -1
  205. package/lib/esm/PriorityQueue.d.ts +70 -70
  206. package/lib/esm/PriorityQueue.d.ts.map +1 -1
  207. package/lib/esm/PriorityQueue.js +136 -136
  208. package/lib/esm/PriorityQueue.js.map +1 -1
  209. package/lib/esm/ProcessDetector.d.ts +59 -59
  210. package/lib/esm/ProcessDetector.js +67 -67
  211. package/lib/esm/ProcessDetector.js.map +1 -1
  212. package/lib/esm/SortedArray.d.ts +236 -232
  213. package/lib/esm/SortedArray.d.ts.map +1 -1
  214. package/lib/esm/SortedArray.js +308 -296
  215. package/lib/esm/SortedArray.js.map +1 -1
  216. package/lib/esm/StatusCategory.d.ts +30 -30
  217. package/lib/esm/StatusCategory.d.ts.map +1 -1
  218. package/lib/esm/StatusCategory.js +455 -454
  219. package/lib/esm/StatusCategory.js.map +1 -1
  220. package/lib/esm/StringUtils.d.ts +22 -22
  221. package/lib/esm/StringUtils.js +142 -142
  222. package/lib/esm/StringUtils.js.map +1 -1
  223. package/lib/esm/Time.d.ts +122 -122
  224. package/lib/esm/Time.js +146 -146
  225. package/lib/esm/Time.js.map +1 -1
  226. package/lib/esm/Tracing.d.ts +43 -40
  227. package/lib/esm/Tracing.d.ts.map +1 -1
  228. package/lib/esm/Tracing.js +130 -126
  229. package/lib/esm/Tracing.js.map +1 -1
  230. package/lib/esm/TupleKeyedMap.d.ts +36 -36
  231. package/lib/esm/TupleKeyedMap.js +98 -98
  232. package/lib/esm/TupleKeyedMap.js.map +1 -1
  233. package/lib/esm/TypedArrayBuilder.d.ts +155 -155
  234. package/lib/esm/TypedArrayBuilder.d.ts.map +1 -1
  235. package/lib/esm/TypedArrayBuilder.js +198 -200
  236. package/lib/esm/TypedArrayBuilder.js.map +1 -1
  237. package/lib/esm/UnexpectedErrors.d.ts +43 -43
  238. package/lib/esm/UnexpectedErrors.d.ts.map +1 -1
  239. package/lib/esm/UnexpectedErrors.js +65 -64
  240. package/lib/esm/UnexpectedErrors.js.map +1 -1
  241. package/lib/esm/UtilityTypes.d.ts +112 -96
  242. package/lib/esm/UtilityTypes.d.ts.map +1 -1
  243. package/lib/esm/UtilityTypes.js +34 -34
  244. package/lib/esm/UtilityTypes.js.map +1 -1
  245. package/lib/esm/YieldManager.d.ts +18 -18
  246. package/lib/esm/YieldManager.js +30 -30
  247. package/lib/esm/YieldManager.js.map +1 -1
  248. package/lib/esm/core-bentley.d.ts +74 -74
  249. package/lib/esm/core-bentley.js +78 -78
  250. package/lib/esm/core-bentley.js.map +1 -1
  251. package/lib/esm/partitionArray.d.ts +21 -21
  252. package/lib/esm/partitionArray.js +39 -39
  253. package/lib/esm/partitionArray.js.map +1 -1
  254. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"OrderedId64Iterable.js","sourceRoot":"","sources":["../../src/OrderedId64Iterable.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Ids\r\n */\r\n\r\nimport { assert } from \"./Assert\";\r\nimport { CompressedId64Set } from \"./CompressedId64Set\";\r\nimport { Id64Array, Id64String } from \"./Id\";\r\n\r\n/** @public */\r\nexport type OrderedId64Iterable = Iterable<Id64String>;\r\n\r\n/** A collection of **valid** [[Id64String]]s sorted in ascending order by the unsigned 64-bit integer value of the Ids.\r\n * This ordering is a requirement for several groups of APIs including [[CompressedId64Set]].\r\n * When used as input to a function, duplicate Ids are ignored; when returned as a function output, no duplicates are present.\r\n * @see [[CompressedId64Set]] for a compact string representation of such an ordered collection.\r\n * @see [[OrderedId64Iterable.compare]] for a function that compares Ids based on this criterion.\r\n * @see [[OrderedId64Array]] for a mutable implementation.\r\n * @public\r\n */\r\nexport namespace OrderedId64Iterable { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** An ordered comparison of [[Id64String]]s suitable for use with sorting routines like\r\n * [Array.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) and sorted containers\r\n * like [[SortedArray]] and [[Dictionary]]. The comparison compares the 64-bit numerical values of the two Ids, returning a negative number if lhs < rhs,\r\n * a positive number if lhs > rhs, or zero if lhs == rhs.\r\n * The default string comparison is fine (and more efficient) when numerical ordering is not required; use this instead if you want e.g., \"0x100\" to be greater than \"0xf\".\r\n * @see [[OrderedId64Iterable.sortArray]] for a convenient way to sort an array of Id64Strings.\r\n */\r\n export function compare(lhs: Id64String, rhs: Id64String): number {\r\n if (lhs.length !== rhs.length)\r\n return lhs.length < rhs.length ? -1 : 1;\r\n\r\n // This is faster than localeCompare(). Unclear why there is no string.compare() - would be generally useful in\r\n // array sort functions...\r\n if (lhs !== rhs)\r\n return lhs < rhs ? -1 : 1;\r\n\r\n return 0;\r\n }\r\n\r\n /** Sort an array of [[Id64String]]s **in-place** in ascending order by their 64-bit numerical values.\r\n * @see [[OrderedId64Iterable.compare]] for the comparison routine used.\r\n * @returns the input array.\r\n * @note This function returns its input for consistency with Javascript's\r\n * [Array.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) method.\r\n * It **does not** create a **new** array.\r\n */\r\n export function sortArray(ids: Id64Array): Id64Array {\r\n ids.sort((x, y) => compare(x, y));\r\n return ids;\r\n }\r\n\r\n /** Given two ordered collections of [[Id64String]]s, determine whether they are identical sets. Duplicate Ids are ignored.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function areEqualSets(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): boolean {\r\n const leftIter = uniqueIterator(ids1);\r\n const rightIter = uniqueIterator(ids2);\r\n let leftState = leftIter.next();\r\n let rightState = rightIter.next();\r\n\r\n while (!leftState.done && !rightState.done) {\r\n const left = leftState.value;\r\n const right = rightState.value;\r\n if (0 !== compare(left, right))\r\n return false;\r\n\r\n leftState = leftIter.next();\r\n rightState = rightIter.next();\r\n }\r\n\r\n if (leftState.done && rightState.done)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /** Given an ordered collection of [[Id64String]]s, determine if it contains any Ids.\r\n * @param ids A well-formed, ordered collection of zero or more valid Ids.\r\n * @returns true if the input represents an empty set of Ids. The result is unspecified if the input does not meet the criteria for the input type.\r\n */\r\n export function isEmptySet(ids: OrderedId64Iterable | CompressedId64Set): boolean {\r\n if (typeof ids === \"string\")\r\n return \"\" === ids;\r\n\r\n return true === ids[Symbol.iterator]().next().done;\r\n }\r\n\r\n /** Given an ordered collection of [[Id64String]]s possibly containing duplicates, produce an ordered collection containing no duplicates.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function unique(ids: OrderedId64Iterable): OrderedId64Iterable {\r\n return { [Symbol.iterator]: () => uniqueIterator(ids) };\r\n }\r\n\r\n /** Given an ordered collection of [[Id64String]]s possibly containing duplicates, produce an ordered iterator over the distinct Ids, eliminating duplicates.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function* uniqueIterator(ids: OrderedId64Iterable) {\r\n const iter = ids[Symbol.iterator]();\r\n let state = iter.next();\r\n let prev: Id64String | undefined;\r\n\r\n while (!state.done) {\r\n const id = state.value;\r\n state = iter.next();\r\n if (id !== prev) {\r\n prev = id;\r\n yield id;\r\n }\r\n }\r\n }\r\n\r\n /** Given two ordered collections of [[Id64String]]s, produce a collection representing their union - i.e., the Ids that are present in either or both collections.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function union(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): OrderedId64Iterable {\r\n return { [Symbol.iterator]: () => unionIterator(ids1, ids2) };\r\n }\r\n\r\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their intersection - i.e., the Ids that are present in both collections.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function intersection(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): OrderedId64Iterable {\r\n return { [Symbol.iterator]: () => intersectionIterator(ids1, ids2) };\r\n }\r\n\r\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their difference - i.e., the Ids that are present in `ids1` but not present in `ids2`.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function difference(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): OrderedId64Iterable {\r\n return { [Symbol.iterator]: () => differenceIterator(ids1, ids2) };\r\n }\r\n\r\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their union - i.e., the Ids that are present in either or both collections.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function* unionIterator(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable) {\r\n const leftIter = ids1[Symbol.iterator]();\r\n const rightIter = ids2[Symbol.iterator]();\r\n let leftState = leftIter.next();\r\n let rightState = rightIter.next();\r\n\r\n let prev: string | undefined;\r\n while (!leftState.done || !rightState.done) {\r\n const left = leftState.done ? undefined : leftState.value;\r\n const right = rightState.done ? undefined : rightState.value;\r\n\r\n assert(undefined !== left || undefined !== right);\r\n if (undefined === left && undefined === right)\r\n break;\r\n\r\n let next: Id64String;\r\n if (undefined === left) {\r\n assert(undefined !== right);\r\n next = right;\r\n rightState = rightIter.next();\r\n } else if (undefined === right) {\r\n next = left;\r\n leftState = leftIter.next();\r\n } else {\r\n const cmp = compare(left, right);\r\n if (cmp <= 0) {\r\n next = left;\r\n leftState = leftIter.next();\r\n if (0 === cmp)\r\n rightState = rightIter.next();\r\n } else {\r\n next = right;\r\n rightState = rightIter.next();\r\n }\r\n }\r\n\r\n if (prev === next)\r\n continue;\r\n\r\n prev = next;\r\n yield next;\r\n }\r\n }\r\n\r\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their intersection - i.e., the Ids that are present in both collections.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function* intersectionIterator(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable) {\r\n const leftIter = ids1[Symbol.iterator]();\r\n const rightIter = ids2[Symbol.iterator]();\r\n let leftState = leftIter.next();\r\n let rightState = rightIter.next();\r\n\r\n let prev: string | undefined;\r\n while (!leftState.done && !rightState.done) {\r\n const left = leftState.value;\r\n leftState = leftIter.next();\r\n if (left === prev)\r\n continue;\r\n\r\n prev = left;\r\n\r\n let right = rightState.value;\r\n let cmp = compare(left, right);\r\n while (cmp > 0) {\r\n rightState = rightIter.next();\r\n if (rightState.done)\r\n return;\r\n\r\n right = rightState.value;\r\n cmp = compare(left, right);\r\n }\r\n\r\n if (0 === cmp)\r\n yield left;\r\n }\r\n }\r\n\r\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their difference - i.e., the Ids that are present in `ids1` but not present in `ids2`.\r\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\r\n */\r\n export function* differenceIterator(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable) {\r\n const leftIter = ids1[Symbol.iterator]();\r\n const rightIter = ids2[Symbol.iterator]();\r\n let leftState = leftIter.next();\r\n let rightState = rightIter.next();\r\n\r\n let prev: string | undefined;\r\n while (!leftState.done) {\r\n const left = leftState.value;\r\n leftState = leftIter.next();\r\n if (left === prev)\r\n continue;\r\n else if (rightState.done) {\r\n yield prev = left;\r\n continue;\r\n }\r\n\r\n let right = rightState.value;\r\n let cmp = compare(left, right);\r\n while (cmp > 0 && !rightState.done) {\r\n rightState = rightIter.next();\r\n if (rightState.done) {\r\n yield prev = left;\r\n continue;\r\n }\r\n\r\n right = rightState.value;\r\n cmp = compare(left, right);\r\n }\r\n\r\n if (cmp < 0)\r\n yield prev = left;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"OrderedId64Iterable.js","sourceRoot":"","sources":["../../src/OrderedId64Iterable.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Ids\n */\n\nimport { assert } from \"./Assert\";\nimport { CompressedId64Set } from \"./CompressedId64Set\";\nimport { Id64Array, Id64String } from \"./Id\";\n\n/** @public */\nexport type OrderedId64Iterable = Iterable<Id64String>;\n\n/** A collection of **valid** [[Id64String]]s sorted in ascending order by the unsigned 64-bit integer value of the Ids.\n * This ordering is a requirement for several groups of APIs including [[CompressedId64Set]].\n * When used as input to a function, duplicate Ids are ignored; when returned as a function output, no duplicates are present.\n * @see [[CompressedId64Set]] for a compact string representation of such an ordered collection.\n * @see [[OrderedId64Iterable.compare]] for a function that compares Ids based on this criterion.\n * @see [[OrderedId64Array]] for a mutable implementation.\n * @public\n */\nexport namespace OrderedId64Iterable { // eslint-disable-line @typescript-eslint/no-redeclare\n /** An ordered comparison of [[Id64String]]s suitable for use with sorting routines like\n * [Array.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) and sorted containers\n * like [[SortedArray]] and [[Dictionary]]. The comparison compares the 64-bit numerical values of the two Ids, returning a negative number if lhs < rhs,\n * a positive number if lhs > rhs, or zero if lhs == rhs.\n * The default string comparison is fine (and more efficient) when numerical ordering is not required; use this instead if you want e.g., \"0x100\" to be greater than \"0xf\".\n * @see [[OrderedId64Iterable.sortArray]] for a convenient way to sort an array of Id64Strings.\n */\n export function compare(lhs: Id64String, rhs: Id64String): number {\n if (lhs.length !== rhs.length)\n return lhs.length < rhs.length ? -1 : 1;\n\n // This is faster than localeCompare(). Unclear why there is no string.compare() - would be generally useful in\n // array sort functions...\n if (lhs !== rhs)\n return lhs < rhs ? -1 : 1;\n\n return 0;\n }\n\n /** Sort an array of [[Id64String]]s **in-place** in ascending order by their 64-bit numerical values.\n * @see [[OrderedId64Iterable.compare]] for the comparison routine used.\n * @returns the input array.\n * @note This function returns its input for consistency with Javascript's\n * [Array.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) method.\n * It **does not** create a **new** array.\n */\n export function sortArray(ids: Id64Array): Id64Array {\n ids.sort((x, y) => compare(x, y));\n return ids;\n }\n\n /** Given two ordered collections of [[Id64String]]s, determine whether they are identical sets. Duplicate Ids are ignored.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function areEqualSets(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): boolean {\n const leftIter = uniqueIterator(ids1);\n const rightIter = uniqueIterator(ids2);\n let leftState = leftIter.next();\n let rightState = rightIter.next();\n\n while (!leftState.done && !rightState.done) {\n const left = leftState.value;\n const right = rightState.value;\n if (0 !== compare(left, right))\n return false;\n\n leftState = leftIter.next();\n rightState = rightIter.next();\n }\n\n if (leftState.done && rightState.done)\n return true;\n\n return false;\n }\n\n /** Given an ordered collection of [[Id64String]]s, determine if it contains any Ids.\n * @param ids A well-formed, ordered collection of zero or more valid Ids.\n * @returns true if the input represents an empty set of Ids. The result is unspecified if the input does not meet the criteria for the input type.\n */\n export function isEmptySet(ids: OrderedId64Iterable | CompressedId64Set): boolean {\n if (typeof ids === \"string\")\n return \"\" === ids;\n\n return true === ids[Symbol.iterator]().next().done;\n }\n\n /** Given an ordered collection of [[Id64String]]s possibly containing duplicates, produce an ordered collection containing no duplicates.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function unique(ids: OrderedId64Iterable): OrderedId64Iterable {\n return { [Symbol.iterator]: () => uniqueIterator(ids) };\n }\n\n /** Given an ordered collection of [[Id64String]]s possibly containing duplicates, produce an ordered iterator over the distinct Ids, eliminating duplicates.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function* uniqueIterator(ids: OrderedId64Iterable) {\n const iter = ids[Symbol.iterator]();\n let state = iter.next();\n let prev: Id64String | undefined;\n\n while (!state.done) {\n const id = state.value;\n state = iter.next();\n if (id !== prev) {\n prev = id;\n yield id;\n }\n }\n }\n\n /** Given two ordered collections of [[Id64String]]s, produce a collection representing their union - i.e., the Ids that are present in either or both collections.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function union(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): OrderedId64Iterable {\n return { [Symbol.iterator]: () => unionIterator(ids1, ids2) };\n }\n\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their intersection - i.e., the Ids that are present in both collections.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function intersection(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): OrderedId64Iterable {\n return { [Symbol.iterator]: () => intersectionIterator(ids1, ids2) };\n }\n\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their difference - i.e., the Ids that are present in `ids1` but not present in `ids2`.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function difference(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable): OrderedId64Iterable {\n return { [Symbol.iterator]: () => differenceIterator(ids1, ids2) };\n }\n\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their union - i.e., the Ids that are present in either or both collections.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function* unionIterator(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable) {\n const leftIter = ids1[Symbol.iterator]();\n const rightIter = ids2[Symbol.iterator]();\n let leftState = leftIter.next();\n let rightState = rightIter.next();\n\n let prev: string | undefined;\n while (!leftState.done || !rightState.done) {\n const left = leftState.done ? undefined : leftState.value;\n const right = rightState.done ? undefined : rightState.value;\n\n assert(undefined !== left || undefined !== right);\n if (undefined === left && undefined === right)\n break;\n\n let next: Id64String;\n if (undefined === left) {\n assert(undefined !== right);\n next = right;\n rightState = rightIter.next();\n } else if (undefined === right) {\n next = left;\n leftState = leftIter.next();\n } else {\n const cmp = compare(left, right);\n if (cmp <= 0) {\n next = left;\n leftState = leftIter.next();\n if (0 === cmp)\n rightState = rightIter.next();\n } else {\n next = right;\n rightState = rightIter.next();\n }\n }\n\n if (prev === next)\n continue;\n\n prev = next;\n yield next;\n }\n }\n\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their intersection - i.e., the Ids that are present in both collections.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function* intersectionIterator(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable) {\n const leftIter = ids1[Symbol.iterator]();\n const rightIter = ids2[Symbol.iterator]();\n let leftState = leftIter.next();\n let rightState = rightIter.next();\n\n let prev: string | undefined;\n while (!leftState.done && !rightState.done) {\n const left = leftState.value;\n leftState = leftIter.next();\n if (left === prev)\n continue;\n\n prev = left;\n\n let right = rightState.value;\n let cmp = compare(left, right);\n while (cmp > 0) {\n rightState = rightIter.next();\n if (rightState.done)\n return;\n\n right = rightState.value;\n cmp = compare(left, right);\n }\n\n if (0 === cmp)\n yield left;\n }\n }\n\n /** Given two ordered collections of [[Id64String]]s, produce an iterator representing their difference - i.e., the Ids that are present in `ids1` but not present in `ids2`.\n * @note If the inputs are not ordered as required by [[OrderedId64Iterable]], the results are unpredictable.\n */\n export function* differenceIterator(ids1: OrderedId64Iterable, ids2: OrderedId64Iterable) {\n const leftIter = ids1[Symbol.iterator]();\n const rightIter = ids2[Symbol.iterator]();\n let leftState = leftIter.next();\n let rightState = rightIter.next();\n\n let prev: string | undefined;\n while (!leftState.done) {\n const left = leftState.value;\n leftState = leftIter.next();\n if (left === prev)\n continue;\n else if (rightState.done) {\n yield prev = left;\n continue;\n }\n\n let right = rightState.value;\n let cmp = compare(left, right);\n while (cmp > 0 && !rightState.done) {\n rightState = rightIter.next();\n if (rightState.done) {\n yield prev = left;\n continue;\n }\n\n right = rightState.value;\n cmp = compare(left, right);\n }\n\n if (cmp < 0)\n yield prev = left;\n }\n }\n}\n"]}
@@ -1,41 +1,41 @@
1
- /** @packageDocumentation
2
- * @module Collections
3
- */
4
- import { OrderedComparator } from "./Compare";
5
- import { CloneFunction, SortedArray } from "./SortedArray";
6
- /** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.
7
- * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.
8
- * Implemented in terms of [[SortedArray]].
9
- * @public
10
- */
11
- export declare class ReadonlyOrderedSet<T> implements Iterable<T> {
12
- protected readonly _array: SortedArray<T>;
13
- /** Construct a new ReadonlyOrderedSet<T>.
14
- * @param compare The function used to compare elements within the set, determining their ordering.
15
- * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
16
- */
17
- constructor(compare: OrderedComparator<T>, clone?: CloneFunction<T>);
18
- /** The number of elements in the set. */
19
- get size(): number;
20
- /** Returns true if `value` is present in the set. */
21
- has(value: T): boolean;
22
- /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */
23
- [Symbol.iterator](): Iterator<T>;
24
- }
25
- /** A mutable [[ReadonlyOrderedSet]].
26
- * @public
27
- */
28
- export declare class OrderedSet<T> extends ReadonlyOrderedSet<T> {
29
- /** Construct a new OrderedSet<T>.
30
- * @param compare The function used to compare elements within the set, determining their ordering.
31
- * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
32
- */
33
- constructor(compare: OrderedComparator<T>, clone?: CloneFunction<T>);
34
- /** Remove all elements from the set. */
35
- clear(): void;
36
- /** Add the specified element to the set. Returns this set. */
37
- add(value: T): this;
38
- /** Removes the specified element from the set. Returns `true` if the element was present. */
39
- delete(value: T): boolean;
40
- }
1
+ /** @packageDocumentation
2
+ * @module Collections
3
+ */
4
+ import { OrderedComparator } from "./Compare";
5
+ import { CloneFunction, SortedArray } from "./SortedArray";
6
+ /** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.
7
+ * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.
8
+ * Implemented in terms of [[SortedArray]].
9
+ * @public
10
+ */
11
+ export declare class ReadonlyOrderedSet<T> implements Iterable<T> {
12
+ protected readonly _array: SortedArray<T>;
13
+ /** Construct a new ReadonlyOrderedSet<T>.
14
+ * @param compare The function used to compare elements within the set, determining their ordering.
15
+ * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
16
+ */
17
+ constructor(compare: OrderedComparator<T>, clone?: CloneFunction<T>);
18
+ /** The number of elements in the set. */
19
+ get size(): number;
20
+ /** Returns true if `value` is present in the set. */
21
+ has(value: T): boolean;
22
+ /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */
23
+ [Symbol.iterator](): Iterator<T>;
24
+ }
25
+ /** A mutable [[ReadonlyOrderedSet]].
26
+ * @public
27
+ */
28
+ export declare class OrderedSet<T> extends ReadonlyOrderedSet<T> {
29
+ /** Construct a new OrderedSet<T>.
30
+ * @param compare The function used to compare elements within the set, determining their ordering.
31
+ * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
32
+ */
33
+ constructor(compare: OrderedComparator<T>, clone?: CloneFunction<T>);
34
+ /** Remove all elements from the set. */
35
+ clear(): void;
36
+ /** Add the specified element to the set. Returns this set. */
37
+ add(value: T): this;
38
+ /** Removes the specified element from the set. Returns `true` if the element was present. */
39
+ delete(value: T): boolean;
40
+ }
41
41
  //# sourceMappingURL=OrderedSet.d.ts.map
@@ -1,65 +1,65 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Collections
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.OrderedSet = exports.ReadonlyOrderedSet = void 0;
11
- const SortedArray_1 = require("./SortedArray");
12
- /** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.
13
- * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.
14
- * Implemented in terms of [[SortedArray]].
15
- * @public
16
- */
17
- class ReadonlyOrderedSet {
18
- /** Construct a new ReadonlyOrderedSet<T>.
19
- * @param compare The function used to compare elements within the set, determining their ordering.
20
- * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
21
- */
22
- constructor(compare, clone = SortedArray_1.shallowClone) {
23
- this._array = new SortedArray_1.SortedArray(compare, false, clone);
24
- }
25
- /** The number of elements in the set. */
26
- get size() {
27
- return this._array.length;
28
- }
29
- /** Returns true if `value` is present in the set. */
30
- has(value) {
31
- return -1 !== this._array.indexOf(value);
32
- }
33
- /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */
34
- [Symbol.iterator]() {
35
- return this._array[Symbol.iterator]();
36
- }
37
- }
38
- exports.ReadonlyOrderedSet = ReadonlyOrderedSet;
39
- /** A mutable [[ReadonlyOrderedSet]].
40
- * @public
41
- */
42
- class OrderedSet extends ReadonlyOrderedSet {
43
- /** Construct a new OrderedSet<T>.
44
- * @param compare The function used to compare elements within the set, determining their ordering.
45
- * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
46
- */
47
- constructor(compare, clone = SortedArray_1.shallowClone) {
48
- super(compare, clone);
49
- }
50
- /** Remove all elements from the set. */
51
- clear() {
52
- this._array.clear();
53
- }
54
- /** Add the specified element to the set. Returns this set. */
55
- add(value) {
56
- this._array.insert(value);
57
- return this;
58
- }
59
- /** Removes the specified element from the set. Returns `true` if the element was present. */
60
- delete(value) {
61
- return -1 !== this._array.remove(value);
62
- }
63
- }
64
- exports.OrderedSet = OrderedSet;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Collections
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.OrderedSet = exports.ReadonlyOrderedSet = void 0;
11
+ const SortedArray_1 = require("./SortedArray");
12
+ /** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.
13
+ * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.
14
+ * Implemented in terms of [[SortedArray]].
15
+ * @public
16
+ */
17
+ class ReadonlyOrderedSet {
18
+ /** Construct a new ReadonlyOrderedSet<T>.
19
+ * @param compare The function used to compare elements within the set, determining their ordering.
20
+ * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
21
+ */
22
+ constructor(compare, clone = SortedArray_1.shallowClone) {
23
+ this._array = new SortedArray_1.SortedArray(compare, false, clone);
24
+ }
25
+ /** The number of elements in the set. */
26
+ get size() {
27
+ return this._array.length;
28
+ }
29
+ /** Returns true if `value` is present in the set. */
30
+ has(value) {
31
+ return -1 !== this._array.indexOf(value);
32
+ }
33
+ /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */
34
+ [Symbol.iterator]() {
35
+ return this._array[Symbol.iterator]();
36
+ }
37
+ }
38
+ exports.ReadonlyOrderedSet = ReadonlyOrderedSet;
39
+ /** A mutable [[ReadonlyOrderedSet]].
40
+ * @public
41
+ */
42
+ class OrderedSet extends ReadonlyOrderedSet {
43
+ /** Construct a new OrderedSet<T>.
44
+ * @param compare The function used to compare elements within the set, determining their ordering.
45
+ * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.
46
+ */
47
+ constructor(compare, clone = SortedArray_1.shallowClone) {
48
+ super(compare, clone);
49
+ }
50
+ /** Remove all elements from the set. */
51
+ clear() {
52
+ this._array.clear();
53
+ }
54
+ /** Add the specified element to the set. Returns this set. */
55
+ add(value) {
56
+ this._array.insert(value);
57
+ return this;
58
+ }
59
+ /** Removes the specified element from the set. Returns `true` if the element was present. */
60
+ delete(value) {
61
+ return -1 !== this._array.remove(value);
62
+ }
63
+ }
64
+ exports.OrderedSet = OrderedSet;
65
65
  //# sourceMappingURL=OrderedSet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderedSet.js","sourceRoot":"","sources":["../../src/OrderedSet.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+CAAyE;AAEzE;;;;GAIG;AACH,MAAa,kBAAkB;IAG7B;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,CAAI,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,yCAAyC;IACzC,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,qDAAqD;IAC9C,GAAG,CAAC,KAAQ;QACjB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,6HAA6H;IACtH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;CACF;AAzBD,gDAyBC;AAED;;GAEG;AACH,MAAa,UAAc,SAAQ,kBAAqB;IACtD;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,wCAAwC;IACjC,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,8DAA8D;IACvD,GAAG,CAAC,KAAQ;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6FAA6F;IACtF,MAAM,CAAC,KAAQ;QACpB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AAxBD,gCAwBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Collections\r\n */\r\n\r\nimport { OrderedComparator } from \"./Compare\";\r\nimport { CloneFunction, shallowClone, SortedArray } from \"./SortedArray\";\r\n\r\n/** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.\r\n * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.\r\n * Implemented in terms of [[SortedArray]].\r\n * @public\r\n */\r\nexport class ReadonlyOrderedSet<T> implements Iterable<T> {\r\n protected readonly _array: SortedArray<T>;\r\n\r\n /** Construct a new ReadonlyOrderedSet<T>.\r\n * @param compare The function used to compare elements within the set, determining their ordering.\r\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\r\n */\r\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\r\n this._array = new SortedArray<T>(compare, false, clone);\r\n }\r\n\r\n /** The number of elements in the set. */\r\n public get size(): number {\r\n return this._array.length;\r\n }\r\n\r\n /** Returns true if `value` is present in the set. */\r\n public has(value: T): boolean {\r\n return -1 !== this._array.indexOf(value);\r\n }\r\n\r\n /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */\r\n public [Symbol.iterator](): Iterator<T> {\r\n return this._array[Symbol.iterator]();\r\n }\r\n}\r\n\r\n/** A mutable [[ReadonlyOrderedSet]].\r\n * @public\r\n */\r\nexport class OrderedSet<T> extends ReadonlyOrderedSet<T> {\r\n /** Construct a new OrderedSet<T>.\r\n * @param compare The function used to compare elements within the set, determining their ordering.\r\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\r\n */\r\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\r\n super(compare, clone);\r\n }\r\n\r\n /** Remove all elements from the set. */\r\n public clear(): void {\r\n this._array.clear();\r\n }\r\n\r\n /** Add the specified element to the set. Returns this set. */\r\n public add(value: T): this {\r\n this._array.insert(value);\r\n return this;\r\n }\r\n\r\n /** Removes the specified element from the set. Returns `true` if the element was present. */\r\n public delete(value: T): boolean {\r\n return -1 !== this._array.remove(value);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"OrderedSet.js","sourceRoot":"","sources":["../../src/OrderedSet.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,+CAAyE;AAEzE;;;;GAIG;AACH,MAAa,kBAAkB;IAG7B;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,IAAI,CAAC,MAAM,GAAG,IAAI,yBAAW,CAAI,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,yCAAyC;IACzC,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,qDAAqD;IAC9C,GAAG,CAAC,KAAQ;QACjB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,6HAA6H;IACtH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;CACF;AAzBD,gDAyBC;AAED;;GAEG;AACH,MAAa,UAAc,SAAQ,kBAAqB;IACtD;;;OAGG;IACH,YAAmB,OAA6B,EAAE,QAA0B,0BAAY;QACtF,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,wCAAwC;IACjC,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,8DAA8D;IACvD,GAAG,CAAC,KAAQ;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6FAA6F;IACtF,MAAM,CAAC,KAAQ;QACpB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AAxBD,gCAwBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Collections\n */\n\nimport { OrderedComparator } from \"./Compare\";\nimport { CloneFunction, shallowClone, SortedArray } from \"./SortedArray\";\n\n/** A read-only equivalent of `Set<T>` that maintains its elements in sorted order as specified by a comparison function.\n * Iteration returns elements in the order specified by the comparison function, as opposed to `Set` which returns elements in insertion order.\n * Implemented in terms of [[SortedArray]].\n * @public\n */\nexport class ReadonlyOrderedSet<T> implements Iterable<T> {\n protected readonly _array: SortedArray<T>;\n\n /** Construct a new ReadonlyOrderedSet<T>.\n * @param compare The function used to compare elements within the set, determining their ordering.\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\n */\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\n this._array = new SortedArray<T>(compare, false, clone);\n }\n\n /** The number of elements in the set. */\n public get size(): number {\n return this._array.length;\n }\n\n /** Returns true if `value` is present in the set. */\n public has(value: T): boolean {\n return -1 !== this._array.indexOf(value);\n }\n\n /** Iterate over the elements in sorted order (as opposed to `Set`'s iterator, which returns elements in insertion order). */\n public [Symbol.iterator](): Iterator<T> {\n return this._array[Symbol.iterator]();\n }\n}\n\n/** A mutable [[ReadonlyOrderedSet]].\n * @public\n */\nexport class OrderedSet<T> extends ReadonlyOrderedSet<T> {\n /** Construct a new OrderedSet<T>.\n * @param compare The function used to compare elements within the set, determining their ordering.\n * @param clone The function invoked to clone a new element for insertion into the set. The default implementation simply returns its input.\n */\n public constructor(compare: OrderedComparator<T>, clone: CloneFunction<T> = shallowClone) {\n super(compare, clone);\n }\n\n /** Remove all elements from the set. */\n public clear(): void {\n this._array.clear();\n }\n\n /** Add the specified element to the set. Returns this set. */\n public add(value: T): this {\n this._array.insert(value);\n return this;\n }\n\n /** Removes the specified element from the set. Returns `true` if the element was present. */\n public delete(value: T): boolean {\n return -1 !== this._array.remove(value);\n }\n}\n"]}
@@ -1,71 +1,71 @@
1
- /** @packageDocumentation
2
- * @module Collections
3
- */
4
- import { OrderedComparator } from "./Compare";
5
- import { CloneFunction } from "./SortedArray";
6
- /** @public */
7
- export declare type ComputePriorityFunction<T> = (value: T) => number;
8
- /**
9
- * A [priority queue](https://en.wikipedia.org/wiki/Priority_queue) implemented as a heap array.
10
- * The queue is ordered by an [[OrderedComparator]] function supplied by the user such that the value in the queue that compares less than all other values is always located at the front of the queue.
11
- * @public
12
- */
13
- export declare class PriorityQueue<T> implements Iterable<T> {
14
- protected _array: T[];
15
- protected readonly _compare: OrderedComparator<T>;
16
- protected readonly _clone: CloneFunction<T>;
17
- /**
18
- * Constructor
19
- * @param compare The function used to compare values in the queue. If `compare(x, y)` returns a negative value, then x is placed before y in the queue.
20
- * @param clone The function used to clone a value for insertion onto the queue. The default implementation simply returns its input.
21
- * @note If the criterion which control the result of the `compare` function changes, then [[PriorityQueue.sort]] should be used to reorder the queue according to the new criterion.
22
- */
23
- constructor(compare: OrderedComparator<T>, clone?: CloneFunction<T>);
24
- /** The number of values in the queue. */
25
- get length(): number;
26
- /** Returns true if the queue contains no values. */
27
- get isEmpty(): boolean;
28
- /** Returns an iterator over the contents of the heap suitable for use in `for-of` loops. */
29
- [Symbol.iterator](): Iterator<T>;
30
- protected _swap(a: number, b: number): void;
31
- protected _heapify(index: number): void;
32
- /**
33
- * Reorders the queue. This function should only (and *always*) be called when the criteria governing the ordering of items on the queue have changed.
34
- * For example, a priority queue containing graphics sorted by their distance from the camera would need to be reordered when the position of the camera changes.
35
- */
36
- sort(): void;
37
- /**
38
- * Pushes a value onto the queue according to the sorting criterion.
39
- * @param value The value to insert
40
- * @returns The inserted value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.
41
- */
42
- push(value: T): T;
43
- /** Pushes a value onto the back of the queue without making any attempt to enforce ordering.
44
- * After using this function, you must manually invoke sort() to ensure the queue is sorted again.
45
- * @param value The value to append
46
- * @returns The appended value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.
47
- */
48
- append(value: T): T;
49
- /** Returns the element at the front of the queue, or `undefined` if the queue is empty. */
50
- get front(): T | undefined;
51
- /**
52
- * Removes the front-most element off of the queue and returns it.
53
- * @returns The front-most element, or undefined if the queue is empty.
54
- */
55
- pop(): T | undefined;
56
- /** Removes all values from the queue. */
57
- clear(): void;
58
- /**
59
- * Removes the value at the specified index from the queue and reorders the queue.
60
- * @param index The index of the value to remove
61
- * @returns the value at the specified index, or undefined if the index is out of range.
62
- */
63
- protected _pop(index: number): T | undefined;
64
- /**
65
- * Returns the value at the specified index in the queue.
66
- * @param index The index of the value to retrieve
67
- * @returns the value at the specified index, or undefined if the index is out of range.
68
- */
69
- protected _peek(index: number): T | undefined;
70
- }
1
+ /** @packageDocumentation
2
+ * @module Collections
3
+ */
4
+ import { OrderedComparator } from "./Compare";
5
+ import { CloneFunction } from "./SortedArray";
6
+ /** @public */
7
+ export type ComputePriorityFunction<T> = (value: T) => number;
8
+ /**
9
+ * A [priority queue](https://en.wikipedia.org/wiki/Priority_queue) implemented as a heap array.
10
+ * The queue is ordered by an [[OrderedComparator]] function supplied by the user such that the value in the queue that compares less than all other values is always located at the front of the queue.
11
+ * @public
12
+ */
13
+ export declare class PriorityQueue<T> implements Iterable<T> {
14
+ protected _array: T[];
15
+ protected readonly _compare: OrderedComparator<T>;
16
+ protected readonly _clone: CloneFunction<T>;
17
+ /**
18
+ * Constructor
19
+ * @param compare The function used to compare values in the queue. If `compare(x, y)` returns a negative value, then x is placed before y in the queue.
20
+ * @param clone The function used to clone a value for insertion onto the queue. The default implementation simply returns its input.
21
+ * @note If the criterion which control the result of the `compare` function changes, then [[PriorityQueue.sort]] should be used to reorder the queue according to the new criterion.
22
+ */
23
+ constructor(compare: OrderedComparator<T>, clone?: CloneFunction<T>);
24
+ /** The number of values in the queue. */
25
+ get length(): number;
26
+ /** Returns true if the queue contains no values. */
27
+ get isEmpty(): boolean;
28
+ /** Returns an iterator over the contents of the heap suitable for use in `for-of` loops. */
29
+ [Symbol.iterator](): Iterator<T>;
30
+ protected _swap(a: number, b: number): void;
31
+ protected _heapify(index: number): void;
32
+ /**
33
+ * Reorders the queue. This function should only (and *always*) be called when the criteria governing the ordering of items on the queue have changed.
34
+ * For example, a priority queue containing graphics sorted by their distance from the camera would need to be reordered when the position of the camera changes.
35
+ */
36
+ sort(): void;
37
+ /**
38
+ * Pushes a value onto the queue according to the sorting criterion.
39
+ * @param value The value to insert
40
+ * @returns The inserted value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.
41
+ */
42
+ push(value: T): T;
43
+ /** Pushes a value onto the back of the queue without making any attempt to enforce ordering.
44
+ * After using this function, you must manually invoke sort() to ensure the queue is sorted again.
45
+ * @param value The value to append
46
+ * @returns The appended value, cloned according to the [[CloneFunction]] supplied to this queue's constructor.
47
+ */
48
+ append(value: T): T;
49
+ /** Returns the element at the front of the queue, or `undefined` if the queue is empty. */
50
+ get front(): T | undefined;
51
+ /**
52
+ * Removes the front-most element off of the queue and returns it.
53
+ * @returns The front-most element, or undefined if the queue is empty.
54
+ */
55
+ pop(): T | undefined;
56
+ /** Removes all values from the queue. */
57
+ clear(): void;
58
+ /**
59
+ * Removes the value at the specified index from the queue and reorders the queue.
60
+ * @param index The index of the value to remove
61
+ * @returns the value at the specified index, or undefined if the index is out of range.
62
+ */
63
+ protected _pop(index: number): T | undefined;
64
+ /**
65
+ * Returns the value at the specified index in the queue.
66
+ * @param index The index of the value to retrieve
67
+ * @returns the value at the specified index, or undefined if the index is out of range.
68
+ */
69
+ protected _peek(index: number): T | undefined;
70
+ }
71
71
  //# sourceMappingURL=PriorityQueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PriorityQueue.d.ts","sourceRoot":"","sources":["../../src/PriorityQueue.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAgB,MAAM,eAAe,CAAC;AAE5D,cAAc;AACd,oBAAY,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAM;IAC3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAE5C;;;;;OAKG;gBACgB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,aAAa,CAAC,CAAC,CAAgB;IAKxF,yCAAyC;IACzC,IAAW,MAAM,IAAI,MAAM,CAA+B;IAE1D,oDAAoD;IACpD,IAAW,OAAO,IAAI,OAAO,CAA8B;IAE3D,4FAA4F;IACrF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAEvC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAMpC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBvC;;;OAGG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;OAIG;IACI,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;IAmBxB;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;IAM1B,2FAA2F;IAC3F,IAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAEhC;IAED;;;OAGG;IACI,GAAG,IAAI,CAAC,GAAG,SAAS;IAI3B,yCAAyC;IAClC,KAAK,IAAI,IAAI;IAIpB;;;;OAIG;IACH,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAY5C;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;CAM9C"}
1
+ {"version":3,"file":"PriorityQueue.d.ts","sourceRoot":"","sources":["../../src/PriorityQueue.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAgB,MAAM,eAAe,CAAC;AAE5D,cAAc;AACd,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;AAE9D;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAM;IAC3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAE5C;;;;;OAKG;gBACgB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,aAAa,CAAC,CAAC,CAAgB;IAKxF,yCAAyC;IACzC,IAAW,MAAM,IAAI,MAAM,CAA+B;IAE1D,oDAAoD;IACpD,IAAW,OAAO,IAAI,OAAO,CAA8B;IAE3D,4FAA4F;IACrF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAEvC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAMpC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBvC;;;OAGG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;OAIG;IACI,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;IAmBxB;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;IAM1B,2FAA2F;IAC3F,IAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAEhC;IAED;;;OAGG;IACI,GAAG,IAAI,CAAC,GAAG,SAAS;IAI3B,yCAAyC;IAClC,KAAK,IAAI,IAAI;IAIpB;;;;OAIG;IACH,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAY5C;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;CAM9C"}