in src/webgpu/util/conversion.ts [658:698]
public create(value: number | bigint): ScalarValue {
switch (typeof value) {
case 'number':
switch (this.kind) {
case 'abstract-float':
return abstractFloat(value);
case 'abstract-int':
return abstractInt(BigInt(value));
case 'f64':
return f64(value);
case 'f32':
return f32(value);
case 'f16':
return f16(value);
case 'u32':
return u32(value);
case 'u16':
return u16(value);
case 'u8':
return u8(value);
case 'i32':
return i32(value);
case 'i16':
return i16(value);
case 'i8':
return i8(value);
case 'bool':
return bool(value !== 0);
}
break;
case 'bigint':
switch (this.kind) {
case 'abstract-int':
return abstractInt(value);
case 'bool':
return bool(value !== 0n);
}
break;
}
unreachable(`Scalar<${this.kind}>.create() does not support ${typeof value}`);
}