@@ -11,7 +11,10 @@ export const bool: Bool = {
1111/**
1212 * Unsigned 32-bit integer schema representing a single WGSL u32 value.
1313 */
14- export type U32Cast = ( v : number | boolean ) => number ;
14+ export type NativeU32 = U32 & { '~exotic' : U32 } & ( (
15+ v : number | boolean ,
16+ ) => number ) ;
17+
1518const u32Cast = ( v : number | boolean ) => {
1619 if ( inGPUMode ( ) ) {
1720 return `u32(${ v } )` as unknown as number ;
@@ -42,14 +45,17 @@ const u32Cast = (v: number | boolean) => {
4245 * @example
4346 * const value = u32(-3.1); // 0
4447 */
45- export const u32 : U32 & U32Cast = Object . assign ( u32Cast , {
48+ export const u32 : NativeU32 = Object . assign ( u32Cast , {
4649 type : 'u32' ,
47- } as U32 ) ;
50+ } ) as NativeU32 ;
4851
4952/**
5053 * Signed 32-bit integer schema representing a single WGSL i32 value.
5154 */
52- export type I32Cast = ( v : number | boolean ) => number ;
55+ export type NativeI32 = I32 & { '~exotic' : I32 } & ( (
56+ v : number | boolean ,
57+ ) => number ) ;
58+
5359const i32Cast = ( v : number | boolean ) => {
5460 if ( inGPUMode ( ) ) {
5561 return `i32(${ v } )` as unknown as number ;
@@ -82,14 +88,17 @@ const i32Cast = (v: number | boolean) => {
8288 * @example
8389 * const value = i32(10000000000) // 1410065408
8490 */
85- export const i32 : I32 & I32Cast = Object . assign ( i32Cast , {
91+ export const i32 : NativeI32 = Object . assign ( i32Cast , {
8692 type : 'i32' ,
87- } as I32 ) ;
93+ } ) as NativeI32 ;
8894
8995/**
9096 * 32-bit float schema representing a single WGSL f32 value.
9197 */
92- export type F32Cast = ( v : number | boolean ) => number ;
98+ export type NativeF32 = F32 & { '~exotic' : F32 } & ( (
99+ v : number | boolean ,
100+ ) => number ) ;
101+
93102const f32Cast = ( v : number | boolean ) => {
94103 if ( inGPUMode ( ) ) {
95104 return `f32(${ v } )` as unknown as number ;
@@ -108,6 +117,6 @@ const f32Cast = (v: number | boolean) => {
108117 * @example
109118 * const value = f32(true); // 1
110119 */
111- export const f32 : F32 & F32Cast = Object . assign ( f32Cast , {
120+ export const f32 : NativeF32 = Object . assign ( f32Cast , {
112121 type : 'f32' ,
113- } as F32 ) ;
122+ } ) as NativeF32 ;
0 commit comments