@@ -330,7 +330,7 @@ impl<T: ?Sized> *const T {
330330 ///
331331 /// unsafe {
332332 /// if let Some(val_back) = ptr.as_ref() {
333- /// println!("We got back the value: { val_back}!" );
333+ /// assert_eq!( val_back, &10 );
334334 /// }
335335 /// }
336336 /// ```
@@ -346,7 +346,7 @@ impl<T: ?Sized> *const T {
346346 ///
347347 /// unsafe {
348348 /// let val_back = &*ptr;
349- /// println!("We got back the value: { val_back}!" );
349+ /// assert_eq!( val_back, &10 );
350350 /// }
351351 /// ```
352352 #[ stable( feature = "ptr_as_ref" , since = "1.9.0" ) ]
@@ -393,7 +393,7 @@ impl<T: ?Sized> *const T {
393393 /// let ptr: *const u8 = &10u8 as *const u8;
394394 ///
395395 /// unsafe {
396- /// println!("We got back the value: {}!", ptr.as_ref_unchecked());
396+ /// assert_eq!( ptr.as_ref_unchecked(), &10 );
397397 /// }
398398 /// ```
399399 // FIXME: mention it in the docs for `as_ref` and `as_uninit_ref` once stabilized.
@@ -439,7 +439,7 @@ impl<T: ?Sized> *const T {
439439 ///
440440 /// unsafe {
441441 /// if let Some(val_back) = ptr.as_uninit_ref() {
442- /// println!("We got back the value: {}!", val_back.assume_init());
442+ /// assert_eq!( val_back.assume_init(), 10 );
443443 /// }
444444 /// }
445445 /// ```
@@ -501,8 +501,8 @@ impl<T: ?Sized> *const T {
501501 /// let ptr: *const u8 = s.as_ptr();
502502 ///
503503 /// unsafe {
504- /// println!("{}", *ptr.offset(1) as char);
505- /// println!("{}", *ptr.offset(2) as char);
504+ /// assert_eq!( *ptr.offset(1) as char, '2' );
505+ /// assert_eq!( *ptr.offset(2) as char, '3' );
506506 /// }
507507 /// ```
508508 #[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -573,19 +573,21 @@ impl<T: ?Sized> *const T {
573573 /// # Examples
574574 ///
575575 /// ```
576+ /// # use std::fmt::Write;
576577 /// // Iterate using a raw pointer in increments of two elements
577578 /// let data = [1u8, 2, 3, 4, 5];
578579 /// let mut ptr: *const u8 = data.as_ptr();
579580 /// let step = 2;
580581 /// let end_rounded_up = ptr.wrapping_offset(6);
581582 ///
582- /// // This loop prints "1, 3, 5, "
583+ /// let mut out = String::new();
583584 /// while ptr != end_rounded_up {
584585 /// unsafe {
585- /// print!( "{}, ", *ptr);
586+ /// write!(&mut out, "{}, ", *ptr).unwrap( );
586587 /// }
587588 /// ptr = ptr.wrapping_offset(step);
588589 /// }
590+ /// assert_eq!(out.as_str(), "1, 3, 5, ");
589591 /// ```
590592 #[ stable( feature = "ptr_wrapping_offset" , since = "1.16.0" ) ]
591593 #[ must_use = "returns a new pointer rather than modifying its argument" ]
@@ -988,8 +990,8 @@ impl<T: ?Sized> *const T {
988990 /// let ptr: *const u8 = s.as_ptr();
989991 ///
990992 /// unsafe {
991- /// println!("{}", *ptr.add(1) as char );
992- /// println!("{}", *ptr.add(2) as char );
993+ /// assert_eq!( *ptr.add(1), b'2' );
994+ /// assert_eq!( *ptr.add(2), b'3' );
993995 /// }
994996 /// ```
995997 #[ stable( feature = "pointer_methods" , since = "1.26.0" ) ]
@@ -1073,8 +1075,8 @@ impl<T: ?Sized> *const T {
10731075 ///
10741076 /// unsafe {
10751077 /// let end: *const u8 = s.as_ptr().add(3);
1076- /// println!("{}", *end.sub(1) as char );
1077- /// println!("{}", *end.sub(2) as char );
1078+ /// assert_eq!( *end.sub(1), b'3' );
1079+ /// assert_eq!( *end.sub(2), b'2' );
10781080 /// }
10791081 /// ```
10801082 #[ stable( feature = "pointer_methods" , since = "1.26.0" ) ]
@@ -1155,19 +1157,21 @@ impl<T: ?Sized> *const T {
11551157 /// # Examples
11561158 ///
11571159 /// ```
1160+ /// # use std::fmt::Write;
11581161 /// // Iterate using a raw pointer in increments of two elements
11591162 /// let data = [1u8, 2, 3, 4, 5];
11601163 /// let mut ptr: *const u8 = data.as_ptr();
11611164 /// let step = 2;
11621165 /// let end_rounded_up = ptr.wrapping_add(6);
11631166 ///
1164- /// // This loop prints "1, 3, 5, "
1167+ /// let mut out = String::new();
11651168 /// while ptr != end_rounded_up {
11661169 /// unsafe {
1167- /// print!( "{}, ", *ptr);
1170+ /// write!(&mut out, "{}, ", *ptr).unwrap( );
11681171 /// }
11691172 /// ptr = ptr.wrapping_add(step);
11701173 /// }
1174+ /// assert_eq!(out, "1, 3, 5, ");
11711175 /// ```
11721176 #[ stable( feature = "pointer_methods" , since = "1.26.0" ) ]
11731177 #[ must_use = "returns a new pointer rather than modifying its argument" ]
@@ -1234,19 +1238,21 @@ impl<T: ?Sized> *const T {
12341238 /// # Examples
12351239 ///
12361240 /// ```
1241+ /// # use std::fmt::Write;
12371242 /// // Iterate using a raw pointer in increments of two elements (backwards)
12381243 /// let data = [1u8, 2, 3, 4, 5];
12391244 /// let mut ptr: *const u8 = data.as_ptr();
12401245 /// let start_rounded_down = ptr.wrapping_sub(2);
12411246 /// ptr = ptr.wrapping_add(4);
12421247 /// let step = 2;
1243- /// // This loop prints "5, 3, 1, "
1248+ /// let mut out = String::new();
12441249 /// while ptr != start_rounded_down {
12451250 /// unsafe {
1246- /// print!( "{}, ", *ptr);
1251+ /// write!(&mut out, "{}, ", *ptr).unwrap( );
12471252 /// }
12481253 /// ptr = ptr.wrapping_sub(step);
12491254 /// }
1255+ /// assert_eq!(out, "5, 3, 1, ");
12501256 /// ```
12511257 #[ stable( feature = "pointer_methods" , since = "1.26.0" ) ]
12521258 #[ must_use = "returns a new pointer rather than modifying its argument" ]
0 commit comments