Rollup merge of #85579 - alex:patch-1, r=yaahc
Added Arc::try_pin This helper is in line with other other allocation helpers on Arc. I didn't think this would require an RFC or broader discussion, let me know if that's incorrect.
This commit is contained in:
commit
10f335fed1
1 changed files with 7 additions and 1 deletions
|
@ -19,7 +19,6 @@ use core::marker::{PhantomData, Unpin, Unsize};
|
|||
use core::mem::size_of_val;
|
||||
use core::mem::{self, align_of_val_raw};
|
||||
use core::ops::{CoerceUnsized, Deref, DispatchFromDyn, Receiver};
|
||||
#[cfg(not(no_global_oom_handling))]
|
||||
use core::pin::Pin;
|
||||
use core::ptr::{self, NonNull};
|
||||
#[cfg(not(no_global_oom_handling))]
|
||||
|
@ -494,6 +493,13 @@ impl<T> Arc<T> {
|
|||
unsafe { Pin::new_unchecked(Arc::new(data)) }
|
||||
}
|
||||
|
||||
/// Constructs a new `Pin<Arc<T>>`, return an error if allocation fails.
|
||||
#[unstable(feature = "allocator_api", issue = "32838")]
|
||||
#[inline]
|
||||
pub fn try_pin(data: T) -> Result<Pin<Arc<T>>, AllocError> {
|
||||
unsafe { Ok(Pin::new_unchecked(Arc::try_new(data)?)) }
|
||||
}
|
||||
|
||||
/// Constructs a new `Arc<T>`, returning an error if allocation fails.
|
||||
///
|
||||
/// # Examples
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue