use super::mitigations;
use super::private;
pub trait AllocPolicy: private::Sealed + Send + Sync + 'static {
const ENABLE_POISONING: bool;
const ZERO_INITIALIZE: bool;
const POISON_FREE_BYTE: u8 = 0xDE;
const POISON_ALLOC_BYTE: u8 = 0xAD;
const ENABLE_FREE_LIST_ENCRYPTION: bool = false;
const RANDOMIZE_ALLOCATION: bool = false;
const DELAY_PAGE_WAKE: bool = false;
const WAKE_DENOMINATOR: u16 = 4;
const SEGMENT_POOL_WARM_THRESHOLD: usize = 0;
const POLICY_NAME: &'static str = "custom";
const MITIGATION_FLAGS: u32 = mitigations::NONE;
const GWP_SAMPLE_RATE: u32 = 0;
const MAX_ALLOC_SIZE_LIMIT: usize = 0;
const POLICY_FINGERPRINT: u64 = {
(Self::ENABLE_POISONING as u64)
| ((Self::ZERO_INITIALIZE as u64) << 1)
| ((Self::ENABLE_FREE_LIST_ENCRYPTION as u64) << 2)
| ((Self::RANDOMIZE_ALLOCATION as u64) << 3)
| ((Self::DELAY_PAGE_WAKE as u64) << 4)
| ((Self::WAKE_DENOMINATOR as u64) << 5)
| (((Self::SEGMENT_POOL_WARM_THRESHOLD & 0xFF) as u64) << 20)
| ((Self::MITIGATION_FLAGS as u64) << 28)
};
}