Lines Matching refs:T
220 pub struct ScopeGuard<T, F: FnOnce(T)>(Option<(T, F)>);
222 impl<T, F: FnOnce(T)> ScopeGuard<T, F> {
224 pub fn new_with_data(data: T, cleanup_func: F) -> Self { in new_with_data() argument
230 pub fn dismiss(mut self) -> T { in dismiss() argument
244 impl<T, F: FnOnce(T)> Deref for ScopeGuard<T, F> {
245 type Target = T;
247 fn deref(&self) -> &T { in deref() argument
253 impl<T, F: FnOnce(T)> DerefMut for ScopeGuard<T, F> {
254 fn deref_mut(&mut self) -> &mut T { in deref_mut() argument
260 impl<T, F: FnOnce(T)> Drop for ScopeGuard<T, F> {
324 pub struct Opaque<T> {
325 value: UnsafeCell<MaybeUninit<T>>,
330 unsafe impl<T> Zeroable for Opaque<T> {}
332 impl<T> Opaque<T> {
334 pub const fn new(value: T) -> Self { in new()
365 pub fn ffi_init(init_func: impl FnOnce(*mut T)) -> impl PinInit<Self> { in ffi_init()
385 init_func: impl FnOnce(*mut T) -> Result<(), E>, in try_ffi_init()
395 pub const fn get(&self) -> *mut T { in get() argument
396 UnsafeCell::get(&self.value).cast::<T>() in get()
403 pub const fn cast_into(this: *const Self) -> *mut T { in cast_into() argument
404 UnsafeCell::raw_get(this.cast::<UnsafeCell<MaybeUninit<T>>>()).cast::<T>() in cast_into()
408 pub const fn cast_from(this: *const T) -> *const Self { in cast_from()
413 impl<T> Wrapper<T> for Opaque<T> {
415 fn pin_init<E>(slot: impl PinInit<T, E>) -> impl PinInit<Self, E> { in pin_init() argument
416 Self::try_ffi_init(|ptr: *mut T| { in pin_init()
421 unsafe { PinInit::<T, E>::__pinned_init(slot, ptr) } in pin_init()