Lines Matching refs:T

1055 pub unsafe trait PinInit<T: ?Sized, E = Infallible>: Sized {
1064 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E>; in __pinned_init()
1084 fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E> in pin_chain() argument
1086 F: FnOnce(Pin<&mut T>) -> Result<(), E>, in pin_chain()
1093 pub struct ChainPinInit<I, F, T: ?Sized, E>(I, F, __internal::Invariant<(E, T)>);
1099 unsafe impl<T: ?Sized, E, I, F> PinInit<T, E> for ChainPinInit<I, F, T, E>
1101 I: PinInit<T, E>,
1102 F: FnOnce(Pin<&mut T>) -> Result<(), E>,
1104 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { in __pinned_init()
1154 pub unsafe trait Init<T: ?Sized, E = Infallible>: PinInit<T, E> {
1162 unsafe fn __init(self, slot: *mut T) -> Result<(), E>; in __init()
1192 fn chain<F>(self, f: F) -> ChainInit<Self, F, T, E> in chain() argument
1194 F: FnOnce(&mut T) -> Result<(), E>, in chain()
1201 pub struct ChainInit<I, F, T: ?Sized, E>(I, F, __internal::Invariant<(E, T)>);
1206 unsafe impl<T: ?Sized, E, I, F> Init<T, E> for ChainInit<I, F, T, E>
1208 I: Init<T, E>,
1209 F: FnOnce(&mut T) -> Result<(), E>,
1211 unsafe fn __init(self, slot: *mut T) -> Result<(), E> { in __init()
1222 unsafe impl<T: ?Sized, E, I, F> PinInit<T, E> for ChainInit<I, F, T, E>
1224 I: Init<T, E>,
1225 F: FnOnce(&mut T) -> Result<(), E>,
1227 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { in __pinned_init()
1246 pub const unsafe fn pin_init_from_closure<T: ?Sized, E>( in pin_init_from_closure()
1247 f: impl FnOnce(*mut T) -> Result<(), E>, in pin_init_from_closure()
1248 ) -> impl PinInit<T, E> { in pin_init_from_closure() argument
1265 pub const unsafe fn init_from_closure<T: ?Sized, E>( in init_from_closure()
1266 f: impl FnOnce(*mut T) -> Result<(), E>, in init_from_closure()
1267 ) -> impl Init<T, E> { in init_from_closure() argument
1278 pub const unsafe fn cast_pin_init<T, U, E>(init: impl PinInit<T, E>) -> impl PinInit<U, E> { in cast_pin_init() argument
1281 let res = unsafe { pin_init_from_closure(|ptr: *mut U| init.__pinned_init(ptr.cast::<T>())) }; in cast_pin_init()
1294 pub const unsafe fn cast_init<T, U, E>(init: impl Init<T, E>) -> impl Init<U, E> { in cast_init() argument
1297 let res = unsafe { init_from_closure(|ptr: *mut U| init.__init(ptr.cast::<T>())) }; in cast_init()
1307 pub fn uninit<T, E>() -> impl Init<MaybeUninit<T>, E> { in uninit() argument
1322 pub fn init_array_from_fn<I, const N: usize, T, E>( in init_array_from_fn() argument
1324 ) -> impl Init<[T; N], E> in init_array_from_fn()
1326 I: Init<T, E>, argument
1328 let init = move |slot: *mut [T; N]| {
1329 let slot = slot.cast::<T>();
1365 pub fn pin_init_array_from_fn<I, const N: usize, T, E>( in pin_init_array_from_fn() argument
1367 ) -> impl PinInit<[T; N], E> in pin_init_array_from_fn()
1369 I: PinInit<T, E>, argument
1371 let init = move |slot: *mut [T; N]| {
1372 let slot = slot.cast::<T>();
1394 unsafe impl<T> Init<T> for T { implementation
1395 unsafe fn __init(self, slot: *mut T) -> Result<(), Infallible> { in __init()
1404 unsafe impl<T> PinInit<T> for T { implementation
1405 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible> { in __pinned_init()
1415 unsafe impl<T, E> Init<T, E> for Result<T, E> {
1416 unsafe fn __init(self, slot: *mut T) -> Result<(), E> { in __init()
1426 unsafe impl<T, E> PinInit<T, E> for Result<T, E> {
1427 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { in __pinned_init()
1435 pub trait InPlaceWrite<T> {
1442 fn write_init<E>(self, init: impl Init<T, E>) -> Result<Self::Initialized, E>; in write_init() argument
1447 fn write_pin_init<E>(self, init: impl PinInit<T, E>) -> Result<Pin<Self::Initialized>, E>; in write_pin_init() argument
1547 unsafe impl<T: ZeroableOption> Zeroable for Option<T> {}
1551 unsafe impl<T> ZeroableOption for &T {} implementation
1554 unsafe impl<T> ZeroableOption for &mut T {} implementation
1557 unsafe impl<T> ZeroableOption for NonNull<T> {}
1563 pub fn init_zeroed<T: Zeroable>() -> impl Init<T> { in init_zeroed() argument
1567 init_from_closure(|slot: *mut T| { in init_zeroed()
1594 pub const fn zeroed<T: Zeroable>() -> T { in zeroed() argument
1622 {<T: ?Sized>} PhantomData<T>, core::marker::PhantomPinned, (),
1625 {<T>} MaybeUninit<T>,
1628 {<T: ?Sized + Zeroable>} UnsafeCell<T>,
1644 {<T>} *mut T, {<T>} *const T,
1648 {<T>} *mut [T], {<T>} *const [T], *mut str, *const str,
1651 {<const N: usize, T: Zeroable>} [T; N], {<T: Zeroable>} Wrapping<T>,
1679 impl_fn_zeroable_option!(["Rust", "C"] { A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T
1706 pub trait Wrapper<T> {
1708 fn pin_init<E>(value_init: impl PinInit<T, E>) -> impl PinInit<Self, E>; in pin_init() argument
1711 impl<T> Wrapper<T> for UnsafeCell<T> {
1712 fn pin_init<E>(value_init: impl PinInit<T, E>) -> impl PinInit<Self, E> { in pin_init() argument
1718 impl<T> Wrapper<T> for MaybeUninit<T> {
1719 fn pin_init<E>(value_init: impl PinInit<T, E>) -> impl PinInit<Self, E> { in pin_init() argument
1726 impl<T> Wrapper<T> for core::pin::UnsafePinned<T> {
1727 fn pin_init<E>(init: impl PinInit<T, E>) -> impl PinInit<Self, E> { in pin_init() argument