Buffer Data Type Enumeration Constant

Return the data type enumeration constant of an ndarray data buffer.

Usage

var dtypeEnum = require( '@stdlib/ndarray/base/buffer-dtype-enum' );

dtypeEnum( buffer )

Returns the data type enumeration constant of an ndarray data buffer.

var Float64Array = require( '@stdlib/array/float64' );
var buf = new Float64Array( 10 );

var c = dtypeEnum( buf );
// returns <number>

If provided an ndarray data buffer having an unknown or unsupported data type, the function returns null.

var c = dtypeEnum( 'beep' );
// returns null

Notes

  • The principle use case for this function is JavaScript-C interoperability. In C, dtypes are assigned integer enumeration constants, not string values.

Examples

var dtypes = require( '@stdlib/ndarray/dtypes' );
var bufferCtors = require( '@stdlib/ndarray/base/buffer-ctors' );
var isFunction = require( '@stdlib/assert/is-function' );
var dtypeEnum = require( '@stdlib/ndarray/base/buffer-dtype-enum' );

var DTYPES;
var ctor;
var buf;
var len;
var c;
var i;

// Get a list of supported ndarray buffer data types:
DTYPES = dtypes();

// Buffer length:
len = 10;

// For each supported data type, create a buffer and retrieve its data type enumeration constant...
for ( i = 0; i < DTYPES.length; i++ ) {
    ctor = bufferCtors( DTYPES[ i ] );
    if ( DTYPES[ i ] === 'binary' && isFunction( ctor.alloc ) ) {
        buf = ctor.alloc( len );
    } else {
        buf = new ctor( len );
    }
    c = dtypeEnum( buf );
    console.log( '%s => %d', DTYPES[ i ], c );
}

// Try an array-like object...
buf = {
    'length': 10
};
c = dtypeEnum( buf );
console.log( '%s => %s', 'generic', c );
Did you find this page helpful?