@@ -193,7 +193,7 @@ impl<L: Link> LinkedList<L, L::Target> {
193193 // }
194194
195195 /// Returns whether the linked list does not contain any node
196- pub fn is_empty ( & self ) -> bool {
196+ pub const fn is_empty ( & self ) -> bool {
197197 self . head . is_none ( )
198198 // if self.head.is_some() {
199199 // return false;
@@ -284,7 +284,7 @@ pub struct DrainFilter<'a, T: Link, F> {
284284}
285285
286286impl < T : Link > LinkedList < T , T :: Target > {
287- pub fn drain_filter < F > ( & mut self , filter : F ) -> DrainFilter < ' _ , T , F >
287+ pub const fn drain_filter < F > ( & mut self , filter : F ) -> DrainFilter < ' _ , T , F >
288288 where
289289 F : FnMut ( & mut T :: Target ) -> bool ,
290290 {
@@ -323,7 +323,7 @@ where
323323
324324impl < T > Pointers < T > {
325325 /// Create a new set of empty pointers
326- pub fn new ( ) -> Self {
326+ pub const fn new ( ) -> Self {
327327 Self {
328328 inner : UnsafeCell :: new ( PointersInner {
329329 prev : None ,
@@ -333,15 +333,15 @@ impl<T> Pointers<T> {
333333 }
334334 }
335335
336- fn get_prev ( & self ) -> Option < NonNull < T > > {
336+ const fn get_prev ( & self ) -> Option < NonNull < T > > {
337337 // SAFETY: prev is the first field in PointersInner, which is #[repr(C)].
338338 unsafe {
339339 let inner = self . inner . get ( ) ;
340340 let prev = inner as * const Option < NonNull < T > > ;
341341 ptr:: read ( prev)
342342 }
343343 }
344- fn get_next ( & self ) -> Option < NonNull < T > > {
344+ const fn get_next ( & self ) -> Option < NonNull < T > > {
345345 // SAFETY: next is the second field in PointersInner, which is #[repr(C)].
346346 unsafe {
347347 let inner = self . inner . get ( ) ;
@@ -351,15 +351,15 @@ impl<T> Pointers<T> {
351351 }
352352 }
353353
354- fn set_prev ( & mut self , value : Option < NonNull < T > > ) {
354+ const fn set_prev ( & mut self , value : Option < NonNull < T > > ) {
355355 // SAFETY: prev is the first field in PointersInner, which is #[repr(C)].
356356 unsafe {
357357 let inner = self . inner . get ( ) ;
358358 let prev = inner as * mut Option < NonNull < T > > ;
359359 ptr:: write ( prev, value) ;
360360 }
361361 }
362- fn set_next ( & mut self , value : Option < NonNull < T > > ) {
362+ const fn set_next ( & mut self , value : Option < NonNull < T > > ) {
363363 // SAFETY: next is the second field in PointersInner, which is #[repr(C)].
364364 unsafe {
365365 let inner = self . inner . get ( ) ;
0 commit comments