@fable-org/fable-library-ts 1.10.0 → 2.0.0-beta.2

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.
@@ -1,380 +1,380 @@
1
- import { int32 } from "./Int32.js";
2
- import { IDisposable, disposeSafe, defaultOf, toIterator, IEnumerator, getEnumerator, structuralHash, equals as equals_1, IEqualityComparer, compare, IComparer } from "./Util.js";
3
- import { class_type, TypeInfo } from "./Reflection.js";
4
- import { toArray, empty, singleton, append, enumerateWhile, delay } from "./Seq.js";
5
- import { setItem, initialize, copyTo, fill, item as item_1 } from "./Array.js";
6
- import { max } from "./Double.js";
7
- import { FSharpRef } from "./Types.js";
8
-
9
- export class Comparer$1<T> implements IComparer<T> {
10
- readonly comparison: ((arg0: T, arg1: T) => int32);
11
- constructor(comparison: ((arg0: T, arg1: T) => int32)) {
12
- this.comparison = comparison;
13
- }
14
- Compare(x: T, y: T): int32 {
15
- const _: Comparer$1<T> = this;
16
- return _.comparison(x, y) | 0;
17
- }
18
- }
19
-
20
- export function Comparer$1_$reflection(gen0: TypeInfo): TypeInfo {
21
- return class_type("System.Collections.Generic.Comparer`1", [gen0], Comparer$1);
22
- }
23
-
24
- export function Comparer$1_$ctor_47C913C<T>(comparison: ((arg0: T, arg1: T) => int32)): Comparer$1<T> {
25
- return new Comparer$1(comparison);
26
- }
27
-
28
- export function Comparer$1_get_Default<T>(): Comparer$1<T> {
29
- return Comparer$1_$ctor_47C913C<T>(compare);
30
- }
31
-
32
- export function Comparer$1_Create_47C913C<T>(comparison: ((arg0: T, arg1: T) => int32)): Comparer$1<T> {
33
- return Comparer$1_$ctor_47C913C<T>(comparison);
34
- }
35
-
36
- export function Comparer$1__Compare_5BDDA0<T>(_: Comparer$1<T>, x: T, y: T): int32 {
37
- return _.comparison(x, y);
38
- }
39
-
40
- export class EqualityComparer$1<T> implements IEqualityComparer<T> {
41
- readonly getHashCode: ((arg0: T) => int32);
42
- readonly equals: ((arg0: T, arg1: T) => boolean);
43
- constructor(equals: ((arg0: T, arg1: T) => boolean), getHashCode: ((arg0: T) => int32)) {
44
- this.equals = equals;
45
- this.getHashCode = getHashCode;
46
- }
47
- Equals(x: T, y: T): boolean {
48
- const _: EqualityComparer$1<T> = this;
49
- return _.equals(x, y);
50
- }
51
- GetHashCode(x: T): int32 {
52
- const _: EqualityComparer$1<T> = this;
53
- return _.getHashCode(x) | 0;
54
- }
55
- }
56
-
57
- export function EqualityComparer$1_$reflection(gen0: TypeInfo): TypeInfo {
58
- return class_type("System.Collections.Generic.EqualityComparer`1", [gen0], EqualityComparer$1);
59
- }
60
-
61
- export function EqualityComparer$1_$ctor_Z6EE254AB<T>(equals: ((arg0: T, arg1: T) => boolean), getHashCode: ((arg0: T) => int32)): EqualityComparer$1<T> {
62
- return new EqualityComparer$1(equals, getHashCode);
63
- }
64
-
65
- export function EqualityComparer$1_get_Default<T>(): EqualityComparer$1<T> {
66
- return EqualityComparer$1_$ctor_Z6EE254AB<T>(equals_1, structuralHash);
67
- }
68
-
69
- export function EqualityComparer$1_Create_Z6EE254AB<T>(equals: ((arg0: T, arg1: T) => boolean), getHashCode: ((arg0: T) => int32)): EqualityComparer$1<T> {
70
- return EqualityComparer$1_$ctor_Z6EE254AB<T>(equals, getHashCode);
71
- }
72
-
73
- export function EqualityComparer$1__Equals_5BDDA0<T>(_: EqualityComparer$1<T>, x: T, y: T): boolean {
74
- return _.equals(x, y);
75
- }
76
-
77
- export function EqualityComparer$1__GetHashCode_2B595<T>(_: EqualityComparer$1<T>, x: T): int32 {
78
- return _.getHashCode(x);
79
- }
80
-
81
- export class Stack$1<T> implements Iterable<T> {
82
- contents: T[];
83
- count: int32;
84
- constructor(initialContents: T[], initialCount: int32) {
85
- this.contents = initialContents;
86
- this.count = (initialCount | 0);
87
- }
88
- GetEnumerator(): IEnumerator<T> {
89
- const _: Stack$1<T> = this;
90
- return getEnumerator(delay<T>((): Iterable<T> => {
91
- let index: int32 = _.count - 1;
92
- return enumerateWhile<T>((): boolean => (index >= 0), delay<T>((): Iterable<T> => append<T>(singleton<T>(item_1(index, _.contents)), delay<T>((): Iterable<T> => {
93
- index = ((index - 1) | 0);
94
- return empty<T>();
95
- }))));
96
- }));
97
- }
98
- [Symbol.iterator](): Iterator<T> {
99
- return toIterator(getEnumerator(this));
100
- }
101
- "System.Collections.IEnumerable.GetEnumerator"(): IEnumerator<any> {
102
- const this$: Stack$1<T> = this;
103
- return getEnumerator(this$);
104
- }
105
- }
106
-
107
- export function Stack$1_$reflection(gen0: TypeInfo): TypeInfo {
108
- return class_type("System.Collections.Generic.Stack`1", [gen0], Stack$1);
109
- }
110
-
111
- function Stack$1_$ctor_Z3B4C077E<T>(initialContents: T[], initialCount: int32): Stack$1<T> {
112
- return new Stack$1(initialContents, initialCount);
113
- }
114
-
115
- export function Stack$1_$ctor_Z524259A4<T>(initialCapacity: int32): Stack$1<T> {
116
- return Stack$1_$ctor_Z3B4C077E<T>(fill(new Array(initialCapacity), 0, initialCapacity, null), 0);
117
- }
118
-
119
- export function Stack$1_$ctor<T>(): Stack$1<T> {
120
- return Stack$1_$ctor_Z524259A4<T>(4);
121
- }
122
-
123
- export function Stack$1_$ctor_BB573A<T>(xs: Iterable<T>): Stack$1<T> {
124
- const arr: T[] = Array.from(xs);
125
- return Stack$1_$ctor_Z3B4C077E<T>(arr, arr.length);
126
- }
127
-
128
- export function Stack$1__Ensure_Z524259A4<T>(_: Stack$1<T>, newSize: int32): void {
129
- const oldSize: int32 = _.contents.length | 0;
130
- if (newSize > oldSize) {
131
- const old: T[] = _.contents;
132
- _.contents = fill(new Array(max(newSize, oldSize * 2)), 0, max(newSize, oldSize * 2), null);
133
- copyTo<T>(old, 0, _.contents, 0, _.count);
134
- }
135
- }
136
-
137
- export function Stack$1__get_Count<T>(_: Stack$1<T>): int32 {
138
- return _.count;
139
- }
140
-
141
- export function Stack$1__Pop<T>(_: Stack$1<T>): T {
142
- _.count = ((_.count - 1) | 0);
143
- return item_1(_.count, _.contents);
144
- }
145
-
146
- export function Stack$1__Peek<T>(_: Stack$1<T>): T {
147
- return item_1(_.count - 1, _.contents);
148
- }
149
-
150
- export function Stack$1__Contains_2B595<T>(_: Stack$1<T>, x: T): boolean {
151
- let found = false;
152
- let i = 0;
153
- while ((i < _.count) && !found) {
154
- if (equals_1(x, item_1(i, _.contents))) {
155
- found = true;
156
- }
157
- else {
158
- i = ((i + 1) | 0);
159
- }
160
- }
161
- return found;
162
- }
163
-
164
- export function Stack$1__TryPeek_1F3DB691<T>(this$: Stack$1<T>, result: FSharpRef<T>): boolean {
165
- if (this$.count > 0) {
166
- result.contents = Stack$1__Peek<T>(this$);
167
- return true;
168
- }
169
- else {
170
- return false;
171
- }
172
- }
173
-
174
- export function Stack$1__TryPop_1F3DB691<T>(this$: Stack$1<T>, result: FSharpRef<T>): boolean {
175
- if (this$.count > 0) {
176
- result.contents = Stack$1__Pop<T>(this$);
177
- return true;
178
- }
179
- else {
180
- return false;
181
- }
182
- }
183
-
184
- export function Stack$1__Push_2B595<T>(this$: Stack$1<T>, x: T): void {
185
- Stack$1__Ensure_Z524259A4<T>(this$, this$.count + 1);
186
- this$.contents[this$.count] = x;
187
- this$.count = ((this$.count + 1) | 0);
188
- }
189
-
190
- export function Stack$1__Clear<T>(_: Stack$1<T>): void {
191
- _.count = 0;
192
- fill<T>(_.contents, 0, _.contents.length, defaultOf());
193
- }
194
-
195
- export function Stack$1__TrimExcess<T>(this$: Stack$1<T>): void {
196
- if ((this$.count / this$.contents.length) > 0.9) {
197
- Stack$1__Ensure_Z524259A4<T>(this$, this$.count);
198
- }
199
- }
200
-
201
- export function Stack$1__ToArray<T>(_: Stack$1<T>): T[] {
202
- return initialize<T>(_.count, (i: int32): T => item_1((_.count - 1) - i, _.contents));
203
- }
204
-
205
- export class Queue$1<T> implements Iterable<T> {
206
- contents: T[];
207
- count: int32;
208
- head: int32;
209
- tail: int32;
210
- constructor(initialContents: T[], initialCount: int32) {
211
- this.contents = initialContents;
212
- this.count = (initialCount | 0);
213
- this.head = 0;
214
- this.tail = (((initialCount === this.contents.length) ? 0 : initialCount) | 0);
215
- }
216
- GetEnumerator(): IEnumerator<T> {
217
- const _: Queue$1<T> = this;
218
- return getEnumerator(Queue$1__toSeq<T>(_));
219
- }
220
- [Symbol.iterator](): Iterator<T> {
221
- return toIterator(getEnumerator(this));
222
- }
223
- "System.Collections.IEnumerable.GetEnumerator"(): IEnumerator<any> {
224
- const this$: Queue$1<T> = this;
225
- return getEnumerator(this$);
226
- }
227
- }
228
-
229
- export function Queue$1_$reflection(gen0: TypeInfo): TypeInfo {
230
- return class_type("System.Collections.Generic.Queue`1", [gen0], Queue$1);
231
- }
232
-
233
- function Queue$1_$ctor_Z3B4C077E<T>(initialContents: T[], initialCount: int32): Queue$1<T> {
234
- return new Queue$1(initialContents, initialCount);
235
- }
236
-
237
- export function Queue$1_$ctor_Z524259A4<T>(initialCapacity: int32): Queue$1<T> {
238
- if (initialCapacity < 0) {
239
- throw new Error("capacity is less than 0");
240
- }
241
- return Queue$1_$ctor_Z3B4C077E<T>(fill(new Array(initialCapacity), 0, initialCapacity, null), 0);
242
- }
243
-
244
- export function Queue$1_$ctor<T>(): Queue$1<T> {
245
- return Queue$1_$ctor_Z524259A4<T>(4);
246
- }
247
-
248
- export function Queue$1_$ctor_BB573A<T>(xs: Iterable<T>): Queue$1<T> {
249
- const arr: T[] = Array.from(xs);
250
- return Queue$1_$ctor_Z3B4C077E<T>(arr, arr.length);
251
- }
252
-
253
- export function Queue$1__get_Count<T>(_: Queue$1<T>): int32 {
254
- return _.count;
255
- }
256
-
257
- export function Queue$1__Enqueue_2B595<T>(_: Queue$1<T>, value: T): void {
258
- if (_.count === Queue$1__size<T>(_)) {
259
- Queue$1__ensure_Z524259A4<T>(_, _.count + 1);
260
- }
261
- _.contents[_.tail] = value;
262
- _.tail = (((_.tail + 1) % Queue$1__size<T>(_)) | 0);
263
- _.count = ((_.count + 1) | 0);
264
- }
265
-
266
- export function Queue$1__Dequeue<T>(_: Queue$1<T>): T {
267
- if (_.count === 0) {
268
- throw new Error("Queue is empty");
269
- }
270
- const value: T = item_1(_.head, _.contents);
271
- _.head = (((_.head + 1) % Queue$1__size<T>(_)) | 0);
272
- _.count = ((_.count - 1) | 0);
273
- return value;
274
- }
275
-
276
- export function Queue$1__Peek<T>(_: Queue$1<T>): T {
277
- if (_.count === 0) {
278
- throw new Error("Queue is empty");
279
- }
280
- return item_1(_.head, _.contents);
281
- }
282
-
283
- export function Queue$1__TryDequeue_1F3DB691<T>(this$: Queue$1<T>, result: FSharpRef<T>): boolean {
284
- if (this$.count === 0) {
285
- return false;
286
- }
287
- else {
288
- result.contents = Queue$1__Dequeue<T>(this$);
289
- return true;
290
- }
291
- }
292
-
293
- export function Queue$1__TryPeek_1F3DB691<T>(this$: Queue$1<T>, result: FSharpRef<T>): boolean {
294
- if (this$.count === 0) {
295
- return false;
296
- }
297
- else {
298
- result.contents = Queue$1__Peek<T>(this$);
299
- return true;
300
- }
301
- }
302
-
303
- export function Queue$1__Contains_2B595<T>(_: Queue$1<T>, x: T): boolean {
304
- let found = false;
305
- let i = 0;
306
- while ((i < _.count) && !found) {
307
- if (equals_1(x, item_1(Queue$1__toIndex_Z524259A4<T>(_, i), _.contents))) {
308
- found = true;
309
- }
310
- else {
311
- i = ((i + 1) | 0);
312
- }
313
- }
314
- return found;
315
- }
316
-
317
- export function Queue$1__Clear<T>(_: Queue$1<T>): void {
318
- _.count = 0;
319
- _.head = 0;
320
- _.tail = 0;
321
- fill<T>(_.contents, 0, Queue$1__size<T>(_), defaultOf());
322
- }
323
-
324
- export function Queue$1__TrimExcess<T>(_: Queue$1<T>): void {
325
- if ((_.count / _.contents.length) > 0.9) {
326
- Queue$1__ensure_Z524259A4<T>(_, _.count);
327
- }
328
- }
329
-
330
- export function Queue$1__ToArray<T>(_: Queue$1<T>): T[] {
331
- return toArray<T>(Queue$1__toSeq<T>(_));
332
- }
333
-
334
- export function Queue$1__CopyTo_Z3B4C077E<T>(_: Queue$1<T>, target: T[], start: int32): void {
335
- let i: int32 = start;
336
- const enumerator: IEnumerator<T> = getEnumerator(Queue$1__toSeq<T>(_));
337
- try {
338
- while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
339
- const item: T = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
340
- setItem(target, i, item);
341
- i = ((i + 1) | 0);
342
- }
343
- }
344
- finally {
345
- disposeSafe(enumerator as IDisposable);
346
- }
347
- }
348
-
349
- export function Queue$1__size<T>(this$: Queue$1<T>): int32 {
350
- return this$.contents.length;
351
- }
352
-
353
- export function Queue$1__toIndex_Z524259A4<T>(this$: Queue$1<T>, i: int32): int32 {
354
- return (this$.head + i) % Queue$1__size<T>(this$);
355
- }
356
-
357
- export function Queue$1__ensure_Z524259A4<T>(this$: Queue$1<T>, requiredSize: int32): void {
358
- const newBuffer: T[] = fill(new Array(requiredSize), 0, requiredSize, null);
359
- if (this$.head < this$.tail) {
360
- copyTo<T>(this$.contents, this$.head, newBuffer, 0, this$.count);
361
- }
362
- else {
363
- copyTo<T>(this$.contents, this$.head, newBuffer, 0, Queue$1__size<T>(this$) - this$.head);
364
- copyTo<T>(this$.contents, 0, newBuffer, Queue$1__size<T>(this$) - this$.head, this$.tail);
365
- }
366
- this$.head = 0;
367
- this$.contents = newBuffer;
368
- this$.tail = (((this$.count === Queue$1__size<T>(this$)) ? 0 : this$.count) | 0);
369
- }
370
-
371
- export function Queue$1__toSeq<T>(this$: Queue$1<T>): Iterable<T> {
372
- return delay<T>((): Iterable<T> => {
373
- let i = 0;
374
- return enumerateWhile<T>((): boolean => (i < this$.count), delay<T>((): Iterable<T> => append<T>(singleton<T>(item_1(Queue$1__toIndex_Z524259A4<T>(this$, i), this$.contents)), delay<T>((): Iterable<T> => {
375
- i = ((i + 1) | 0);
376
- return empty<T>();
377
- }))));
378
- });
379
- }
380
-
1
+ import { int32 } from "./Int32.js";
2
+ import { IDisposable, disposeSafe, defaultOf, toIterator, IEnumerator, getEnumerator, structuralHash, equals as equals_1, IEqualityComparer, compare, IComparer } from "./Util.js";
3
+ import { class_type, TypeInfo } from "./Reflection.js";
4
+ import { toArray, empty, singleton, append, enumerateWhile, delay } from "./Seq.js";
5
+ import { setItem, initialize, copyTo, fill, item as item_1 } from "./Array.js";
6
+ import { max } from "./Double.js";
7
+ import { FSharpRef } from "./Types.js";
8
+
9
+ export class Comparer$1<T> implements IComparer<T> {
10
+ readonly comparison: ((arg0: T, arg1: T) => int32);
11
+ constructor(comparison: ((arg0: T, arg1: T) => int32)) {
12
+ this.comparison = comparison;
13
+ }
14
+ Compare(x: T, y: T): int32 {
15
+ const _: Comparer$1<T> = this;
16
+ return _.comparison(x, y) | 0;
17
+ }
18
+ }
19
+
20
+ export function Comparer$1_$reflection(gen0: TypeInfo): TypeInfo {
21
+ return class_type("System.Collections.Generic.Comparer`1", [gen0], Comparer$1);
22
+ }
23
+
24
+ export function Comparer$1_$ctor_47C913C<T>(comparison: ((arg0: T, arg1: T) => int32)): Comparer$1<T> {
25
+ return new Comparer$1(comparison);
26
+ }
27
+
28
+ export function Comparer$1_get_Default<T>(): Comparer$1<T> {
29
+ return Comparer$1_$ctor_47C913C<T>((e: T, e_1: T): int32 => (compare(e, e_1) | 0));
30
+ }
31
+
32
+ export function Comparer$1_Create_47C913C<T>(comparison: ((arg0: T, arg1: T) => int32)): Comparer$1<T> {
33
+ return Comparer$1_$ctor_47C913C<T>(comparison);
34
+ }
35
+
36
+ export function Comparer$1__Compare_5BDDA0<T>(_: Comparer$1<T>, x: T, y: T): int32 {
37
+ return _.comparison(x, y) | 0;
38
+ }
39
+
40
+ export class EqualityComparer$1<T> implements IEqualityComparer<T> {
41
+ readonly getHashCode: ((arg0: T) => int32);
42
+ readonly equals: ((arg0: T, arg1: T) => boolean);
43
+ constructor(equals: ((arg0: T, arg1: T) => boolean), getHashCode: ((arg0: T) => int32)) {
44
+ this.equals = equals;
45
+ this.getHashCode = getHashCode;
46
+ }
47
+ Equals(x: T, y: T): boolean {
48
+ const _: EqualityComparer$1<T> = this;
49
+ return _.equals(x, y);
50
+ }
51
+ GetHashCode(x: T): int32 {
52
+ const _: EqualityComparer$1<T> = this;
53
+ return _.getHashCode(x) | 0;
54
+ }
55
+ }
56
+
57
+ export function EqualityComparer$1_$reflection(gen0: TypeInfo): TypeInfo {
58
+ return class_type("System.Collections.Generic.EqualityComparer`1", [gen0], EqualityComparer$1);
59
+ }
60
+
61
+ export function EqualityComparer$1_$ctor_Z6EE254AB<T>(equals: ((arg0: T, arg1: T) => boolean), getHashCode: ((arg0: T) => int32)): EqualityComparer$1<T> {
62
+ return new EqualityComparer$1(equals, getHashCode);
63
+ }
64
+
65
+ export function EqualityComparer$1_get_Default<T>(): EqualityComparer$1<T> {
66
+ return EqualityComparer$1_$ctor_Z6EE254AB<T>(equals_1, (obj: T): int32 => (structuralHash(obj) | 0));
67
+ }
68
+
69
+ export function EqualityComparer$1_Create_Z6EE254AB<T>(equals: ((arg0: T, arg1: T) => boolean), getHashCode: ((arg0: T) => int32)): EqualityComparer$1<T> {
70
+ return EqualityComparer$1_$ctor_Z6EE254AB<T>(equals, getHashCode);
71
+ }
72
+
73
+ export function EqualityComparer$1__Equals_5BDDA0<T>(_: EqualityComparer$1<T>, x: T, y: T): boolean {
74
+ return _.equals(x, y);
75
+ }
76
+
77
+ export function EqualityComparer$1__GetHashCode_2B595<T>(_: EqualityComparer$1<T>, x: T): int32 {
78
+ return _.getHashCode(x) | 0;
79
+ }
80
+
81
+ export class Stack$1<T> implements Iterable<T> {
82
+ contents: T[];
83
+ count: int32;
84
+ constructor(initialContents: T[], initialCount: int32) {
85
+ this.contents = initialContents;
86
+ this.count = (initialCount | 0);
87
+ }
88
+ GetEnumerator(): IEnumerator<T> {
89
+ const _: Stack$1<T> = this;
90
+ return getEnumerator(delay<T>((): Iterable<T> => {
91
+ let index: int32 = _.count - 1;
92
+ return enumerateWhile<T>((): boolean => (index >= 0), delay<T>((): Iterable<T> => append<T>(singleton<T>(item_1(index, _.contents)), delay<T>((): Iterable<T> => {
93
+ index = ((index - 1) | 0);
94
+ return empty<T>();
95
+ }))));
96
+ }));
97
+ }
98
+ [Symbol.iterator](): Iterator<T> {
99
+ return toIterator(getEnumerator(this));
100
+ }
101
+ "System.Collections.IEnumerable.GetEnumerator"(): IEnumerator<any> {
102
+ const this$: Stack$1<T> = this;
103
+ return getEnumerator(this$);
104
+ }
105
+ }
106
+
107
+ export function Stack$1_$reflection(gen0: TypeInfo): TypeInfo {
108
+ return class_type("System.Collections.Generic.Stack`1", [gen0], Stack$1);
109
+ }
110
+
111
+ function Stack$1_$ctor_Z3B4C077E<T>(initialContents: T[], initialCount: int32): Stack$1<T> {
112
+ return new Stack$1(initialContents, initialCount);
113
+ }
114
+
115
+ export function Stack$1_$ctor_Z524259A4<T>(initialCapacity: int32): Stack$1<T> {
116
+ return Stack$1_$ctor_Z3B4C077E<T>(fill(new Array(initialCapacity), 0, initialCapacity, null), 0);
117
+ }
118
+
119
+ export function Stack$1_$ctor<T>(): Stack$1<T> {
120
+ return Stack$1_$ctor_Z524259A4<T>(4);
121
+ }
122
+
123
+ export function Stack$1_$ctor_BB573A<T>(xs: Iterable<T>): Stack$1<T> {
124
+ const arr: T[] = Array.from(xs);
125
+ return Stack$1_$ctor_Z3B4C077E<T>(arr, arr.length);
126
+ }
127
+
128
+ export function Stack$1__Ensure_Z524259A4<T>(_: Stack$1<T>, newSize: int32): void {
129
+ const oldSize: int32 = _.contents.length | 0;
130
+ if (newSize > oldSize) {
131
+ const old: T[] = _.contents;
132
+ _.contents = fill(new Array(max(newSize, oldSize * 2)), 0, max(newSize, oldSize * 2), null);
133
+ copyTo<T>(old, 0, _.contents, 0, _.count);
134
+ }
135
+ }
136
+
137
+ export function Stack$1__get_Count<T>(_: Stack$1<T>): int32 {
138
+ return _.count | 0;
139
+ }
140
+
141
+ export function Stack$1__Pop<T>(_: Stack$1<T>): T {
142
+ _.count = ((_.count - 1) | 0);
143
+ return item_1(_.count, _.contents);
144
+ }
145
+
146
+ export function Stack$1__Peek<T>(_: Stack$1<T>): T {
147
+ return item_1(_.count - 1, _.contents);
148
+ }
149
+
150
+ export function Stack$1__Contains_2B595<T>(_: Stack$1<T>, x: T): boolean {
151
+ let found = false;
152
+ let i = 0;
153
+ while ((i < _.count) && !found) {
154
+ if (equals_1(x, item_1(i, _.contents))) {
155
+ found = true;
156
+ }
157
+ else {
158
+ i = ((i + 1) | 0);
159
+ }
160
+ }
161
+ return found;
162
+ }
163
+
164
+ export function Stack$1__TryPeek_1F3DB691<T>(this$: Stack$1<T>, result: FSharpRef<T>): boolean {
165
+ if (this$.count > 0) {
166
+ result.contents = Stack$1__Peek<T>(this$);
167
+ return true;
168
+ }
169
+ else {
170
+ return false;
171
+ }
172
+ }
173
+
174
+ export function Stack$1__TryPop_1F3DB691<T>(this$: Stack$1<T>, result: FSharpRef<T>): boolean {
175
+ if (this$.count > 0) {
176
+ result.contents = Stack$1__Pop<T>(this$);
177
+ return true;
178
+ }
179
+ else {
180
+ return false;
181
+ }
182
+ }
183
+
184
+ export function Stack$1__Push_2B595<T>(this$: Stack$1<T>, x: T): void {
185
+ Stack$1__Ensure_Z524259A4<T>(this$, this$.count + 1);
186
+ this$.contents[this$.count] = x;
187
+ this$.count = ((this$.count + 1) | 0);
188
+ }
189
+
190
+ export function Stack$1__Clear<T>(_: Stack$1<T>): void {
191
+ _.count = 0;
192
+ fill<T>(_.contents, 0, _.contents.length, defaultOf());
193
+ }
194
+
195
+ export function Stack$1__TrimExcess<T>(this$: Stack$1<T>): void {
196
+ if ((this$.count / this$.contents.length) > 0.9) {
197
+ Stack$1__Ensure_Z524259A4<T>(this$, this$.count);
198
+ }
199
+ }
200
+
201
+ export function Stack$1__ToArray<T>(_: Stack$1<T>): T[] {
202
+ return initialize<T>(_.count, (i: int32): T => item_1((_.count - 1) - i, _.contents));
203
+ }
204
+
205
+ export class Queue$1<T> implements Iterable<T> {
206
+ contents: T[];
207
+ count: int32;
208
+ head: int32;
209
+ tail: int32;
210
+ constructor(initialContents: T[], initialCount: int32) {
211
+ this.contents = initialContents;
212
+ this.count = (initialCount | 0);
213
+ this.head = 0;
214
+ this.tail = (((initialCount === this.contents.length) ? 0 : initialCount) | 0);
215
+ }
216
+ GetEnumerator(): IEnumerator<T> {
217
+ const _: Queue$1<T> = this;
218
+ return getEnumerator(Queue$1__toSeq<T>(_));
219
+ }
220
+ [Symbol.iterator](): Iterator<T> {
221
+ return toIterator(getEnumerator(this));
222
+ }
223
+ "System.Collections.IEnumerable.GetEnumerator"(): IEnumerator<any> {
224
+ const this$: Queue$1<T> = this;
225
+ return getEnumerator(this$);
226
+ }
227
+ }
228
+
229
+ export function Queue$1_$reflection(gen0: TypeInfo): TypeInfo {
230
+ return class_type("System.Collections.Generic.Queue`1", [gen0], Queue$1);
231
+ }
232
+
233
+ function Queue$1_$ctor_Z3B4C077E<T>(initialContents: T[], initialCount: int32): Queue$1<T> {
234
+ return new Queue$1(initialContents, initialCount);
235
+ }
236
+
237
+ export function Queue$1_$ctor_Z524259A4<T>(initialCapacity: int32): Queue$1<T> {
238
+ if (initialCapacity < 0) {
239
+ throw new Error("capacity is less than 0");
240
+ }
241
+ return Queue$1_$ctor_Z3B4C077E<T>(fill(new Array(initialCapacity), 0, initialCapacity, null), 0);
242
+ }
243
+
244
+ export function Queue$1_$ctor<T>(): Queue$1<T> {
245
+ return Queue$1_$ctor_Z524259A4<T>(4);
246
+ }
247
+
248
+ export function Queue$1_$ctor_BB573A<T>(xs: Iterable<T>): Queue$1<T> {
249
+ const arr: T[] = Array.from(xs);
250
+ return Queue$1_$ctor_Z3B4C077E<T>(arr, arr.length);
251
+ }
252
+
253
+ export function Queue$1__get_Count<T>(_: Queue$1<T>): int32 {
254
+ return _.count | 0;
255
+ }
256
+
257
+ export function Queue$1__Enqueue_2B595<T>(_: Queue$1<T>, value: T): void {
258
+ if (_.count === Queue$1__size<T>(_)) {
259
+ Queue$1__ensure_Z524259A4<T>(_, _.count + 1);
260
+ }
261
+ _.contents[_.tail] = value;
262
+ _.tail = (((_.tail + 1) % Queue$1__size<T>(_)) | 0);
263
+ _.count = ((_.count + 1) | 0);
264
+ }
265
+
266
+ export function Queue$1__Dequeue<T>(_: Queue$1<T>): T {
267
+ if (_.count === 0) {
268
+ throw new Error("Queue is empty");
269
+ }
270
+ const value: T = item_1(_.head, _.contents);
271
+ _.head = (((_.head + 1) % Queue$1__size<T>(_)) | 0);
272
+ _.count = ((_.count - 1) | 0);
273
+ return value;
274
+ }
275
+
276
+ export function Queue$1__Peek<T>(_: Queue$1<T>): T {
277
+ if (_.count === 0) {
278
+ throw new Error("Queue is empty");
279
+ }
280
+ return item_1(_.head, _.contents);
281
+ }
282
+
283
+ export function Queue$1__TryDequeue_1F3DB691<T>(this$: Queue$1<T>, result: FSharpRef<T>): boolean {
284
+ if (this$.count === 0) {
285
+ return false;
286
+ }
287
+ else {
288
+ result.contents = Queue$1__Dequeue<T>(this$);
289
+ return true;
290
+ }
291
+ }
292
+
293
+ export function Queue$1__TryPeek_1F3DB691<T>(this$: Queue$1<T>, result: FSharpRef<T>): boolean {
294
+ if (this$.count === 0) {
295
+ return false;
296
+ }
297
+ else {
298
+ result.contents = Queue$1__Peek<T>(this$);
299
+ return true;
300
+ }
301
+ }
302
+
303
+ export function Queue$1__Contains_2B595<T>(_: Queue$1<T>, x: T): boolean {
304
+ let found = false;
305
+ let i = 0;
306
+ while ((i < _.count) && !found) {
307
+ if (equals_1(x, item_1(Queue$1__toIndex_Z524259A4<T>(_, i), _.contents))) {
308
+ found = true;
309
+ }
310
+ else {
311
+ i = ((i + 1) | 0);
312
+ }
313
+ }
314
+ return found;
315
+ }
316
+
317
+ export function Queue$1__Clear<T>(_: Queue$1<T>): void {
318
+ _.count = 0;
319
+ _.head = 0;
320
+ _.tail = 0;
321
+ fill<T>(_.contents, 0, Queue$1__size<T>(_), defaultOf());
322
+ }
323
+
324
+ export function Queue$1__TrimExcess<T>(_: Queue$1<T>): void {
325
+ if ((_.count / _.contents.length) > 0.9) {
326
+ Queue$1__ensure_Z524259A4<T>(_, _.count);
327
+ }
328
+ }
329
+
330
+ export function Queue$1__ToArray<T>(_: Queue$1<T>): T[] {
331
+ return toArray<T>(Queue$1__toSeq<T>(_));
332
+ }
333
+
334
+ export function Queue$1__CopyTo_Z3B4C077E<T>(_: Queue$1<T>, target: T[], start: int32): void {
335
+ let i: int32 = start;
336
+ const enumerator: IEnumerator<T> = getEnumerator(Queue$1__toSeq<T>(_));
337
+ try {
338
+ while (enumerator["System.Collections.IEnumerator.MoveNext"]()) {
339
+ const item: T = enumerator["System.Collections.Generic.IEnumerator`1.get_Current"]();
340
+ setItem(target, i, item);
341
+ i = ((i + 1) | 0);
342
+ }
343
+ }
344
+ finally {
345
+ disposeSafe(enumerator as IDisposable);
346
+ }
347
+ }
348
+
349
+ export function Queue$1__size<T>(this$: Queue$1<T>): int32 {
350
+ return this$.contents.length | 0;
351
+ }
352
+
353
+ export function Queue$1__toIndex_Z524259A4<T>(this$: Queue$1<T>, i: int32): int32 {
354
+ return ((this$.head + i) % Queue$1__size<T>(this$)) | 0;
355
+ }
356
+
357
+ export function Queue$1__ensure_Z524259A4<T>(this$: Queue$1<T>, requiredSize: int32): void {
358
+ const newBuffer: T[] = fill(new Array(requiredSize), 0, requiredSize, null);
359
+ if (this$.head < this$.tail) {
360
+ copyTo<T>(this$.contents, this$.head, newBuffer, 0, this$.count);
361
+ }
362
+ else {
363
+ copyTo<T>(this$.contents, this$.head, newBuffer, 0, Queue$1__size<T>(this$) - this$.head);
364
+ copyTo<T>(this$.contents, 0, newBuffer, Queue$1__size<T>(this$) - this$.head, this$.tail);
365
+ }
366
+ this$.head = 0;
367
+ this$.contents = newBuffer;
368
+ this$.tail = (((this$.count === Queue$1__size<T>(this$)) ? 0 : this$.count) | 0);
369
+ }
370
+
371
+ export function Queue$1__toSeq<T>(this$: Queue$1<T>): Iterable<T> {
372
+ return delay<T>((): Iterable<T> => {
373
+ let i = 0;
374
+ return enumerateWhile<T>((): boolean => (i < this$.count), delay<T>((): Iterable<T> => append<T>(singleton<T>(item_1(Queue$1__toIndex_Z524259A4<T>(this$, i), this$.contents)), delay<T>((): Iterable<T> => {
375
+ i = ((i + 1) | 0);
376
+ return empty<T>();
377
+ }))));
378
+ });
379
+ }
380
+