Lines Matching refs:T
56 pub struct XArray<T: ForeignOwnable> {
59 _p: PhantomData<T>,
63 impl<T: ForeignOwnable> PinnedDrop for XArray<T> {
71 drop(unsafe { T::from_foreign(ptr) }) in drop()
87 impl<T: ForeignOwnable> XArray<T> {
122 pub fn try_lock(&self) -> Option<Guard<'_, T>> { in try_lock() argument
135 pub fn lock(&self) -> Guard<'_, T> { in lock() argument
150 pub struct Guard<'a, T: ForeignOwnable> {
151 xa: &'a XArray<T>,
155 impl<T: ForeignOwnable> Drop for Guard<'_, T> {
167 pub struct StoreError<T> {
171 pub value: T,
174 impl<T> From<StoreError<T>> for Error {
175 fn from(value: StoreError<T>) -> Self { in from()
180 impl<'a, T: ForeignOwnable> Guard<'a, T> {
192 pub fn get(&self, index: usize) -> Option<T::Borrowed<'_>> { in get()
195 unsafe { T::borrow(ptr.as_ptr()) } in get()
200 pub fn get_mut(&mut self, index: usize) -> Option<T::BorrowedMut<'_>> { in get_mut()
203 unsafe { T::borrow_mut(ptr.as_ptr()) } in get_mut()
208 pub fn remove(&mut self, index: usize) -> Option<T> { in remove() argument
217 unsafe { T::try_from_foreign(ptr) } in remove()
230 value: T, in store() argument
232 ) -> Result<Option<T>, StoreError<T>> { in store() argument
234 T::FOREIGN_ALIGN >= 4, in store()
255 let value = unsafe { T::from_foreign(new) }; in store()
266 Ok(unsafe { T::try_from_foreign(old) }) in store()
272 unsafe impl<T: ForeignOwnable + Send> Send for XArray<T> {}
276 unsafe impl<T: ForeignOwnable + Send> Sync for XArray<T> {}