Struct UncheckedSync

Source
pub struct UncheckedSync<T: ?Sized>(/* private fields */);
Expand description

A wrapper that implements Sync, even when T doesn’t.

This type is unsafe to construct, and doesn’t have any checks for whether your usage of the type is actually thread-safe.

Access to the inner value is provided via the Deref/DerefMut traits, and via the into_inner method.

See the crate-level-docs for more information.

Implementations§

Source§

impl<T> UncheckedSync<T>

Source

pub const unsafe fn new(value: T) -> Self

Constructs a new instance of UncheckedSync which will wrap the specified value.

Note that this function is unsafe, while all other API of UncheckedSync is safe.

§Safety

All subsequent uses of the constructed UncheckedSync must be thread-safe.

Source

pub fn into_inner(self) -> T

Unwraps the UncheckedSync, consuming it.

Trait Implementations§

Source§

impl<T: Copy> Clone for UncheckedSync<T>

UncheckedSync implements Clone only when T is Copy, not when T is Clone. This impl is provided because it is required for the Copy impl.

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: ?Sized> Deref for UncheckedSync<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T: ?Sized> DerefMut for UncheckedSync<T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<T: Copy> Copy for UncheckedSync<T>

This impl is provided because, without it, it would be impossible for a struct containing an UncheckedSync to implement Copy.

Source§

impl<T: ?Sized> Sync for UncheckedSync<T>

Auto Trait Implementations§

§

impl<T> Freeze for UncheckedSync<T>
where T: Freeze + ?Sized,

§

impl<T> RefUnwindSafe for UncheckedSync<T>
where T: RefUnwindSafe + ?Sized,

§

impl<T> Send for UncheckedSync<T>
where T: Send + ?Sized,

§

impl<T> Unpin for UncheckedSync<T>
where T: Unpin + ?Sized,

§

impl<T> UnwindSafe for UncheckedSync<T>
where T: UnwindSafe + ?Sized,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.