20
20
21
21
/// <reference types="@stdlib/types"/>
22
22
23
- import { Collection } from '@stdlib/types/object ' ;
23
+ import { Collection } from '@stdlib/types/array ' ;
24
24
25
25
/**
26
26
* Add-on function.
@@ -38,7 +38,7 @@ import { Collection } from '@stdlib/types/object';
38
38
* // Call into native add-on...
39
39
* }
40
40
*/
41
- type AddonFcn = ( N : number , dtypeX : number , x : Collection , strideX : number , dtypeY : number , y : Collection , strideY : number ) => any ; // tslint:disable-line:max-line-length
41
+ type AddonFcn < T , U , V > = ( N : number , dtypeX : number , x : Collection < T > , strideX : number , dtypeY : number , y : Collection < U > , strideY : number ) => V ;
42
42
43
43
/**
44
44
* Fallback function.
@@ -56,7 +56,7 @@ type AddonFcn = ( N: number, dtypeX: number, x: Collection, strideX: number, dty
56
56
* // Fallback JavaScript implementation...
57
57
* }
58
58
*/
59
- type FallbackFcn = ( N : number , dtypeX : any , x : Collection , strideX : number , dtypeY : any , y : Collection , strideY : number ) => any ; // tslint:disable-line:max-line-length
59
+ type FallbackFcn < T , U , V > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , dtypeY : any , y : Collection < U > , strideY : number ) => V ;
60
60
61
61
/**
62
62
* Fallback function supporting alternative indexing semantics.
@@ -76,7 +76,7 @@ type FallbackFcn = ( N: number, dtypeX: any, x: Collection, strideX: number, dty
76
76
* // Fallback JavaScript implementation...
77
77
* }
78
78
*/
79
- type FallbackFcnWithOffsets = ( N : number , dtypeX : any , x : Collection , strideX : number , offsetX : number , dtypeY : any , y : Collection , strideY : number , offsetY : number ) => any ; // tslint:disable-line:max-line-length
79
+ type FallbackFcnWithOffsets < T , U , V > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , offsetX : number , dtypeY : any , y : Collection < U > , strideY : number , offsetY : number ) => V ;
80
80
81
81
/**
82
82
* Dispatches to a native add-on.
@@ -90,7 +90,7 @@ type FallbackFcnWithOffsets = ( N: number, dtypeX: any, x: Collection, strideX:
90
90
* @param strideY - `y` stride length
91
91
* @returns `y`
92
92
*/
93
- type Dispatcher = ( N : number , dtypeX : any , x : Collection , strideX : number , dtypeY : any , y : Collection , strideY : number ) => Collection ; // tslint:disable-line:max-line-length
93
+ type Dispatcher < T , U > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , dtypeY : any , y : Collection < U > , strideY : number ) => Collection < U > ;
94
94
95
95
/**
96
96
* Dispatches to a native add-on.
@@ -106,7 +106,7 @@ type Dispatcher = ( N: number, dtypeX: any, x: Collection, strideX: number, dtyp
106
106
* @param offsetY - starting `y` index
107
107
* @returns `y`
108
108
*/
109
- type DispatcherWithOffsets = ( N : number , dtypeX : any , x : Collection , strideX : number , offsetX : number , dtypeY : any , y : Collection , strideY : number , offsetY : number ) => Collection ; // tslint:disable-line:max-line-length
109
+ type DispatcherWithOffsets < T , U > = ( N : number , dtypeX : any , x : Collection < T > , strideX : number , offsetX : number , dtypeY : any , y : Collection < U > , strideY : number , offsetY : number ) => Collection < U > ;
110
110
111
111
/**
112
112
* Interface for creating a native add-on dispatcher.
@@ -136,7 +136,7 @@ interface Dispatch {
136
136
* // Invoke the dispatch function with strided array arguments:
137
137
* f( 2, 'generic', [ 1, 2 ], 1, 'generic', [ 0, 0 ], 1 );
138
138
*/
139
- ( addon : AddonFcn , fallback : FallbackFcn ) : Dispatcher ;
139
+ < T = unknown , U = unknown , V = unknown > ( addon : AddonFcn < T , U , V > , fallback : FallbackFcn < T , U , V > ) : Dispatcher < T , U > ;
140
140
141
141
/**
142
142
* Returns a function which dispatches to a native add-on applying a unary function to an input strided array using alternative indexing semantics.
@@ -162,7 +162,7 @@ interface Dispatch {
162
162
* // Invoke the dispatch function with strided array arguments:
163
163
* f( 2, 'generic', [ 1, 2 ], 1, 0, 'generic', [ 0, 0 ], 1, 0 );
164
164
*/
165
- ndarray ( addon : AddonFcn , fallback : FallbackFcnWithOffsets ) : DispatcherWithOffsets ; // tslint:disable-line:max-line-length
165
+ ndarray < T = unknown , U = unknown , V = unknown > ( addon : AddonFcn < T , U , V > , fallback : FallbackFcnWithOffsets < T , U , V > ) : DispatcherWithOffsets < T , U > ;
166
166
}
167
167
168
168
/**
0 commit comments