mod database;
#[cfg(feature = "futures")]
#[cfg_attr(any(docsrs, feature = "doc"), doc(cfg(feature = "futures")))]
pub mod futures;
mod request_ready_state;
mod store;
pub use self::{
database::{DeleteDatabaseRequest, OpenDatabaseRequest},
request_ready_state::RequestReadyState,
store::{
AddStoreRequest, ClearStoreRequest, CountStoreRequest, DeleteStoreRequest,
GetAllKeysStoreRequest, GetAllStoreRequest, GetKeyStoreRequest, GetStoreRequest,
OpenCursorStoreRequest, OpenKeyCursorStoreRequest, PutStoreRequest, UpdateStoreRequest,
},
};
use js_sys::Object;
use wasm_bindgen::JsValue;
use web_sys::DomException;
use crate::{Error, Event, Transaction};
pub trait Request {
type Event: Event;
fn result(&self) -> Result<JsValue, Error>;
fn error(&self) -> Result<Option<DomException>, Error>;
fn source(&self) -> Result<Object, Error>;
fn transaction(&self) -> Option<Transaction>;
fn ready_state(&self) -> Result<RequestReadyState, Error>;
fn on_success<F>(&mut self, callback: F)
where
F: FnOnce(Self::Event) + 'static;
fn on_error<F>(&mut self, callback: F)
where
F: FnOnce(Self::Event) + 'static;
}