Lines Matching refs:T

1057 pub unsafe trait PinInit<T: ?Sized, E = Infallible>: Sized {
1066 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E>; in __pinned_init()
1086 fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E> in pin_chain() argument
1088 F: FnOnce(Pin<&mut T>) -> Result<(), E>, in pin_chain()
1095 pub struct ChainPinInit<I, F, T: ?Sized, E>(I, F, __internal::Invariant<(E, T)>);
1101 unsafe impl<T: ?Sized, E, I, F> PinInit<T, E> for ChainPinInit<I, F, T, E>
1103 I: PinInit<T, E>,
1104 F: FnOnce(Pin<&mut T>) -> Result<(), E>,
1106 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { in __pinned_init()
1156 pub unsafe trait Init<T: ?Sized, E = Infallible>: PinInit<T, E> {
1164 unsafe fn __init(self, slot: *mut T) -> Result<(), E>; in __init()
1194 fn chain<F>(self, f: F) -> ChainInit<Self, F, T, E> in chain() argument
1196 F: FnOnce(&mut T) -> Result<(), E>, in chain()
1203 pub struct ChainInit<I, F, T: ?Sized, E>(I, F, __internal::Invariant<(E, T)>);
1208 unsafe impl<T: ?Sized, E, I, F> Init<T, E> for ChainInit<I, F, T, E>
1210 I: Init<T, E>,
1211 F: FnOnce(&mut T) -> Result<(), E>,
1213 unsafe fn __init(self, slot: *mut T) -> Result<(), E> { in __init()
1224 unsafe impl<T: ?Sized, E, I, F> PinInit<T, E> for ChainInit<I, F, T, E>
1226 I: Init<T, E>,
1227 F: FnOnce(&mut T) -> Result<(), E>,
1229 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { in __pinned_init()
1248 pub const unsafe fn pin_init_from_closure<T: ?Sized, E>( in pin_init_from_closure()
1249 f: impl FnOnce(*mut T) -> Result<(), E>, in pin_init_from_closure()
1250 ) -> impl PinInit<T, E> { in pin_init_from_closure() argument
1267 pub const unsafe fn init_from_closure<T: ?Sized, E>( in init_from_closure()
1268 f: impl FnOnce(*mut T) -> Result<(), E>, in init_from_closure()
1269 ) -> impl Init<T, E> { in init_from_closure() argument
1280 pub const unsafe fn cast_pin_init<T, U, E>(init: impl PinInit<T, E>) -> impl PinInit<U, E> { in cast_pin_init() argument
1283 let res = unsafe { pin_init_from_closure(|ptr: *mut U| init.__pinned_init(ptr.cast::<T>())) }; in cast_pin_init()
1296 pub const unsafe fn cast_init<T, U, E>(init: impl Init<T, E>) -> impl Init<U, E> { in cast_init() argument
1299 let res = unsafe { init_from_closure(|ptr: *mut U| init.__init(ptr.cast::<T>())) }; in cast_init()
1309 pub fn uninit<T, E>() -> impl Init<MaybeUninit<T>, E> { in uninit() argument
1324 pub fn init_array_from_fn<I, const N: usize, T, E>( in init_array_from_fn() argument
1326 ) -> impl Init<[T; N], E> in init_array_from_fn()
1328 I: Init<T, E>, argument
1330 let init = move |slot: *mut [T; N]| {
1331 let slot = slot.cast::<T>();
1367 pub fn pin_init_array_from_fn<I, const N: usize, T, E>( in pin_init_array_from_fn() argument
1369 ) -> impl PinInit<[T; N], E> in pin_init_array_from_fn()
1371 I: PinInit<T, E>, argument
1373 let init = move |slot: *mut [T; N]| {
1374 let slot = slot.cast::<T>();
1421 pub fn pin_init_scope<T, E, F, I>(make_init: F) -> impl PinInit<T, E> in pin_init_scope() argument
1424 I: PinInit<T, E>, in pin_init_scope() argument
1432 pin_init_from_closure(move |slot: *mut T| -> Result<(), E> { in pin_init_scope()
1464 pub fn init_scope<T, E, F, I>(make_init: F) -> impl Init<T, E> in init_scope() argument
1467 I: Init<T, E>, in init_scope() argument
1475 init_from_closure(move |slot: *mut T| -> Result<(), E> { in init_scope()
1483 unsafe impl<T> Init<T> for T { implementation
1484 unsafe fn __init(self, slot: *mut T) -> Result<(), Infallible> { in __init()
1493 unsafe impl<T> PinInit<T> for T { implementation
1494 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible> { in __pinned_init()
1504 unsafe impl<T, E> Init<T, E> for Result<T, E> {
1505 unsafe fn __init(self, slot: *mut T) -> Result<(), E> { in __init()
1515 unsafe impl<T, E> PinInit<T, E> for Result<T, E> {
1516 unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> { in __pinned_init()
1524 pub trait InPlaceWrite<T> {
1531 fn write_init<E>(self, init: impl Init<T, E>) -> Result<Self::Initialized, E>; in write_init() argument
1536 fn write_pin_init<E>(self, init: impl PinInit<T, E>) -> Result<Pin<Self::Initialized>, E>; in write_pin_init() argument
1636 unsafe impl<T: ZeroableOption> Zeroable for Option<T> {}
1640 unsafe impl<T> ZeroableOption for &T {} implementation
1643 unsafe impl<T> ZeroableOption for &mut T {} implementation
1646 unsafe impl<T> ZeroableOption for NonNull<T> {}
1652 pub fn init_zeroed<T: Zeroable>() -> impl Init<T> { in init_zeroed() argument
1656 init_from_closure(|slot: *mut T| { in init_zeroed()
1683 pub const fn zeroed<T: Zeroable>() -> T { in zeroed() argument
1711 {<T: ?Sized>} PhantomData<T>, core::marker::PhantomPinned, (),
1714 {<T>} MaybeUninit<T>,
1717 {<T: ?Sized + Zeroable>} UnsafeCell<T>,
1733 {<T>} *mut T, {<T>} *const T,
1737 {<T>} *mut [T], {<T>} *const [T], *mut str, *const str,
1740 {<const N: usize, T: Zeroable>} [T; N], {<T: Zeroable>} Wrapping<T>,
1768 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
1795 pub trait Wrapper<T> {
1797 fn pin_init<E>(value_init: impl PinInit<T, E>) -> impl PinInit<Self, E>; in pin_init() argument
1800 impl<T> Wrapper<T> for UnsafeCell<T> {
1801 fn pin_init<E>(value_init: impl PinInit<T, E>) -> impl PinInit<Self, E> { in pin_init() argument
1807 impl<T> Wrapper<T> for MaybeUninit<T> {
1808 fn pin_init<E>(value_init: impl PinInit<T, E>) -> impl PinInit<Self, E> { in pin_init() argument
1815 impl<T> Wrapper<T> for core::pin::UnsafePinned<T> {
1816 fn pin_init<E>(init: impl PinInit<T, E>) -> impl PinInit<Self, E> { in pin_init() argument