1;;! component_model_async = true 2;;! component_model_async_builtins = true 3 4;; future.new 5(component 6 (core module $m 7 (import "" "future.new" (func $future-new (result i64))) 8 ) 9 (type $future-type (future u8)) 10 (core func $future-new (canon future.new $future-type)) 11 (core instance $i (instantiate $m (with "" (instance (export "future.new" (func $future-new)))))) 12) 13 14;; future.read 15(component 16 (core module $libc (memory (export "memory") 1)) 17 (core instance $libc (instantiate $libc)) 18 (core module $m 19 (import "" "future.read" (func $future-read (param i32 i32) (result i32))) 20 ) 21 (type $future-type (future u8)) 22 (core func $future-read (canon future.read $future-type async (memory $libc "memory"))) 23 (core instance $i (instantiate $m (with "" (instance (export "future.read" (func $future-read)))))) 24) 25 26;; future.read; with realloc 27(component 28 (core module $libc 29 (func (export "realloc") (param i32 i32 i32 i32) (result i32) unreachable) 30 (memory (export "memory") 1) 31 ) 32 (core instance $libc (instantiate $libc)) 33 (core module $m 34 (import "" "future.read" (func $future-read (param i32 i32) (result i32))) 35 ) 36 (type $future-type (future string)) 37 (core func $future-read (canon future.read $future-type async (memory $libc "memory") (realloc (func $libc "realloc")))) 38 (core instance $i (instantiate $m (with "" (instance (export "future.read" (func $future-read)))))) 39) 40 41;; future.write 42(component 43 (core module $libc (memory (export "memory") 1)) 44 (core instance $libc (instantiate $libc)) 45 (core module $m 46 (import "" "future.write" (func $future-write (param i32 i32) (result i32))) 47 ) 48 (type $future-type (future u8)) 49 (core func $future-write (canon future.write $future-type async (memory $libc "memory"))) 50 (core instance $i (instantiate $m (with "" (instance (export "future.write" (func $future-write)))))) 51) 52 53;; future.cancel-read 54(component 55 (core module $m 56 (import "" "future.cancel-read" (func $future-cancel-read (param i32) (result i32))) 57 ) 58 (type $future-type (future u8)) 59 (core func $future-cancel-read (canon future.cancel-read $future-type)) 60 (core instance $i (instantiate $m (with "" (instance (export "future.cancel-read" (func $future-cancel-read)))))) 61) 62 63;; future.cancel-write 64(component 65 (core module $m 66 (import "" "future.cancel-write" (func $future-cancel-write (param i32) (result i32))) 67 ) 68 (type $future-type (future u8)) 69 (core func $future-cancel-write (canon future.cancel-write $future-type)) 70 (core instance $i (instantiate $m (with "" (instance (export "future.cancel-write" (func $future-cancel-write)))))) 71) 72 73;; future.drop-readable 74(component 75 (core module $m 76 (import "" "future.drop-readable" (func $future-drop-readable (param i32))) 77 ) 78 (type $future-type (future u8)) 79 (core func $future-drop-readable (canon future.drop-readable $future-type)) 80 (core instance $i (instantiate $m (with "" (instance (export "future.drop-readable" (func $future-drop-readable)))))) 81) 82 83;; future.drop-writable 84(component 85 (core module $m 86 (import "" "future.drop-writable" (func $future-drop-writable (param i32))) 87 ) 88 (type $future-type (future u8)) 89 (core func $future-drop-writable (canon future.drop-writable $future-type)) 90 (core instance $i (instantiate $m (with "" (instance (export "future.drop-writable" (func $future-drop-writable)))))) 91) 92