///|
extern "C" fn ffi_create(debug : Bool) -> RawWebView = "moonbit_webview_create"
///|
#borrow(view)
extern "C" fn ffi_is_valid(view : RawWebView) -> Bool = "moonbit_webview_is_valid"
///|
#borrow(view)
extern "C" fn ffi_has_native_window(view : RawWebView) -> Bool = "moonbit_webview_has_native_window"
///|
#borrow(view)
extern "C" fn ffi_get_native_window(view : RawWebView) -> NativeWindow = "moonbit_webview_get_native_window"
///|
#borrow(view)
extern "C" fn ffi_destroy(view : RawWebView) -> Int = "moonbit_webview_destroy"
///|
#borrow(view)
extern "C" fn ffi_run(view : RawWebView) -> Int = "moonbit_webview_run"
///|
#borrow(view)
extern "C" fn ffi_terminate(view : RawWebView) -> Int = "moonbit_webview_terminate"
///|
#borrow(view, title)
extern "C" fn ffi_set_title(view : RawWebView, title : Bytes) -> Int = "moonbit_webview_set_title"
///|
#borrow(view)
extern "C" fn ffi_set_size(
view : RawWebView,
width : Int,
height : Int,
hint : Int,
) -> Int = "moonbit_webview_set_size"
///|
#borrow(view, url)
extern "C" fn ffi_navigate(view : RawWebView, url : Bytes) -> Int = "moonbit_webview_navigate"
///|
#borrow(view, html)
extern "C" fn ffi_set_html(view : RawWebView, html : Bytes) -> Int = "moonbit_webview_set_html"
///|
#borrow(view, js)
extern "C" fn ffi_init(view : RawWebView, js : Bytes) -> Int = "moonbit_webview_init"
///|
#borrow(view, js)
extern "C" fn ffi_eval(view : RawWebView, js : Bytes) -> Int = "moonbit_webview_eval"
///|
#borrow(view, name)
extern "C" fn ffi_bind(
view : RawWebView,
name : Bytes,
call_handler : FuncRef[((Bytes, Bytes) -> Unit, Bytes, Bytes) -> Unit],
handler : (Bytes, Bytes) -> Unit,
) -> Int = "moonbit_webview_bind"
///|
#borrow(view, name)
extern "C" fn ffi_unbind(view : RawWebView, name : Bytes) -> Int = "moonbit_webview_unbind"
///|
#borrow(view, id, result)
extern "C" fn ffi_return(
view : RawWebView,
id : Bytes,
status : Int,
result : Bytes,
) -> Int = "moonbit_webview_return"
///|
#borrow(view)
extern "C" fn ffi_dispatch(
view : RawWebView,
call_handler : FuncRef[(() -> Unit) -> Unit],
handler : () -> Unit,
) -> Int = "moonbit_webview_dispatch"
///|
#borrow(view)
extern "C" fn ffi_close_window(view : RawWebView) -> Int = "moonbit_webview_close_window"
///|
#borrow(view)
extern "C" fn ffi_focus_window(view : RawWebView) -> Int = "moonbit_webview_focus_window"
///|
#borrow(view)
extern "C" fn ffi_minimize_window(view : RawWebView) -> Int = "moonbit_webview_minimize_window"
///|
#borrow(view)
extern "C" fn ffi_maximize_window(view : RawWebView) -> Int = "moonbit_webview_maximize_window"
///|
#borrow(view)
extern "C" fn ffi_restore_window(view : RawWebView) -> Int = "moonbit_webview_restore_window"
///|
#borrow(view)
extern "C" fn ffi_show_window(view : RawWebView) -> Int = "moonbit_webview_show_window"
///|
#borrow(view)
extern "C" fn ffi_hide_window(view : RawWebView) -> Int = "moonbit_webview_hide_window"
///|
#borrow(view)
extern "C" fn ffi_is_window_closed(view : RawWebView) -> Bool = "moonbit_webview_is_window_closed"
///|
#borrow(view)
extern "C" fn ffi_set_window_event_handler(
view : RawWebView,
call_handler : FuncRef[((Int) -> Unit, Int) -> Unit],
handler : (Int) -> Unit,
) -> Int = "moonbit_webview_set_window_event_handler"
///|
extern "C" fn ffi_version_number() -> Bytes = "moonbit_webview_version_number"