fuels_programs/calls/traits/
contract_dep_configurator.rs

1use fuels_core::types::bech32::Bech32ContractId;
2
3use crate::calls::{utils::sealed, ContractCall, ScriptCall};
4
5pub trait ContractDependencyConfigurator: sealed::Sealed {
6    fn append_external_contract(&mut self, contract_id: Bech32ContractId);
7    fn with_external_contracts(self, external_contracts: Vec<Bech32ContractId>) -> Self;
8}
9
10impl ContractDependencyConfigurator for ContractCall {
11    fn append_external_contract(&mut self, contract_id: Bech32ContractId) {
12        self.external_contracts.push(contract_id)
13    }
14
15    fn with_external_contracts(self, external_contracts: Vec<Bech32ContractId>) -> Self {
16        ContractCall {
17            external_contracts,
18            ..self
19        }
20    }
21}
22
23impl ContractDependencyConfigurator for ScriptCall {
24    fn append_external_contract(&mut self, contract_id: Bech32ContractId) {
25        self.external_contracts.push(contract_id)
26    }
27
28    fn with_external_contracts(self, external_contracts: Vec<Bech32ContractId>) -> Self {
29        ScriptCall {
30            external_contracts,
31            ..self
32        }
33    }
34}