#[cfg(test)]
use lexe_common::test_utils::arbitrary;
use lexe_common::{api::MegaId, env::DeployEnv, ln::network::Network};
#[cfg(test)]
use proptest_derive::Arbitrary;
use serde::{Deserialize, Serialize};
use crate::cli::{EnclaveArgs, LspInfo, OAuthConfig};
#[cfg_attr(test, derive(Arbitrary))]
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
pub struct MegaArgs {
pub mega_id: MegaId,
#[cfg_attr(test, proptest(strategy = "arbitrary::any_simple_string()"))]
pub backend_url: String,
pub lease_lifetime_secs: u64,
pub lease_renewal_interval_secs: u64,
pub lsp: LspInfo,
#[cfg_attr(test, proptest(strategy = "arbitrary::any_simple_string()"))]
pub lsp_url: String,
pub mega_inactivity_secs: u64,
pub memory_overhead: u64,
pub oauth: Option<OAuthConfig>,
#[cfg_attr(test, proptest(strategy = "arbitrary::any_simple_string()"))]
pub runner_url: String,
#[cfg_attr(
test,
proptest(strategy = "arbitrary::any_option_simple_string()")
)]
pub rust_backtrace: Option<String>,
#[cfg_attr(
test,
proptest(strategy = "arbitrary::any_option_simple_string()")
)]
pub rust_log: Option<String>,
pub sgx_heap_size: u64,
#[serde(default)]
pub usernode_sync_timeout_secs: Option<u64>,
pub untrusted_deploy_env: DeployEnv,
#[cfg_attr(
test,
proptest(strategy = "arbitrary::any_vec_simple_string()")
)]
pub untrusted_esplora_urls: Vec<String>,
pub untrusted_network: Network,
pub user_inactivity_secs: u64,
pub usernode_buffer_slots: usize,
pub usernode_memory: u64,
}
impl EnclaveArgs for MegaArgs {
const NAME: &str = "mega";
}
#[cfg(test)]
mod test {
use lexe_common::test_utils::roundtrip;
use super::*;
#[test]
fn node_args_json_string_roundtrip() {
roundtrip::json_string_roundtrip_proptest::<MegaArgs>();
}
}