You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					82 lines
				
				2.4 KiB
			
		
		
			
		
	
	
					82 lines
				
				2.4 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Mnemonist Vector Typings
							 | 
						||
| 
								 | 
							
								 * =========================
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								import {IArrayLikeConstructor} from './utils/types';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								type VectorOptions = {
							 | 
						||
| 
								 | 
							
								  initialLength?: number;
							 | 
						||
| 
								 | 
							
								  initialCapacity?: number;
							 | 
						||
| 
								 | 
							
								  policy?: (capacity: number) => number;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default class Vector implements Iterable<number> {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Members
							 | 
						||
| 
								 | 
							
								  capacity: number;
							 | 
						||
| 
								 | 
							
								  length: number;
							 | 
						||
| 
								 | 
							
								  size: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Constructor
							 | 
						||
| 
								 | 
							
								  constructor(ArrayClass: IArrayLikeConstructor, length: number | VectorOptions);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Methods
							 | 
						||
| 
								 | 
							
								  clear(): void;
							 | 
						||
| 
								 | 
							
								  set(index: number, value: number): this;
							 | 
						||
| 
								 | 
							
								  reallocate(capacity: number): this;
							 | 
						||
| 
								 | 
							
								  grow(capacity?: number): this;
							 | 
						||
| 
								 | 
							
								  resize(length: number): this;
							 | 
						||
| 
								 | 
							
								  push(value: number): number;
							 | 
						||
| 
								 | 
							
								  pop(): number | undefined;
							 | 
						||
| 
								 | 
							
								  get(index: number): number;
							 | 
						||
| 
								 | 
							
								  forEach(callback: (index: number, value: number, set: this) => void, scope?: any): void;
							 | 
						||
| 
								 | 
							
								  values(): IterableIterator<number>;
							 | 
						||
| 
								 | 
							
								  entries(): IterableIterator<[number, number]>;
							 | 
						||
| 
								 | 
							
								  [Symbol.iterator](): IterableIterator<number>;
							 | 
						||
| 
								 | 
							
								  inspect(): any;
							 | 
						||
| 
								 | 
							
								  toJSON(): any;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Statics
							 | 
						||
| 
								 | 
							
								  static from<I>(iterable: Iterable<I> | {[key: string]: I}, ArrayClass: IArrayLikeConstructor, capacity?: number): Vector;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare class TypedVector implements Iterable<number> {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Members
							 | 
						||
| 
								 | 
							
								  capacity: number;
							 | 
						||
| 
								 | 
							
								  length: number;
							 | 
						||
| 
								 | 
							
								  size: number;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Constructor
							 | 
						||
| 
								 | 
							
								  constructor(length: number | VectorOptions);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Methods
							 | 
						||
| 
								 | 
							
								  clear(): void;
							 | 
						||
| 
								 | 
							
								  set(index: number, value: number): this;
							 | 
						||
| 
								 | 
							
								  reallocate(capacity: number): this;
							 | 
						||
| 
								 | 
							
								  grow(capacity?: number): this;
							 | 
						||
| 
								 | 
							
								  resize(length: number): this;
							 | 
						||
| 
								 | 
							
								  push(value: number): number;
							 | 
						||
| 
								 | 
							
								  pop(): number | undefined;
							 | 
						||
| 
								 | 
							
								  get(index: number): number;
							 | 
						||
| 
								 | 
							
								  forEach(callback: (index: number, value: number, set: this) => void, scope?: any): void;
							 | 
						||
| 
								 | 
							
								  values(): IterableIterator<number>;
							 | 
						||
| 
								 | 
							
								  entries(): IterableIterator<[number, number]>;
							 | 
						||
| 
								 | 
							
								  [Symbol.iterator](): IterableIterator<number>;
							 | 
						||
| 
								 | 
							
								  inspect(): any;
							 | 
						||
| 
								 | 
							
								  toJSON(): any;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Statics
							 | 
						||
| 
								 | 
							
								  static from<I>(iterable: Iterable<I> | {[key: string]: I}, capacity?: number): TypedVector;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export class Int8Vector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Uint8Vector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Uint8ClampedVector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Int16Vector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Uint16Vector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Int32Vector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Uint32Vector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Float32Vector extends TypedVector {}
							 | 
						||
| 
								 | 
							
								export class Float64Array extends TypedVector {}
							 |