Lines Matching refs:ID
38 pub struct List<T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
40 _ty: PhantomData<ListArc<T, ID>>,
45 unsafe impl<T, const ID: u64> Send for List<T, ID>
47 ListArc<T, ID>: Send,
48 T: ?Sized + ListItem<ID>,
53 unsafe impl<T, const ID: u64> Sync for List<T, ID>
55 ListArc<T, ID>: Sync,
56 T: ?Sized + ListItem<ID>,
68 pub unsafe trait ListItem<const ID: u64 = 0>: ListArcSafe<ID> {
82 unsafe fn view_links(me: *const Self) -> *mut ListLinks<ID>; in view_links() argument
100 unsafe fn view_value(me: *mut ListLinks<ID>) -> *const Self; in view_value()
118 unsafe fn prepare_to_insert(me: *const Self) -> *mut ListLinks<ID>; in prepare_to_insert() argument
130 unsafe fn post_remove(me: *mut ListLinks<ID>) -> *const Self; in post_remove()
146 pub struct ListLinks<const ID: u64 = 0> {
155 unsafe impl<const ID: u64> Send for ListLinks<ID> {}
158 unsafe impl<const ID: u64> Sync for ListLinks<ID> {}
160 impl<const ID: u64> ListLinks<ID> {
195 pub struct ListLinksSelfPtr<T: ?Sized, const ID: u64 = 0> {
199 pub inner: ListLinks<ID>,
206 unsafe impl<T: ?Sized + Send, const ID: u64> Send for ListLinksSelfPtr<T, ID> {}
212 unsafe impl<T: ?Sized + Sync, const ID: u64> Sync for ListLinksSelfPtr<T, ID> {}
214 impl<T: ?Sized, const ID: u64> ListLinksSelfPtr<T, ID> {
234 impl<T: ?Sized + ListItem<ID>, const ID: u64> List<T, ID> {
249 pub fn push_back(&mut self, item: ListArc<T, ID>) { in push_back() argument
288 pub fn push_front(&mut self, item: ListArc<T, ID>) { in push_front() argument
327 pub fn pop_back(&mut self) -> Option<ListArc<T, ID>> { in pop_back() argument
339 pub fn pop_front(&mut self) -> Option<ListArc<T, ID>> { in pop_front() argument
356 pub unsafe fn remove(&mut self, item: &T) -> Option<ListArc<T, ID>> { in remove() argument
396 unsafe fn remove_internal(&mut self, item: *mut ListLinksFields) -> ListArc<T, ID> { in remove_internal() argument
415 ) -> ListArc<T, ID> { in remove_internal_inner() argument
463 pub fn push_all_back(&mut self, other: &mut List<T, ID>) { in push_all_back() argument
494 pub fn cursor_front(&mut self) -> Option<Cursor<'_, T, ID>> { in cursor_front() argument
506 pub fn iter(&self) -> Iter<'_, T, ID> { in iter() argument
517 impl<T: ?Sized + ListItem<ID>, const ID: u64> Default for List<T, ID> {
523 impl<T: ?Sized + ListItem<ID>, const ID: u64> Drop for List<T, ID> {
539 pub struct Iter<'a, T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
542 _ty: PhantomData<&'a ListArc<T, ID>>,
545 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> Iterator for Iter<'a, T, ID> {
584 pub struct Cursor<'a, T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
586 list: &'a mut List<T, ID>,
589 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> Cursor<'a, T, ID> {
607 pub fn next(self) -> Option<Cursor<'a, T, ID>> { in next() argument
624 pub fn prev(self) -> Option<Cursor<'a, T, ID>> { in prev() argument
641 pub fn remove(self) -> ListArc<T, ID> { in remove() argument
647 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> FusedIterator for Iter<'a, T, ID> {}
649 impl<'a, T: ?Sized + ListItem<ID>, const ID: u64> IntoIterator for &'a List<T, ID> {
650 type IntoIter = Iter<'a, T, ID>;
653 fn into_iter(self) -> Iter<'a, T, ID> { in into_iter() argument
659 pub struct IntoIter<T: ?Sized + ListItem<ID>, const ID: u64 = 0> {
660 list: List<T, ID>,
663 impl<T: ?Sized + ListItem<ID>, const ID: u64> Iterator for IntoIter<T, ID> {
664 type Item = ListArc<T, ID>;
666 fn next(&mut self) -> Option<ListArc<T, ID>> { in next() argument
671 impl<T: ?Sized + ListItem<ID>, const ID: u64> FusedIterator for IntoIter<T, ID> {}
673 impl<T: ?Sized + ListItem<ID>, const ID: u64> DoubleEndedIterator for IntoIter<T, ID> {
674 fn next_back(&mut self) -> Option<ListArc<T, ID>> { in next_back() argument
679 impl<T: ?Sized + ListItem<ID>, const ID: u64> IntoIterator for List<T, ID> {
680 type IntoIter = IntoIter<T, ID>;
681 type Item = ListArc<T, ID>;
683 fn into_iter(self) -> IntoIter<T, ID> { in into_iter() argument