multiversx_sc_meta_lib/contract/sc_config/
proxy_config.rs1use std::path::{Path, PathBuf};
2
3use multiversx_sc::abi::ContractAbi;
4
5use super::sc_config_proxy::PathRename;
6
7#[derive(Debug)]
8pub struct ProxyConfig {
9 pub path: PathBuf,
10 pub override_import: String,
11 pub path_rename: Vec<PathRename>,
12 pub abi: ContractAbi,
13}
14
15impl ProxyConfig {
16 pub fn new(
17 path: PathBuf,
18 override_imports: Option<String>,
19 path_rename: Option<Vec<PathRename>>,
20 abi: ContractAbi,
21 ) -> Self {
22 ProxyConfig {
23 path,
24 override_import: override_imports.unwrap_or_default(),
25 path_rename: path_rename.unwrap_or_default(),
26 abi,
27 }
28 }
29
30 pub fn output_dir_proxy_config(abi: ContractAbi) -> Self {
31 let proxy_output = abi.get_crate_name_for_code() + "_proxy.rs";
32 ProxyConfig {
33 path: Path::new("output").join(proxy_output),
34 override_import: String::new(),
35 path_rename: Vec::new(),
36 abi,
37 }
38 }
39}