use crate::backend::{
EnvBackend,
TypedEnvBackend,
};
use cfg_if::cfg_if;
pub trait OnInstance: EnvBackend + TypedEnvBackend {
fn on_instance<F, R>(f: F) -> R
where
F: FnOnce(&mut Self) -> R;
}
cfg_if! {
if #[cfg(all(not(feature = "std"), target_arch = "wasm32"))] {
mod on_chain;
pub use self::on_chain::EnvInstance;
} else if #[cfg(feature = "std")] {
pub mod off_chain;
pub use self::off_chain::EnvInstance;
} else {
compile_error! {
"ink! only support compilation as `std` or `no_std` + `wasm32-unknown`"
}
}
}