pub struct Global;Expand description
The global memory allocator.
This type implements the Allocator trait by forwarding calls
to the allocator registered with the #[global_allocator] attribute
if there is one, or the std crate’s default.
Note: while this type is unstable, the functionality it provides can be
accessed through the free functions in alloc.
Implementations
source impl<T> Box<T, Global>
 
impl<T> Box<T, Global>
1.0.0 · source pub fn new(x: T) -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
pub fn new(x: T) -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
source pub fn new_uninit() -> Box<MaybeUninit<T>, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
pub fn new_uninit() -> Box<MaybeUninit<T>, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
source pub fn new_zeroed() -> Box<MaybeUninit<T>, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
pub fn new_zeroed() -> Box<MaybeUninit<T>, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Constructs a new Box with uninitialized contents, with the memory
being filled with 0 bytes.
See MaybeUninit::zeroed for examples of correct and incorrect usage
of this method.
Examples
#![feature(new_uninit)]
let zero = Box::<u32>::new_zeroed();
let zero = unsafe { zero.assume_init() };
assert_eq!(*zero, 0)1.33.0 · source pub fn pin(x: T) -> Pin<Box<T, Global>>iNotable traits for Pin<P>impl<P> Future for Pin<P> where
  P: DerefMut,
  <P as Deref>::Target: Future,  type Output = <<P as Deref>::Target as Future>::Output;
 
pub fn pin(x: T) -> Pin<Box<T, Global>>iNotable traits for Pin<P>impl<P> Future for Pin<P> where
  P: DerefMut,
  <P as Deref>::Target: Future,  type Output = <<P as Deref>::Target as Future>::Output;
P: DerefMut,
<P as Deref>::Target: Future, type Output = <<P as Deref>::Target as Future>::Output;
Constructs a new Pin<Box<T>>. If T does not implement Unpin, then
x will be pinned in memory and unable to be moved.
Constructing and pinning of the Box can also be done in two steps: Box::pin(x)
does the same as Box::into_pin(Box::new(x)). Consider using
into_pin if you already have a Box<T>, or if you want to
construct a (pinned) Box in a different way than with Box::new.
source pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>, Global>, AllocError>
 
pub fn try_new_uninit() -> Result<Box<MaybeUninit<T>, Global>, AllocError>
Constructs a new box with uninitialized contents on the heap, returning an error if the allocation fails
Examples
#![feature(allocator_api, new_uninit)]
let mut five = Box::<u32>::try_new_uninit()?;
let five = unsafe {
 // Deferred initialization:
 five.as_mut_ptr().write(5);
 five.assume_init()
};
assert_eq!(*five, 5);source pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>, Global>, AllocError>
 
pub fn try_new_zeroed() -> Result<Box<MaybeUninit<T>, Global>, AllocError>
Constructs a new Box with uninitialized contents, with the memory
being filled with 0 bytes on the heap
See MaybeUninit::zeroed for examples of correct and incorrect usage
of this method.
Examples
#![feature(allocator_api, new_uninit)]
let zero = Box::<u32>::try_new_zeroed()?;
let zero = unsafe { zero.assume_init() };
assert_eq!(*zero, 0);source impl<T> Box<[T], Global>
 
impl<T> Box<[T], Global>
source pub fn new_uninit_slice(len: usize) -> Box<[MaybeUninit<T>], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
pub fn new_uninit_slice(len: usize) -> Box<[MaybeUninit<T>], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Constructs a new boxed slice with uninitialized contents.
Examples
#![feature(new_uninit)]
let mut values = Box::<[u32]>::new_uninit_slice(3);
let values = unsafe {
 // Deferred initialization:
 values[0].as_mut_ptr().write(1);
 values[1].as_mut_ptr().write(2);
 values[2].as_mut_ptr().write(3);
 values.assume_init()
};
assert_eq!(*values, [1, 2, 3])source pub fn new_zeroed_slice(len: usize) -> Box<[MaybeUninit<T>], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
pub fn new_zeroed_slice(len: usize) -> Box<[MaybeUninit<T>], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Constructs a new boxed slice with uninitialized contents, with the memory
being filled with 0 bytes.
See MaybeUninit::zeroed for examples of correct and incorrect usage
of this method.
Examples
#![feature(new_uninit)]
let values = Box::<[u32]>::new_zeroed_slice(3);
let values = unsafe { values.assume_init() };
assert_eq!(*values, [0, 0, 0])source pub fn try_new_uninit_slice(
  len: usize 
) -> Result<Box<[MaybeUninit<T>], Global>, AllocError>
 
pub fn try_new_uninit_slice(
  len: usize 
) -> Result<Box<[MaybeUninit<T>], Global>, AllocError>
Constructs a new boxed slice with uninitialized contents. Returns an error if the allocation fails
Examples
#![feature(allocator_api, new_uninit)]
let mut values = Box::<[u32]>::try_new_uninit_slice(3)?;
let values = unsafe {
 // Deferred initialization:
 values[0].as_mut_ptr().write(1);
 values[1].as_mut_ptr().write(2);
 values[2].as_mut_ptr().write(3);
 values.assume_init()
};
assert_eq!(*values, [1, 2, 3]);source pub fn try_new_zeroed_slice(
  len: usize 
) -> Result<Box<[MaybeUninit<T>], Global>, AllocError>
 
pub fn try_new_zeroed_slice(
  len: usize 
) -> Result<Box<[MaybeUninit<T>], Global>, AllocError>
Constructs a new boxed slice with uninitialized contents, with the memory
being filled with 0 bytes. Returns an error if the allocation fails
See MaybeUninit::zeroed for examples of correct and incorrect usage
of this method.
Examples
#![feature(allocator_api, new_uninit)]
let values = Box::<[u32]>::try_new_zeroed_slice(3)?;
let values = unsafe { values.assume_init() };
assert_eq!(*values, [0, 0, 0]);source impl<T> Box<T, Global> where
  T: ?Sized, 
 
impl<T> Box<T, Global> where
  T: ?Sized, 
1.4.0 · source pub unsafe fn from_raw(raw: *mut T) -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
pub unsafe fn from_raw(raw: *mut T) -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Constructs a box from a raw pointer.
After calling this function, the raw pointer is owned by the
resulting Box. Specifically, the Box destructor will call
the destructor of T and free the allocated memory. For this
to be safe, the memory must have been allocated in accordance
with the memory layout used by Box .
Safety
This function is unsafe because improper use may lead to memory problems. For example, a double-free may occur if the function is called twice on the same raw pointer.
The safety conditions are described in the memory layout section.
Examples
Recreate a Box which was previously converted to a raw pointer
using Box::into_raw:
let x = Box::new(5);
let ptr = Box::into_raw(x);
let x = unsafe { Box::from_raw(ptr) };Manually create a Box from scratch by using the global allocator:
use std::alloc::{alloc, Layout};
unsafe {
 let ptr = alloc(Layout::new::<i32>()) as *mut i32;
 // In general .write is required to avoid attempting to destruct
 // the (uninitialized) previous contents of `ptr`, though for this
 // simple example `*ptr = 5` would have worked as well.
 ptr.write(5);
 let x = Box::from_raw(ptr);
}Trait Implementations
source impl Allocator for Global 
 
impl Allocator for Global
source fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
 
fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
Attempts to allocate a block of memory. Read more
source fn allocate_zeroed(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
 
fn allocate_zeroed(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>
Behaves like allocate, but also ensures that the returned memory is zero-initialized. Read more 
source unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout)
 
unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout)
Deallocates the memory referenced by ptr. Read more 
source unsafe fn grow(
  &self,
  ptr: NonNull<u8>,
  old_layout: Layout,
  new_layout: Layout 
) -> Result<NonNull<[u8]>, AllocError>
 
unsafe fn grow(
  &self,
  ptr: NonNull<u8>,
  old_layout: Layout,
  new_layout: Layout 
) -> Result<NonNull<[u8]>, AllocError>
Attempts to extend the memory block. Read more
source unsafe fn grow_zeroed(
  &self,
  ptr: NonNull<u8>,
  old_layout: Layout,
  new_layout: Layout 
) -> Result<NonNull<[u8]>, AllocError>
 
unsafe fn grow_zeroed(
  &self,
  ptr: NonNull<u8>,
  old_layout: Layout,
  new_layout: Layout 
) -> Result<NonNull<[u8]>, AllocError>
Behaves like grow, but also ensures that the new contents are set to zero before being
returned. Read more 
source impl<S> AsyncIterator for Box<S, Global> where
  S: AsyncIterator + Unpin + ?Sized, 
 
impl<S> AsyncIterator for Box<S, Global> where
  S: AsyncIterator + Unpin + ?Sized, 
source fn poll_next(
  self: Pin<&mut Box<S, Global>>,
  cx: &mut Context<'_>
) -> Poll<Option<<Box<S, Global> as AsyncIterator>::Item>>
 
fn poll_next(
  self: Pin<&mut Box<S, Global>>,
  cx: &mut Context<'_>
) -> Poll<Option<<Box<S, Global> as AsyncIterator>::Item>>
Attempt to pull out the next value of this async iterator, registering the
current task for wakeup if the value is not yet available, and returning
None if the async iterator is exhausted. Read more 
1.29.0 · source impl Clone for Box<CStr, Global>
 
impl Clone for Box<CStr, Global>
source fn clone(&self) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn clone(&self) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Returns a copy of the value. Read more
1.0.0 · source fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more 
1.3.0 · source impl Clone for Box<str, Global>
 
impl Clone for Box<str, Global>
source fn clone(&self) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn clone(&self) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Returns a copy of the value. Read more
1.0.0 · source fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more 
1.0.0 (const: unstable) · source impl<T> Default for Box<[T], Global>
 
impl<T> Default for Box<[T], Global>
const: unstable  · source fn default() -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn default() -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Returns the "default value" for a type. Read more
1.17.0 · source impl Default for Box<CStr, Global>
 
impl Default for Box<CStr, Global>
source fn default() -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn default() -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Returns the "default value" for a type. Read more
1.0.0 · source impl<T> Default for Box<T, Global> where
  T: Default, 
 
impl<T> Default for Box<T, Global> where
  T: Default, 
source fn default() -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn default() -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Creates a Box<T>, with the Default value for T.
1.17.0 (const: unstable) · source impl Default for Box<str, Global>
 
impl Default for Box<str, Global>
const: unstable  · source fn default() -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn default() -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Returns the "default value" for a type. Read more
1.17.0 · source impl<T> From<&[T]> for Box<[T], Global> where
  T: Copy, 
 
impl<T> From<&[T]> for Box<[T], Global> where
  T: Copy, 
source fn from(slice: &[T]) -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(slice: &[T]) -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
1.17.0 · source impl From<&CStr> for Box<CStr, Global>
 
impl From<&CStr> for Box<CStr, Global>
source fn from(s: &CStr) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(s: &CStr) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Converts a &CStr into a Box<CStr>,
by copying the contents into a newly allocated Box.
1.17.0 · source impl From<&str> for Box<str, Global>
 
impl From<&str> for Box<str, Global>
source fn from(s: &str) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(s: &str) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
1.45.0 · source impl<T, const N: usize> From<[T; N]> for Box<[T], Global>
 
impl<T, const N: usize> From<[T; N]> for Box<[T], Global>
source fn from(array: [T; N]) -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(array: [T; N]) -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
1.20.0 · source impl From<CString> for Box<CStr, Global>
 
impl From<CString> for Box<CStr, Global>
source fn from(s: CString) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(s: CString) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
1.45.0 · source impl<T> From<Cow<'_, [T]>> for Box<[T], Global> where
  T: Copy, 
 
impl<T> From<Cow<'_, [T]>> for Box<[T], Global> where
  T: Copy, 
source fn from(cow: Cow<'_, [T]>) -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(cow: Cow<'_, [T]>) -> Box<[T], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Converts a Cow<'_, [T]> into a Box<[T]>
When cow is the Cow::Borrowed variant, this
conversion allocates on the heap and copies the
underlying slice. Otherwise, it will try to reuse the owned
Vec’s allocation.
1.45.0 · source impl From<Cow<'_, CStr>> for Box<CStr, Global>
 
impl From<Cow<'_, CStr>> for Box<CStr, Global>
source fn from(cow: Cow<'_, CStr>) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(cow: Cow<'_, CStr>) -> Box<CStr, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Converts a Cow<'a, CStr> into a Box<CStr>,
by copying the contents if they are borrowed.
1.45.0 · source impl From<Cow<'_, str>> for Box<str, Global>
 
impl From<Cow<'_, str>> for Box<str, Global>
source fn from(cow: Cow<'_, str>) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(cow: Cow<'_, str>) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Converts a Cow<'_, str> into a Box<str>
When cow is the Cow::Borrowed variant, this
conversion allocates on the heap and copies the
underlying str. Otherwise, it will try to reuse the owned
String’s allocation.
Examples
use std::borrow::Cow;
let unboxed = Cow::Borrowed("hello");
let boxed: Box<str> = Box::from(unboxed);
println!("{boxed}");let unboxed = Cow::Owned("hello".to_string());
let boxed: Box<str> = Box::from(unboxed);
println!("{boxed}");1.20.0 · source impl From<String> for Box<str, Global>
 
impl From<String> for Box<str, Global>
source fn from(s: String) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(s: String) -> Box<str, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
1.6.0 · source impl<T> From<T> for Box<T, Global>
 
impl<T> From<T> for Box<T, Global>
source fn from(t: T) -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
 
fn from(t: T) -> Box<T, Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
1.32.0 · source impl<I> FromIterator<I> for Box<[I], Global>
 
impl<I> FromIterator<I> for Box<[I], Global>
source fn from_iter<T>(iter: T) -> Box<[I], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W> where
  T: IntoIterator<Item = I>, 
 
fn from_iter<T>(iter: T) -> Box<[I], Global>iNotable traits for Box<I, A>impl<I, A> Iterator for Box<I, A> where
  I: Iterator + ?Sized,
  A: Allocator,  type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
  F: Future + Unpin + ?Sized,
  A: Allocator + 'static,  type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W> where
  T: IntoIterator<Item = I>, 
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for Box<R>impl<W: Write + ?Sized> Write for Box<W>
Creates a value from an iterator. Read more
1.43.0 · source impl<T, const N: usize> TryFrom<Box<[T], Global>> for Box<[T; N], Global>
 
impl<T, const N: usize> TryFrom<Box<[T], Global>> for Box<[T; N], Global>
source fn try_from(
  boxed_slice: Box<[T], Global>
) -> Result<Box<[T; N], Global>, <Box<[T; N], Global> as TryFrom<Box<[T], Global>>>::Error>
 
fn try_from(
  boxed_slice: Box<[T], Global>
) -> Result<Box<[T; N], Global>, <Box<[T; N], Global> as TryFrom<Box<[T], Global>>>::Error>
Attempts to convert a Box<[T]> into a Box<[T; N]>.
The conversion occurs in-place and does not require a new memory allocation.
Errors
Returns the old Box<[T]> in the Err variant if
boxed_slice.len() does not equal N.
impl Copy for Global
impl<T, U> DispatchFromDyn<Box<U, Global>> for Box<T, Global> where
  T: Unsize<U> + ?Sized,
  U: ?Sized, 
Auto Trait Implementations
impl RefUnwindSafe for Global
impl Send for Global
impl Sync for Global
impl Unpin for Global
impl UnwindSafe for Global
Blanket Implementations
source impl<T> BorrowMut<T> for T where
  T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
  T: ?Sized, 
const: unstable  · source fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more