Struct rhaki_cw_multi_test::ContractWrapper
source · pub struct ContractWrapper<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error>where
T1: DeserializeOwned + Debug,
T2: DeserializeOwned,
T3: DeserializeOwned,
T4: DeserializeOwned,
T6: DeserializeOwned,
E1: Display + Debug + Send + Sync + 'static,
E2: Display + Debug + Send + Sync + 'static,
E3: Display + Debug + Send + Sync + 'static,
E4: Display + Debug + Send + Sync + 'static,
E5: Display + Debug + Send + Sync + 'static,
E6: Display + Debug + Send + Sync + 'static,
C: Clone + Debug + PartialEq + JsonSchema,
Q: CustomQuery + DeserializeOwned + 'static,{ /* private fields */ }
Expand description
Wraps the exported functions from a contract and provides the normalized format Place T4 and E4 at the end, as we just want default placeholders for most contracts that don’t have sudo
Implementations§
source§impl<T1, T2, T3, E1, E2, E3, C, Q> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q>where
T1: DeserializeOwned + Debug + 'static,
T2: DeserializeOwned + 'static,
T3: DeserializeOwned + 'static,
E1: Display + Debug + Send + Sync + 'static,
E2: Display + Debug + Send + Sync + 'static,
E3: Display + Debug + Send + Sync + 'static,
C: Clone + Debug + PartialEq + JsonSchema + 'static,
Q: CustomQuery + DeserializeOwned + 'static,
impl<T1, T2, T3, E1, E2, E3, C, Q> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q>where T1: DeserializeOwned + Debug + 'static, T2: DeserializeOwned + 'static, T3: DeserializeOwned + 'static, E1: Display + Debug + Send + Sync + 'static, E2: Display + Debug + Send + Sync + 'static, E3: Display + Debug + Send + Sync + 'static, C: Clone + Debug + PartialEq + JsonSchema + 'static, Q: CustomQuery + DeserializeOwned + 'static,
pub fn new( execute_fn: fn(deps: DepsMut<'_, Q>, env: Env, info: MessageInfo, msg: T1) -> Result<Response<C>, E1>, instantiate_fn: fn(deps: DepsMut<'_, Q>, env: Env, info: MessageInfo, msg: T2) -> Result<Response<C>, E2>, query_fn: fn(deps: Deps<'_, Q>, env: Env, msg: T3) -> Result<Binary, E3> ) -> Self
sourcepub fn new_with_empty(
execute_fn: fn(deps: DepsMut<'_, Empty>, env: Env, info: MessageInfo, msg: T1) -> Result<Response<Empty>, E1>,
instantiate_fn: fn(deps: DepsMut<'_, Empty>, env: Env, info: MessageInfo, msg: T2) -> Result<Response<Empty>, E2>,
query_fn: fn(deps: Deps<'_, Empty>, env: Env, msg: T3) -> Result<Binary, E3>
) -> Self
pub fn new_with_empty( execute_fn: fn(deps: DepsMut<'_, Empty>, env: Env, info: MessageInfo, msg: T1) -> Result<Response<Empty>, E1>, instantiate_fn: fn(deps: DepsMut<'_, Empty>, env: Env, info: MessageInfo, msg: T2) -> Result<Response<Empty>, E2>, query_fn: fn(deps: Deps<'_, Empty>, env: Env, msg: T3) -> Result<Binary, E3> ) -> Self
This will take a contract that returns Response<Empty>
and will “upgrade” it
to Response<C>
if needed to be compatible with a chain-specific extension.
source§impl<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>where
T1: DeserializeOwned + Debug + 'static,
T2: DeserializeOwned + 'static,
T3: DeserializeOwned + 'static,
T4: DeserializeOwned + 'static,
T6: DeserializeOwned + 'static,
E1: Display + Debug + Send + Sync + 'static,
E2: Display + Debug + Send + Sync + 'static,
E3: Display + Debug + Send + Sync + 'static,
E4: Display + Debug + Send + Sync + 'static,
E5: Display + Debug + Send + Sync + 'static,
E6: Display + Debug + Send + Sync + 'static,
C: Clone + Debug + PartialEq + JsonSchema + 'static,
Q: CustomQuery + DeserializeOwned + 'static,
impl<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>where T1: DeserializeOwned + Debug + 'static, T2: DeserializeOwned + 'static, T3: DeserializeOwned + 'static, T4: DeserializeOwned + 'static, T6: DeserializeOwned + 'static, E1: Display + Debug + Send + Sync + 'static, E2: Display + Debug + Send + Sync + 'static, E3: Display + Debug + Send + Sync + 'static, E4: Display + Debug + Send + Sync + 'static, E5: Display + Debug + Send + Sync + 'static, E6: Display + Debug + Send + Sync + 'static, C: Clone + Debug + PartialEq + JsonSchema + 'static, Q: CustomQuery + DeserializeOwned + 'static,
pub fn with_sudo<T4A, E4A>( self, sudo_fn: fn(deps: DepsMut<'_, Q>, env: Env, msg: T4A) -> Result<Response<C>, E4A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4A, E4A, E5, T6, E6>where T4A: DeserializeOwned + 'static, E4A: Display + Debug + Send + Sync + 'static,
pub fn with_sudo_empty<T4A, E4A>( self, sudo_fn: fn(deps: DepsMut<'_, Q>, env: Env, msg: T4A) -> Result<Response<Empty>, E4A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4A, E4A, E5, T6, E6>where T4A: DeserializeOwned + 'static, E4A: Display + Debug + Send + Sync + 'static,
pub fn with_reply<E5A>( self, reply_fn: fn(deps: DepsMut<'_, Q>, env: Env, msg: Reply) -> Result<Response<C>, E5A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5A, T6, E6>where E5A: Display + Debug + Send + Sync + 'static,
sourcepub fn with_reply_empty<E5A>(
self,
reply_fn: fn(deps: DepsMut<'_, Q>, env: Env, msg: Reply) -> Result<Response<Empty>, E5A>
) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5A, T6, E6>where
E5A: Display + Debug + Send + Sync + 'static,
pub fn with_reply_empty<E5A>( self, reply_fn: fn(deps: DepsMut<'_, Q>, env: Env, msg: Reply) -> Result<Response<Empty>, E5A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5A, T6, E6>where E5A: Display + Debug + Send + Sync + 'static,
A correlate of new_with_empty
pub fn with_migrate<T6A, E6A>( self, migrate_fn: fn(deps: DepsMut<'_, Q>, env: Env, msg: T6A) -> Result<Response<C>, E6A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6A, E6A>where T6A: DeserializeOwned + 'static, E6A: Display + Debug + Send + Sync + 'static,
pub fn with_migrate_empty<T6A, E6A>( self, migrate_fn: fn(deps: DepsMut<'_, Q>, env: Env, msg: T6A) -> Result<Response<Empty>, E6A> ) -> ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6A, E6A>where T6A: DeserializeOwned + 'static, E6A: Display + Debug + Send + Sync + 'static,
Trait Implementations§
source§impl<T1, T2, T3, E1, E2, E3, C, T4, E4, E5, T6, E6, Q> Contract<C, Q> for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>where
T1: DeserializeOwned + Debug + Clone,
T2: DeserializeOwned + Debug + Clone,
T3: DeserializeOwned + Debug + Clone,
T4: DeserializeOwned,
T6: DeserializeOwned,
E1: Display + Debug + Send + Sync + Error + 'static,
E2: Display + Debug + Send + Sync + Error + 'static,
E3: Display + Debug + Send + Sync + Error + 'static,
E4: Display + Debug + Send + Sync + 'static,
E5: Display + Debug + Send + Sync + 'static,
E6: Display + Debug + Send + Sync + 'static,
C: Clone + Debug + PartialEq + JsonSchema,
Q: CustomQuery + DeserializeOwned,
impl<T1, T2, T3, E1, E2, E3, C, T4, E4, E5, T6, E6, Q> Contract<C, Q> for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>where T1: DeserializeOwned + Debug + Clone, T2: DeserializeOwned + Debug + Clone, T3: DeserializeOwned + Debug + Clone, T4: DeserializeOwned, T6: DeserializeOwned, E1: Display + Debug + Send + Sync + Error + 'static, E2: Display + Debug + Send + Sync + Error + 'static, E3: Display + Debug + Send + Sync + Error + 'static, E4: Display + Debug + Send + Sync + 'static, E5: Display + Debug + Send + Sync + 'static, E6: Display + Debug + Send + Sync + 'static, C: Clone + Debug + PartialEq + JsonSchema, Q: CustomQuery + DeserializeOwned,
fn execute( &self, deps: DepsMut<'_, Q>, env: Env, info: MessageInfo, msg: Vec<u8> ) -> AnyResult<Response<C>>
fn instantiate( &self, deps: DepsMut<'_, Q>, env: Env, info: MessageInfo, msg: Vec<u8> ) -> AnyResult<Response<C>>
fn query(&self, deps: Deps<'_, Q>, env: Env, msg: Vec<u8>) -> AnyResult<Binary>
fn sudo( &self, deps: DepsMut<'_, Q>, env: Env, msg: Vec<u8> ) -> AnyResult<Response<C>>
fn reply( &self, deps: DepsMut<'_, Q>, env: Env, reply_data: Reply ) -> AnyResult<Response<C>>
fn migrate( &self, deps: DepsMut<'_, Q>, env: Env, msg: Vec<u8> ) -> AnyResult<Response<C>>
Auto Trait Implementations§
impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !RefUnwindSafe for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>
impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !Send for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>
impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !Sync for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>
impl<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6> Unpin for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>
impl<T1, T2, T3, E1, E2, E3, C = Empty, Q = Empty, T4 = Empty, E4 = Error, E5 = Error, T6 = Empty, E6 = Error> !UnwindSafe for ContractWrapper<T1, T2, T3, E1, E2, E3, C, Q, T4, E4, E5, T6, E6>
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere T: CastFrom<U>,
Casts
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read moresource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more