[−][src]Struct hexchat::SafeUninit
An initially uninitialized resource that is safe to use in a HexChat plugin.
It is recommended that you not use any other kind of static resource crate, because any static
resource will not get dropped when your plugin is unloaded, leading to a memory leak if the
resource contains a heap allocation. This includes thread_local!
, lazy_static
, once_cell
,
etc. It's not the crate that matters, it's the heap resource.
Any SafeUninit
s will be initialized when the init
function is called, and will be dropped
after your plugin is dropped.
A SafeLazy
must always be in a static variable. To do otherwise is undefined.
Important
Any thread which accesses a safe static, mutex or no, must be killed inside your plugin's Drop
implementation. To allow otherwise is undefined.
Methods
impl<T> SafeUninit<T>
[src]
pub fn init(&self, instance: T)
[src]
Initializes this SafeUninit
with a value. Only works the first time it's called.
Trait Implementations
impl<T> Sync for SafeUninit<T> where
T: Send + Sync,
[src]
T: Send + Sync,
impl<T> Deref for SafeUninit<T>
[src]
Auto Trait Implementations
impl<T> Send for SafeUninit<T> where
T: Send,
T: Send,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.