wasmtime_internal_core/alloc/
arc.rs1use super::TryNew;
2use crate::error::OutOfMemory;
3use std_alloc::sync::Arc;
4
5impl<T> TryNew for Arc<T> {
9 type Value = T;
10
11 #[inline]
12 fn try_new(value: T) -> Result<Self, OutOfMemory>
13 where
14 Self: Sized,
15 {
16 #[cfg(arc_try_new)]
17 return Arc::try_new(value).map_err(|_| {
18 let bytes = core::mem::size_of::<(usize, usize, T)>();
22 OutOfMemory::new(bytes)
23 });
24
25 #[cfg(not(arc_try_new))]
26 return Ok(Arc::new(value));
27 }
28}
29
30#[cfg(test)]
31mod test {
32 use super::{Arc, TryNew};
33
34 #[test]
35 fn try_new() {
36 <Arc<_> as TryNew>::try_new(4).unwrap();
37 }
38}