1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//! # Memory Entry
//! An entry (value) in the memory key-value store.

use cosmwasm_std::{Addr, Deps, StdResult};
use cw_asset::AssetInfo;

use abstract_os::objects::{memory::Memory, AssetEntry, ContractEntry};

pub trait Resolve {
    type Output;
    fn resolve(&self, deps: Deps, memory: &Memory) -> StdResult<Self::Output>;
}

impl Resolve for AssetEntry {
    type Output = AssetInfo;
    fn resolve(&self, deps: Deps, memory: &Memory) -> StdResult<Self::Output> {
        memory.query_asset(deps, self)
    }
}

impl Resolve for ContractEntry {
    type Output = Addr;
    fn resolve(&self, deps: Deps, memory: &Memory) -> StdResult<Self::Output> {
        memory.query_contract(deps, self)
    }
}