import { FieldType } from '@terascope/types' ; import { FieldTransformConfig , ProcessMode , FunctionDefinitionType , FunctionDefinitionCategory , } from '../interfaces' ; import { runMathFn } from './utils' ; export const clz32Config = { name : 'clz32' , type : FunctionDefinitionType . FIELD_TRANSFORM , process_mode : ProcessMode . INDIVIDUAL_VALUES , category : FunctionDefinitionCategory . NUMERIC , description : 'Returns the number of leading zero bits in the 32-bit binary representation of a number' , examples : [ { args : { } , config : { version : 1 , fields : { testField : { type : FieldType . Byte } } } , field : 'testField' , input : 1 , output : 31 } , { args : { } , config : { version : 1 , fields : { testField : { type : FieldType . Integer } } } , field : 'testField' , input : 1000 , output : 22 } , { args : { } , config : { version : 1 , fields : { testField : { type : FieldType . Float } } } , field : 'testField' , input : 4 , output : 29 } ] , create ( ) { return runMathFn ( Math . clz32 ) ; } , accepts : [ FieldType . Number , ] , argument_schema : { } , output_type ( { field_config } ) { return { field_config : { ... field_config , type : FieldType . Byte } } ; } } ;