use std::collections::BTreeMap;
use std::collections::BTreeSet;
use revive_common::MetadataHash;
use revive_llvm_context::DebugConfig;
use revive_llvm_context::OptimizerSettings;
use revive_solc_json_interface::SolcStandardJsonInputSettingsPolkaVMMemory;
use serde::Deserialize;
use serde::Serialize;
use crate::project::contract::Contract;
use crate::SolcVersion;
#[derive(Debug, Serialize, Deserialize)]
pub struct Input {
pub contract: Contract,
pub solc_version: Option<SolcVersion>,
pub metadata_hash: MetadataHash,
pub optimizer_settings: OptimizerSettings,
pub debug_config: DebugConfig,
pub llvm_arguments: Vec<String>,
pub memory_config: SolcStandardJsonInputSettingsPolkaVMMemory,
pub missing_libraries: BTreeSet<String>,
pub factory_dependencies: BTreeSet<String>,
pub identifier_paths: BTreeMap<String, String>,
}
impl Input {
pub fn new(
contract: Contract,
solc_version: Option<SolcVersion>,
metadata_hash: MetadataHash,
optimizer_settings: OptimizerSettings,
debug_config: DebugConfig,
llvm_arguments: Vec<String>,
memory_config: SolcStandardJsonInputSettingsPolkaVMMemory,
missing_libraries: BTreeSet<String>,
factory_dependencies: BTreeSet<String>,
identifier_paths: BTreeMap<String, String>,
) -> Self {
Self {
contract,
solc_version,
metadata_hash,
optimizer_settings,
debug_config,
llvm_arguments,
memory_config,
missing_libraries,
factory_dependencies,
identifier_paths,
}
}
}