1 use super::PoolingAllocationConfig; 2 use arbitrary::Arbitrary; 3 4 /// Configuration for `wasmtime::InstanceAllocationStrategy`. 5 #[derive(Arbitrary, Clone, Debug, Eq, PartialEq, Hash)] 6 pub enum InstanceAllocationStrategy { 7 /// Use the on-demand instance allocation strategy. 8 OnDemand, 9 /// Use the pooling instance allocation strategy. 10 Pooling(PoolingAllocationConfig), 11 } 12 13 impl InstanceAllocationStrategy { 14 /// Convert this generated strategy a Wasmtime strategy. 15 pub fn to_wasmtime(&self) -> wasmtime::InstanceAllocationStrategy { 16 match self { 17 InstanceAllocationStrategy::OnDemand => wasmtime::InstanceAllocationStrategy::OnDemand, 18 InstanceAllocationStrategy::Pooling(pooling) => { 19 wasmtime::InstanceAllocationStrategy::Pooling(pooling.to_wasmtime()) 20 } 21 } 22 } 23 } 24