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 );