Nito.Collections.Deque.xml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>Nito.Collections.Deque</name>
  5. </assembly>
  6. <members>
  7. <member name="T:Nito.Collections.Deque`1">
  8. <summary>
  9. A double-ended queue (deque), which provides O(1) indexed access, O(1) removals from the front and back, amortized O(1) insertions to the front and back, and O(N) insertions and removals anywhere else (with the operations getting slower as the index approaches the middle).
  10. </summary>
  11. <typeparam name="T">The type of elements contained in the deque.</typeparam>
  12. </member>
  13. <member name="F:Nito.Collections.Deque`1.DefaultCapacity">
  14. <summary>
  15. The default capacity.
  16. </summary>
  17. </member>
  18. <member name="F:Nito.Collections.Deque`1._buffer">
  19. <summary>
  20. The circular _buffer that holds the view.
  21. </summary>
  22. </member>
  23. <member name="F:Nito.Collections.Deque`1._offset">
  24. <summary>
  25. The offset into <see cref="F:Nito.Collections.Deque`1._buffer"/> where the view begins.
  26. </summary>
  27. </member>
  28. <member name="M:Nito.Collections.Deque`1.#ctor(System.Int32)">
  29. <summary>
  30. Initializes a new instance of the <see cref="T:Nito.Collections.Deque`1"/> class with the specified capacity.
  31. </summary>
  32. <param name="capacity">The initial capacity. Must be greater than <c>0</c>.</param>
  33. </member>
  34. <member name="M:Nito.Collections.Deque`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
  35. <summary>
  36. Initializes a new instance of the <see cref="T:Nito.Collections.Deque`1"/> class with the elements from the specified collection.
  37. </summary>
  38. <param name="collection">The collection. May not be <c>null</c>.</param>
  39. </member>
  40. <member name="M:Nito.Collections.Deque`1.#ctor">
  41. <summary>
  42. Initializes a new instance of the <see cref="T:Nito.Collections.Deque`1"/> class.
  43. </summary>
  44. </member>
  45. <member name="P:Nito.Collections.Deque`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
  46. <summary>
  47. Gets a value indicating whether this list is read-only. This implementation always returns <c>false</c>.
  48. </summary>
  49. <returns>true if this list is read-only; otherwise, false.</returns>
  50. </member>
  51. <member name="P:Nito.Collections.Deque`1.Item(System.Int32)">
  52. <summary>
  53. Gets or sets the item at the specified index.
  54. </summary>
  55. <param name="index">The index of the item to get or set.</param>
  56. <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in this list.</exception>
  57. <exception cref="T:System.NotSupportedException">This property is set and the list is read-only.</exception>
  58. </member>
  59. <member name="M:Nito.Collections.Deque`1.Insert(System.Int32,`0)">
  60. <summary>
  61. Inserts an item to this list at the specified index.
  62. </summary>
  63. <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
  64. <param name="item">The object to insert into this list.</param>
  65. <exception cref="T:System.ArgumentOutOfRangeException">
  66. <paramref name="index"/> is not a valid index in this list.
  67. </exception>
  68. <exception cref="T:System.NotSupportedException">
  69. This list is read-only.
  70. </exception>
  71. </member>
  72. <member name="M:Nito.Collections.Deque`1.RemoveAt(System.Int32)">
  73. <summary>
  74. Removes the item at the specified index.
  75. </summary>
  76. <param name="index">The zero-based index of the item to remove.</param>
  77. <exception cref="T:System.ArgumentOutOfRangeException">
  78. <paramref name="index"/> is not a valid index in this list.
  79. </exception>
  80. <exception cref="T:System.NotSupportedException">
  81. This list is read-only.
  82. </exception>
  83. </member>
  84. <member name="M:Nito.Collections.Deque`1.IndexOf(`0)">
  85. <summary>
  86. Determines the index of a specific item in this list.
  87. </summary>
  88. <param name="item">The object to locate in this list.</param>
  89. <returns>The index of <paramref name="item"/> if found in this list; otherwise, -1.</returns>
  90. </member>
  91. <member name="M:Nito.Collections.Deque`1.System#Collections#Generic#ICollection{T}#Add(`0)">
  92. <summary>
  93. Adds an item to the end of this list.
  94. </summary>
  95. <param name="item">The object to add to this list.</param>
  96. <exception cref="T:System.NotSupportedException">
  97. This list is read-only.
  98. </exception>
  99. </member>
  100. <member name="M:Nito.Collections.Deque`1.System#Collections#Generic#ICollection{T}#Contains(`0)">
  101. <summary>
  102. Determines whether this list contains a specific value.
  103. </summary>
  104. <param name="item">The object to locate in this list.</param>
  105. <returns>
  106. true if <paramref name="item"/> is found in this list; otherwise, false.
  107. </returns>
  108. </member>
  109. <member name="M:Nito.Collections.Deque`1.System#Collections#Generic#ICollection{T}#CopyTo(`0[],System.Int32)">
  110. <summary>
  111. Copies the elements of this list to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
  112. </summary>
  113. <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from this slice. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
  114. <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
  115. <exception cref="T:System.ArgumentNullException">
  116. <paramref name="array"/> is null.
  117. </exception>
  118. <exception cref="T:System.ArgumentOutOfRangeException">
  119. <paramref name="arrayIndex"/> is less than 0.
  120. </exception>
  121. <exception cref="T:System.ArgumentException">
  122. <paramref name="arrayIndex"/> is equal to or greater than the length of <paramref name="array"/>.
  123. -or-
  124. The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
  125. </exception>
  126. </member>
  127. <member name="M:Nito.Collections.Deque`1.CopyToArray(System.Array,System.Int32)">
  128. <summary>
  129. Copies the deque elemens into an array. The resulting array always has all the deque elements contiguously.
  130. </summary>
  131. <param name="array">The destination array.</param>
  132. <param name="arrayIndex">The optional index in the destination array at which to begin writing.</param>
  133. </member>
  134. <member name="M:Nito.Collections.Deque`1.Remove(`0)">
  135. <summary>
  136. Removes the first occurrence of a specific object from this list.
  137. </summary>
  138. <param name="item">The object to remove from this list.</param>
  139. <returns>
  140. true if <paramref name="item"/> was successfully removed from this list; otherwise, false. This method also returns false if <paramref name="item"/> is not found in this list.
  141. </returns>
  142. <exception cref="T:System.NotSupportedException">
  143. This list is read-only.
  144. </exception>
  145. </member>
  146. <member name="M:Nito.Collections.Deque`1.GetEnumerator">
  147. <summary>
  148. Returns an enumerator that iterates through the collection.
  149. </summary>
  150. <returns>
  151. A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
  152. </returns>
  153. </member>
  154. <member name="M:Nito.Collections.Deque`1.System#Collections#IEnumerable#GetEnumerator">
  155. <summary>
  156. Returns an enumerator that iterates through a collection.
  157. </summary>
  158. <returns>
  159. An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
  160. </returns>
  161. </member>
  162. <member name="M:Nito.Collections.Deque`1.CheckNewIndexArgument(System.Int32,System.Int32)">
  163. <summary>
  164. Checks the <paramref name="index"/> argument to see if it refers to a valid insertion point in a source of a given length.
  165. </summary>
  166. <param name="sourceLength">The length of the source. This parameter is not checked for validity.</param>
  167. <param name="index">The index into the source.</param>
  168. <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index to an insertion point for the source.</exception>
  169. </member>
  170. <member name="M:Nito.Collections.Deque`1.CheckExistingIndexArgument(System.Int32,System.Int32)">
  171. <summary>
  172. Checks the <paramref name="index"/> argument to see if it refers to an existing element in a source of a given length.
  173. </summary>
  174. <param name="sourceLength">The length of the source. This parameter is not checked for validity.</param>
  175. <param name="index">The index into the source.</param>
  176. <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index to an existing element for the source.</exception>
  177. </member>
  178. <member name="M:Nito.Collections.Deque`1.CheckRangeArguments(System.Int32,System.Int32,System.Int32)">
  179. <summary>
  180. Checks the <paramref name="offset"/> and <paramref name="count"/> arguments for validity when applied to a source of a given length. Allows 0-element ranges, including a 0-element range at the end of the source.
  181. </summary>
  182. <param name="sourceLength">The length of the source. This parameter is not checked for validity.</param>
  183. <param name="offset">The index into source at which the range begins.</param>
  184. <param name="count">The number of elements in the range.</param>
  185. <exception cref="T:System.ArgumentOutOfRangeException">Either <paramref name="offset"/> or <paramref name="count"/> is less than 0.</exception>
  186. <exception cref="T:System.ArgumentException">The range [offset, offset + count) is not within the range [0, sourceLength).</exception>
  187. </member>
  188. <member name="P:Nito.Collections.Deque`1.IsEmpty">
  189. <summary>
  190. Gets a value indicating whether this instance is empty.
  191. </summary>
  192. </member>
  193. <member name="P:Nito.Collections.Deque`1.IsFull">
  194. <summary>
  195. Gets a value indicating whether this instance is at full capacity.
  196. </summary>
  197. </member>
  198. <member name="P:Nito.Collections.Deque`1.IsSplit">
  199. <summary>
  200. Gets a value indicating whether the buffer is "split" (meaning the beginning of the view is at a later index in <see cref="F:Nito.Collections.Deque`1._buffer"/> than the end).
  201. </summary>
  202. </member>
  203. <member name="P:Nito.Collections.Deque`1.Capacity">
  204. <summary>
  205. Gets or sets the capacity for this deque. This value must always be greater than zero, and this property cannot be set to a value less than <see cref="P:Nito.Collections.Deque`1.Count"/>.
  206. </summary>
  207. <exception cref="T:System.InvalidOperationException"><c>Capacity</c> cannot be set to a value less than <see cref="P:Nito.Collections.Deque`1.Count"/>.</exception>
  208. </member>
  209. <member name="P:Nito.Collections.Deque`1.Count">
  210. <summary>
  211. Gets the number of elements contained in this deque.
  212. </summary>
  213. <returns>The number of elements contained in this deque.</returns>
  214. </member>
  215. <member name="M:Nito.Collections.Deque`1.DequeIndexToBufferIndex(System.Int32)">
  216. <summary>
  217. Applies the offset to <paramref name="index"/>, resulting in a buffer index.
  218. </summary>
  219. <param name="index">The deque index.</param>
  220. <returns>The buffer index.</returns>
  221. </member>
  222. <member name="M:Nito.Collections.Deque`1.DoGetItem(System.Int32)">
  223. <summary>
  224. Gets an element at the specified view index.
  225. </summary>
  226. <param name="index">The zero-based view index of the element to get. This index is guaranteed to be valid.</param>
  227. <returns>The element at the specified index.</returns>
  228. </member>
  229. <member name="M:Nito.Collections.Deque`1.DoSetItem(System.Int32,`0)">
  230. <summary>
  231. Sets an element at the specified view index.
  232. </summary>
  233. <param name="index">The zero-based view index of the element to get. This index is guaranteed to be valid.</param>
  234. <param name="item">The element to store in the list.</param>
  235. </member>
  236. <member name="M:Nito.Collections.Deque`1.DoInsert(System.Int32,`0)">
  237. <summary>
  238. Inserts an element at the specified view index.
  239. </summary>
  240. <param name="index">The zero-based view index at which the element should be inserted. This index is guaranteed to be valid.</param>
  241. <param name="item">The element to store in the list.</param>
  242. </member>
  243. <member name="M:Nito.Collections.Deque`1.DoRemoveAt(System.Int32)">
  244. <summary>
  245. Removes an element at the specified view index.
  246. </summary>
  247. <param name="index">The zero-based view index of the element to remove. This index is guaranteed to be valid.</param>
  248. </member>
  249. <member name="M:Nito.Collections.Deque`1.PostIncrement(System.Int32)">
  250. <summary>
  251. Increments <see cref="F:Nito.Collections.Deque`1._offset"/> by <paramref name="value"/> using modulo-<see cref="P:Nito.Collections.Deque`1.Capacity"/> arithmetic.
  252. </summary>
  253. <param name="value">The value by which to increase <see cref="F:Nito.Collections.Deque`1._offset"/>. May not be negative.</param>
  254. <returns>The value of <see cref="F:Nito.Collections.Deque`1._offset"/> after it was incremented.</returns>
  255. </member>
  256. <member name="M:Nito.Collections.Deque`1.PreDecrement(System.Int32)">
  257. <summary>
  258. Decrements <see cref="F:Nito.Collections.Deque`1._offset"/> by <paramref name="value"/> using modulo-<see cref="P:Nito.Collections.Deque`1.Capacity"/> arithmetic.
  259. </summary>
  260. <param name="value">The value by which to reduce <see cref="F:Nito.Collections.Deque`1._offset"/>. May not be negative or greater than <see cref="P:Nito.Collections.Deque`1.Capacity"/>.</param>
  261. <returns>The value of <see cref="F:Nito.Collections.Deque`1._offset"/> before it was decremented.</returns>
  262. </member>
  263. <member name="M:Nito.Collections.Deque`1.DoAddToBack(`0)">
  264. <summary>
  265. Inserts a single element to the back of the view. <see cref="P:Nito.Collections.Deque`1.IsFull"/> must be false when this method is called.
  266. </summary>
  267. <param name="value">The element to insert.</param>
  268. </member>
  269. <member name="M:Nito.Collections.Deque`1.DoAddToFront(`0)">
  270. <summary>
  271. Inserts a single element to the front of the view. <see cref="P:Nito.Collections.Deque`1.IsFull"/> must be false when this method is called.
  272. </summary>
  273. <param name="value">The element to insert.</param>
  274. </member>
  275. <member name="M:Nito.Collections.Deque`1.DoRemoveFromBack">
  276. <summary>
  277. Removes and returns the last element in the view. <see cref="P:Nito.Collections.Deque`1.IsEmpty"/> must be false when this method is called.
  278. </summary>
  279. <returns>The former last element.</returns>
  280. </member>
  281. <member name="M:Nito.Collections.Deque`1.DoRemoveFromFront">
  282. <summary>
  283. Removes and returns the first element in the view. <see cref="P:Nito.Collections.Deque`1.IsEmpty"/> must be false when this method is called.
  284. </summary>
  285. <returns>The former first element.</returns>
  286. </member>
  287. <member name="M:Nito.Collections.Deque`1.DoInsertRange(System.Int32,System.Collections.Generic.IReadOnlyCollection{`0})">
  288. <summary>
  289. Inserts a range of elements into the view.
  290. </summary>
  291. <param name="index">The index into the view at which the elements are to be inserted.</param>
  292. <param name="collection">The elements to insert. The sum of <c>collection.Count</c> and <see cref="P:Nito.Collections.Deque`1.Count"/> must be less than or equal to <see cref="P:Nito.Collections.Deque`1.Capacity"/>.</param>
  293. </member>
  294. <member name="M:Nito.Collections.Deque`1.DoRemoveRange(System.Int32,System.Int32)">
  295. <summary>
  296. Removes a range of elements from the view.
  297. </summary>
  298. <param name="index">The index into the view at which the range begins.</param>
  299. <param name="collectionCount">The number of elements in the range. This must be greater than 0 and less than or equal to <see cref="P:Nito.Collections.Deque`1.Count"/>.</param>
  300. </member>
  301. <member name="M:Nito.Collections.Deque`1.EnsureCapacityForOneElement">
  302. <summary>
  303. Doubles the capacity if necessary to make room for one more element. When this method returns, <see cref="P:Nito.Collections.Deque`1.IsFull"/> is false.
  304. </summary>
  305. </member>
  306. <member name="M:Nito.Collections.Deque`1.AddToBack(`0)">
  307. <summary>
  308. Inserts a single element at the back of this deque.
  309. </summary>
  310. <param name="value">The element to insert.</param>
  311. </member>
  312. <member name="M:Nito.Collections.Deque`1.AddToFront(`0)">
  313. <summary>
  314. Inserts a single element at the front of this deque.
  315. </summary>
  316. <param name="value">The element to insert.</param>
  317. </member>
  318. <member name="M:Nito.Collections.Deque`1.InsertRange(System.Int32,System.Collections.Generic.IEnumerable{`0})">
  319. <summary>
  320. Inserts a collection of elements into this deque.
  321. </summary>
  322. <param name="index">The index at which the collection is inserted.</param>
  323. <param name="collection">The collection of elements to insert.</param>
  324. <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index to an insertion point for the source.</exception>
  325. </member>
  326. <member name="M:Nito.Collections.Deque`1.RemoveRange(System.Int32,System.Int32)">
  327. <summary>
  328. Removes a range of elements from this deque.
  329. </summary>
  330. <param name="offset">The index into the deque at which the range begins.</param>
  331. <param name="count">The number of elements to remove.</param>
  332. <exception cref="T:System.ArgumentOutOfRangeException">Either <paramref name="offset"/> or <paramref name="count"/> is less than 0.</exception>
  333. <exception cref="T:System.ArgumentException">The range [<paramref name="offset"/>, <paramref name="offset"/> + <paramref name="count"/>) is not within the range [0, <see cref="P:Nito.Collections.Deque`1.Count"/>).</exception>
  334. </member>
  335. <member name="M:Nito.Collections.Deque`1.RemoveFromBack">
  336. <summary>
  337. Removes and returns the last element of this deque.
  338. </summary>
  339. <returns>The former last element.</returns>
  340. <exception cref="T:System.InvalidOperationException">The deque is empty.</exception>
  341. </member>
  342. <member name="M:Nito.Collections.Deque`1.RemoveFromFront">
  343. <summary>
  344. Removes and returns the first element of this deque.
  345. </summary>
  346. <returns>The former first element.</returns>
  347. <exception cref="T:System.InvalidOperationException">The deque is empty.</exception>
  348. </member>
  349. <member name="M:Nito.Collections.Deque`1.Clear">
  350. <summary>
  351. Removes all items from this deque.
  352. </summary>
  353. </member>
  354. <member name="M:Nito.Collections.Deque`1.ToArray">
  355. <summary>
  356. Creates and returns a new array containing the elements in this deque.
  357. </summary>
  358. </member>
  359. </members>
  360. </doc>