mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
Add "ref-array" module
This commit is contained in:
parent
450abc694d
commit
1bcbd4e538
@ -3,6 +3,8 @@
|
||||
import ffi = require('ffi');
|
||||
import ref = require('ref');
|
||||
import Struct = require('ref-struct');
|
||||
import Union = require('ref-union');
|
||||
import TArray = require('ref-array');
|
||||
|
||||
{
|
||||
var sqlite3 = ref.types.void;
|
||||
@ -77,3 +79,27 @@ import Struct = require('ref-struct');
|
||||
var ST = Struct();
|
||||
var test: ffi.Type = ST.fields['t'].type;
|
||||
}
|
||||
{
|
||||
var CharArray = TArray('char');
|
||||
var b = new Buffer('hello', 'ascii');
|
||||
var a = new CharArray(b);
|
||||
}
|
||||
{
|
||||
var Int32Array = TArray(ref.types.int32);
|
||||
var input = [1, 4, 91, 123123, 5123512, 0, -1];
|
||||
var a = new Int32Array(input);
|
||||
}
|
||||
{
|
||||
var int = ref.types.int;
|
||||
var IntArray = TArray(int);
|
||||
|
||||
var buf = new Buffer(int.size * 3);
|
||||
int.set(buf, int.size * 0, 5);
|
||||
int.set(buf, int.size * 1, 8);
|
||||
int.set(buf, int.size * 2, 0);
|
||||
|
||||
var array = IntArray.untilZeros(buf);
|
||||
}
|
||||
{
|
||||
var refCharArr = TArray('char')([1, 3, 5], 2).ref();
|
||||
}
|
||||
|
||||
46
node-ffi/node-ffi.d.ts
vendored
46
node-ffi/node-ffi.d.ts
vendored
@ -434,6 +434,52 @@ interface NodeBuffer {
|
||||
inspect(): string;
|
||||
}
|
||||
|
||||
declare module "ref-array" {
|
||||
import ffi = require('ffi');
|
||||
|
||||
interface ArrayType extends ffi.Type {
|
||||
BYTES_PER_ELEMENT: number;
|
||||
/** The reference to the base type. */
|
||||
type: ffi.Type;
|
||||
|
||||
/**
|
||||
* Accepts a Buffer instance that should be an already-populated with data
|
||||
* for the ArrayType. The "length" of the Array is determined by searching
|
||||
* through the buffer's contents until an aligned NULL pointer is encountered.
|
||||
*/
|
||||
untilZeros(buffer: NodeBuffer): { [i: number]: number; length: number;
|
||||
buffer: NodeBuffer; ref(): NodeBuffer; };
|
||||
|
||||
new (length?: number): { [i: number]: number; length: number;
|
||||
buffer: NodeBuffer; ref(): NodeBuffer; };
|
||||
|
||||
new (data: number[], length?: number): { [i: number]: number; length: number;
|
||||
buffer: NodeBuffer; ref(): NodeBuffer; };
|
||||
new (data: NodeBuffer, length?: number): { [i: number]: number; length: number;
|
||||
buffer: NodeBuffer; ref(): NodeBuffer; };
|
||||
(length?: number): { [i: number]: number; length: number;
|
||||
buffer: NodeBuffer; ref(): NodeBuffer; };
|
||||
(data: number[], length?: number): { [i: number]: number; length: number;
|
||||
buffer: NodeBuffer; ref(): NodeBuffer; };
|
||||
(data: NodeBuffer, length?: number): { [i: number]: number; length: number;
|
||||
buffer: NodeBuffer; ref(): NodeBuffer; };
|
||||
}
|
||||
|
||||
/**
|
||||
* The array type meta-constructor.
|
||||
* The returned constructor's API is highly influenced by the WebGL
|
||||
* TypedArray API.
|
||||
*/
|
||||
var ArrayType: {
|
||||
new (type: ffi.Type, length?: number): ArrayType;
|
||||
new (type: string, length?: number): ArrayType;
|
||||
(type: ffi.Type, length?: number): ArrayType;
|
||||
(type: string, length?: number): ArrayType;
|
||||
};
|
||||
|
||||
export = ArrayType;
|
||||
}
|
||||
|
||||
declare module "ref-struct" {
|
||||
import ffi = require('ffi');
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user