# Casting Modes > List of ndarray casting modes.
## Usage ```javascript var modes = require( '@stdlib/ndarray/casting-modes' ); ``` #### modes() Returns a list of ndarray casting modes. ```javascript var out = modes(); // returns [ 'none', 'equiv', 'safe', 'same-kind', 'unsafe' ] ``` The output `array` contains the following modes: - `none`: only allow casting between identical types. - `equiv`: allow casting between identical and byte swapped types. - `safe`: only allow "safe" casts. - `same-kind`: allow "safe" casts and casts within the same kind (e.g., between signed integers or between floats). - `unsafe`: allow casting between all types (including between integers and floats).
## Examples ```javascript var indexOf = require( '@stdlib/utils/index-of' ); var modes = require( '@stdlib/ndarray/casting-modes' ); var MODES = modes(); var bool; function isMode( str ) { if ( indexOf( MODES, str ) === -1 ) { return false; } return true; } bool = isMode( 'none' ); // returns true bool = isMode( 'equiv' ); // returns true bool = isMode( 'safe' ); // returns true bool = isMode( 'same-kind' ); // returns true bool = isMode( 'unsafe' ); // returns true bool = isMode( 'beep' ); // returns false ```