Lines Matching refs:T

143 pub struct List<T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
145 _ty: PhantomData<ListArc<T, ID>>,
150 unsafe impl<T, const ID: u64> Send for List<T, ID>
152 ListArc<T, ID>: Send,
153 T: ?Sized + ListItem<ID>,
158 unsafe impl<T, const ID: u64> Sync for List<T, ID>
160 ListArc<T, ID>: Sync,
161 T: ?Sized + ListItem<ID>,
300 pub struct ListLinksSelfPtr<T: ?Sized, const ID: u64 = 0> {
307 self_ptr: Opaque<*const T>,
311 unsafe impl<T: ?Sized + Send, const ID: u64> Send for ListLinksSelfPtr<T, ID> {}
317 unsafe impl<T: ?Sized + Sync, const ID: u64> Sync for ListLinksSelfPtr<T, ID> {}
319 impl<T: ?Sized, const ID: u64> ListLinksSelfPtr<T, ID> {
340 pub unsafe fn raw_get_self_ptr(me: *const Self) -> *const Opaque<*const T> { in raw_get_self_ptr() argument
346 impl<T: ?Sized + ListItem<ID>, const ID: u64> List<T, ID> {
371 item: ListArc<T, ID>, in insert_inner() argument
382 let list_links = unsafe { T::prepare_to_insert(raw_item) }; in insert_inner()
414 pub fn push_back(&mut self, item: ListArc<T, ID>) { in push_back() argument
422 pub fn push_front(&mut self, item: ListArc<T, ID>) { in push_front() argument
433 pub fn pop_back(&mut self) -> Option<ListArc<T, ID>> { in pop_back() argument
445 pub fn pop_front(&mut self) -> Option<ListArc<T, ID>> { in pop_front() argument
462 pub unsafe fn remove(&mut self, item: &T) -> Option<ListArc<T, ID>> { in remove() argument
464 let mut item = unsafe { ListLinks::fields(T::view_links(item)) }; in remove()
503 unsafe fn remove_internal(&mut self, item: *mut ListLinksFields) -> ListArc<T, ID> { in remove_internal() argument
522 ) -> ListArc<T, ID> { in remove_internal_inner() argument
561 let raw_item = unsafe { T::post_remove(list_links) }; in remove_internal_inner()
570 pub fn push_all_back(&mut self, other: &mut List<T, ID>) { in push_all_back() argument
599 pub fn cursor_front(&mut self) -> Cursor<'_, T, ID> { in cursor_front() argument
608 pub fn cursor_back(&mut self) -> Cursor<'_, T, ID> { in cursor_back() argument
617 pub fn iter(&self) -> Iter<'_, T, ID> { in iter() argument
628 impl<T: ?Sized + ListItem<ID>, const ID: u64> Default for List<T, ID> {
634 impl<T: ?Sized + ListItem<ID>, const ID: u64> Drop for List<T, ID> {
650 pub struct Iter<'a, T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
653 _ty: PhantomData<&'a ListArc<T, ID>>,
656 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> Iterator for Iter<'a, T, ID> {
657 type Item = ArcBorrow<'a, T>;
659 fn next(&mut self) -> Option<ArcBorrow<'a, T>> { in next() argument
678 let item = unsafe { T::view_value(ListLinks::from_fields(current)) }; in next()
825 pub struct Cursor<'a, T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
826 list: &'a mut List<T, ID>,
831 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> Cursor<'a, T, ID> {
856 pub fn peek_next(&mut self) -> Option<CursorPeek<'_, 'a, T, true, ID>> { in peek_next() argument
871 pub fn peek_prev(&mut self) -> Option<CursorPeek<'_, 'a, T, false, ID>> { in peek_prev() argument
924 fn insert_inner(&mut self, item: ListArc<T, ID>) -> *mut ListLinksFields { in insert_inner() argument
942 pub fn insert(mut self, item: ListArc<T, ID>) { in insert() argument
953 pub fn insert_next(&mut self, item: ListArc<T, ID>) { in insert_next() argument
960 pub fn insert_prev(&mut self, item: ListArc<T, ID>) { in insert_prev() argument
965 pub fn remove_next(&mut self) -> Option<ListArc<T, ID>> { in remove_next() argument
970 pub fn remove_prev(&mut self) -> Option<ListArc<T, ID>> { in remove_prev() argument
981 pub struct CursorPeek<'a, 'b, T: ?Sized + ListItem<ID>, const ISNEXT: bool, const ID: u64> {
982 cursor: &'a mut Cursor<'b, T, ID>,
986 impl<'a, 'b, T: ?Sized + ListItem<ID>, const ISNEXT: bool, const ID: u64>
987 CursorPeek<'a, 'b, T, ISNEXT, ID>
990 pub fn remove(self) -> ListArc<T, ID> { in remove() argument
1003 pub fn arc(&self) -> ArcBorrow<'_, T> { in arc() argument
1005 let me = unsafe { T::view_value(ListLinks::from_fields(self.ptr)) }; in arc()
1020 impl<'a, 'b, T: ?Sized + ListItem<ID>, const ISNEXT: bool, const ID: u64> core::ops::Deref
1021 for CursorPeek<'a, 'b, T, ISNEXT, ID>
1028 type Target = T;
1030 fn deref(&self) -> &T { in deref() argument
1032 let me = unsafe { T::view_value(ListLinks::from_fields(self.ptr)) }; in deref()
1044 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> FusedIterator for Iter<'a, T, ID> {}
1046 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> IntoIterator for &'a List<T, ID> {
1047 type IntoIter = Iter<'a, T, ID>;
1048 type Item = ArcBorrow<'a, T>;
1050 fn into_iter(self) -> Iter<'a, T, ID> { in into_iter() argument
1056 pub struct IntoIter<T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
1057 list: List<T, ID>,
1060 impl<T: ?Sized + ListItem<ID>, const ID: u64> Iterator for IntoIter<T, ID> {
1061 type Item = ListArc<T, ID>;
1063 fn next(&mut self) -> Option<ListArc<T, ID>> { in next() argument
1068 impl<T: ?Sized + ListItem<ID>, const ID: u64> FusedIterator for IntoIter<T, ID> {}
1070 impl<T: ?Sized + ListItem<ID>, const ID: u64> DoubleEndedIterator for IntoIter<T, ID> {
1071 fn next_back(&mut self) -> Option<ListArc<T, ID>> { in next_back() argument
1076 impl<T: ?Sized + ListItem<ID>, const ID: u64> IntoIterator for List<T, ID> {
1077 type IntoIter = IntoIter<T, ID>;
1078 type Item = ListArc<T, ID>;
1080 fn into_iter(self) -> IntoIter<T, ID> { in into_iter() argument