redis/redis.wit

43 lines
1.4 KiB
Plaintext
Raw Normal View History

2020-08-09 11:27:34 +03:00
;; Fluence Redis fork Wasm Interface Types
2021-04-26 15:15:25 +03:00
(@interface it_version "0.20.0")
2020-08-09 11:27:34 +03:00
;; allocate
(@interface type (func (param $size: i32) (result i32))) ;; 0
2020-08-09 11:27:34 +03:00
;; deallocate
(@interface type (func (param $pointer: i32 $size: i32))) ;; 1
2020-08-09 11:27:34 +03:00
;; invoke
(@interface type (func (param $request: string) (result string))) ;; 2
2020-08-09 11:27:34 +03:00
;; get_result_ptr/get_result_size
(@interface type (func (result i32))) ;; 3
2020-08-09 11:27:34 +03:00
;; set_result_ptr/set_result_size
(@interface type (func (param $result: i32))) ;; 4
2020-08-09 11:27:34 +03:00
(@interface export "allocate" (func 0)) ;; 0
2021-04-12 15:25:24 +03:00
(@interface export "release_objects" (func 1)) ;; 1
2020-08-09 11:27:34 +03:00
(@interface export "invoke" (func 2)) ;; 2
(@interface export "get_result_size" (func 3)) ;; 3
(@interface export "get_result_ptr" (func 3)) ;; 4
(@interface export "set_result_size" (func 4)) ;; 5
(@interface export "set_result_ptr" (func 4)) ;; 6
;; adapter for export invoke function
(@interface func (type 2)
arg.get 0
string.size
call-core 0 ;; call allocate
arg.get 0
string.lower_memory
call-core 2 ;; call invoke
call-core 4 ;; call get_result_size
call-core 3 ;; call get_result_ptr
string.lift_memory
2021-04-12 15:25:24 +03:00
call-core 1 ;; call release_objects
2020-08-09 11:27:34 +03:00
)
;; Implementations
(@interface implement (func 2) (func 2))