Struct Current

Source
pub struct Current<T>(/* private fields */);
Expand description

The current value of a type.

Implementations§

Source§

impl<T> Current<T>
where T: Any,

Source

pub unsafe fn new() -> Current<T>

Creates a new current object

Examples found in repository?
examples/text.rs (line 10)
9fn print_foo() {
10    let foo = unsafe { &*Current::<Foo>::new() };
11    println!("{}", foo.text);
12    unsafe { &mut *Current::<Foo>::new() }.text = "world!".to_string();
13}
Source

pub unsafe fn current(&mut self) -> Option<&mut T>

Gets mutable reference to current object. Requires mutable reference to prevent access to globals in safe code, and to prevent mutable borrows of same value in scope. Is unsafe because returned reference inherits lifetime from argument.

Source

pub unsafe fn current_unwrap(&mut self) -> &mut T

Unwraps mutable reference to current object, but with nicer error message.

Trait Implementations§

Source§

impl<T> Deref for Current<T>
where T: Any,

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref<'a>(&'a self) -> &'a T

Dereferences the value.
Source§

impl<T> DerefMut for Current<T>
where T: Any,

Source§

fn deref_mut<'a>(&'a mut self) -> &'a mut T

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<T> Freeze for Current<T>

§

impl<T> RefUnwindSafe for Current<T>
where T: RefUnwindSafe,

§

impl<T> Send for Current<T>
where T: Send,

§

impl<T> Sync for Current<T>
where T: Sync,

§

impl<T> Unpin for Current<T>
where T: Unpin,

§

impl<T> UnwindSafe for Current<T>
where T: UnwindSafe,

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> 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.