use js_sys::{Array, Object, Promise};
use wasm_bindgen::prelude::*;
use super::get_binding;
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(extends = Object)]
#[derive(Clone, Debug)]
pub type D1Database;
#[wasm_bindgen(method, js_name = prepare)]
pub fn prepare(this: &D1Database, query: &str) -> D1PreparedStatement;
}
impl D1Database {
pub fn from_env(env: &JsValue, binding: &str) -> Result<Self, JsError> {
get_binding(env, binding)
}
}
unsafe impl Send for D1Database {}
unsafe impl Sync for D1Database {}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(extends = Object)]
#[derive(Clone, Debug)]
pub type D1PreparedStatement;
#[wasm_bindgen(method, js_name = bind, variadic)]
pub fn bind(this: &D1PreparedStatement, values: Array) -> D1PreparedStatement;
#[wasm_bindgen(method, js_name = first)]
pub fn first(this: &D1PreparedStatement, col_name: Option<&str>) -> Promise;
#[wasm_bindgen(method, js_name = run)]
pub fn run(this: &D1PreparedStatement) -> Promise;
#[wasm_bindgen(method, js_name = all)]
pub fn all(this: &D1PreparedStatement) -> Promise;
}