Trait moveit::new::Swap

source ·
pub trait Swap<Rhs = Self> {
    // Required method
    fn swap_with(self: Pin<&mut Self>, src: Pin<&mut Rhs>);
}
Expand description

A swappable type, which is able to efficiently swap the contents of two of its values.

Unlike New, Swap is safe, because it does not impose any requirements on the swapped pointers.

It is possible to implement swapping with a source type that isn’t Self.

Required Methods§

source

fn swap_with(self: Pin<&mut Self>, src: Pin<&mut Rhs>)

Swaps the contents of self and src without running any destructors.

Implementations on Foreign Types§

source§

impl Swap for bool

source§

impl Swap for char

source§

impl Swap for i8

source§

impl Swap for i16

source§

impl Swap for i32

source§

impl Swap for i64

source§

impl Swap for i128

source§

impl Swap for isize

source§

impl Swap for u8

source§

impl Swap for u16

source§

impl Swap for u32

source§

impl Swap for u64

source§

impl Swap for u128

source§

impl Swap for ()

source§

impl Swap for usize

source§

impl Swap for String

source§

impl Swap for Layout

source§

impl Swap for PhantomPinned

source§

impl Swap for AtomicI8

source§

impl Swap for AtomicI16

source§

impl Swap for AtomicI32

source§

impl Swap for AtomicI64

source§

impl Swap for AtomicIsize

source§

impl Swap for AtomicU8

source§

impl Swap for AtomicU16

source§

impl Swap for AtomicU32

source§

impl Swap for AtomicU64

source§

impl Swap for AtomicUsize

source§

impl Swap for Duration

source§

impl Swap for NonZeroI8

source§

impl Swap for NonZeroI16

source§

impl Swap for NonZeroI32

source§

impl Swap for NonZeroI64

source§

impl Swap for NonZeroI128

source§

impl Swap for NonZeroIsize

source§

impl Swap for NonZeroU8

source§

impl Swap for NonZeroU16

source§

impl Swap for NonZeroU32

source§

impl Swap for NonZeroU64

source§

impl Swap for NonZeroU128

source§

impl Swap for NonZeroUsize

source§

impl<K, V> Swap for BTreeMap<K, V>

source§

impl<T> Swap for Option<T>

source§

impl<T> Swap for Box<T>

source§

impl<T> Swap for BinaryHeap<T>

source§

impl<T> Swap for BTreeSet<T>

source§

impl<T> Swap for LinkedList<T>

source§

impl<T> Swap for VecDeque<T>

source§

impl<T> Swap for Rc<T>

source§

impl<T> Swap for Weak<T>

source§

impl<T> Swap for Arc<T>

source§

impl<T> Swap for Weak<T>

source§

impl<T> Swap for Vec<T>

source§

impl<T> Swap for Cell<T>

source§

impl<T> Swap for Ref<'_, T>

source§

impl<T> Swap for RefCell<T>

source§

impl<T> Swap for RefMut<'_, T>

source§

impl<T> Swap for UnsafeCell<T>

source§

impl<T> Swap for ManuallyDrop<T>

source§

impl<T> Swap for Discriminant<T>

source§

impl<T> Swap for Wrapping<T>

source§

impl<T> Swap for Pin<T>

source§

impl<T> Swap for NonNull<T>

source§

impl<T> Swap for AtomicPtr<T>

source§

impl<T> Swap for MaybeUninit<T>

source§

impl<T, E> Swap for Result<T, E>

source§

impl<T: ?Sized> Swap for *const T

source§

impl<T: ?Sized> Swap for *mut T

source§

impl<T: ?Sized> Swap for &T

source§

impl<T: ?Sized> Swap for &mut T

source§

impl<T: ?Sized> Swap for PhantomData<T>

Implementors§