use std::env;
pub struct ArchConfig {
pub replica_offset: usize,
}
impl ArchConfig {
pub fn for_platform() -> Self {
let default_offset = Self::detect_default_offset();
let replica_offset = env::var("SLAYER_REPLICA_OFFSET")
.ok()
.and_then(|v| v.parse().ok())
.unwrap_or(default_offset);
Self { replica_offset }
}
fn detect_default_offset() -> usize {
#[cfg(target_arch = "x86_64")]
{
64 * 1024 * 1024
}
#[cfg(target_arch = "aarch64")]
{
1024 * 1024 * 1024
}
#[cfg(not(any(target_arch = "x86_64", target_arch = "aarch64")))]
{
128 * 1024 * 1024
}
}
}