Rollup merge of #64912 - lzutao:unneeded-main-doc, r=jonas-schievink
Remove unneeded `fn main` blocks from docs ## [No whitespace diff](https://github.com/rust-lang/rust/pull/64912/files?w=1)
This commit is contained in:
commit
7628cada4f
@ -29,10 +29,8 @@
|
||||
//! Nil,
|
||||
//! }
|
||||
//!
|
||||
//! fn main() {
|
||||
//! let list: List<i32> = List::Cons(1, Box::new(List::Cons(2, Box::new(List::Nil))));
|
||||
//! println!("{:?}", list);
|
||||
//! }
|
||||
//! let list: List<i32> = List::Cons(1, Box::new(List::Cons(2, Box::new(List::Nil))));
|
||||
//! println!("{:?}", list);
|
||||
//! ```
|
||||
//!
|
||||
//! This will print `Cons(1, Cons(2, Nil))`.
|
||||
@ -375,14 +373,12 @@ impl<T: ?Sized> Box<T> {
|
||||
/// ```
|
||||
/// #![feature(box_into_raw_non_null)]
|
||||
///
|
||||
/// fn main() {
|
||||
/// let x = Box::new(5);
|
||||
/// let ptr = Box::into_raw_non_null(x);
|
||||
/// let x = Box::new(5);
|
||||
/// let ptr = Box::into_raw_non_null(x);
|
||||
///
|
||||
/// // Clean up the memory by converting the NonNull pointer back
|
||||
/// // into a Box and letting the Box be dropped.
|
||||
/// let x = unsafe { Box::from_raw(ptr.as_ptr()) };
|
||||
/// }
|
||||
/// // Clean up the memory by converting the NonNull pointer back
|
||||
/// // into a Box and letting the Box be dropped.
|
||||
/// let x = unsafe { Box::from_raw(ptr.as_ptr()) };
|
||||
/// ```
|
||||
#[unstable(feature = "box_into_raw_non_null", issue = "47336")]
|
||||
#[inline]
|
||||
@ -428,23 +424,19 @@ impl<T: ?Sized> Box<T> {
|
||||
/// Simple usage:
|
||||
///
|
||||
/// ```
|
||||
/// fn main() {
|
||||
/// let x = Box::new(41);
|
||||
/// let static_ref: &'static mut usize = Box::leak(x);
|
||||
/// *static_ref += 1;
|
||||
/// assert_eq!(*static_ref, 42);
|
||||
/// }
|
||||
/// let x = Box::new(41);
|
||||
/// let static_ref: &'static mut usize = Box::leak(x);
|
||||
/// *static_ref += 1;
|
||||
/// assert_eq!(*static_ref, 42);
|
||||
/// ```
|
||||
///
|
||||
/// Unsized data:
|
||||
///
|
||||
/// ```
|
||||
/// fn main() {
|
||||
/// let x = vec![1, 2, 3].into_boxed_slice();
|
||||
/// let static_ref = Box::leak(x);
|
||||
/// static_ref[0] = 4;
|
||||
/// assert_eq!(*static_ref, [4, 2, 3]);
|
||||
/// }
|
||||
/// let x = vec![1, 2, 3].into_boxed_slice();
|
||||
/// let static_ref = Box::leak(x);
|
||||
/// static_ref[0] = 4;
|
||||
/// assert_eq!(*static_ref, [4, 2, 3]);
|
||||
/// ```
|
||||
#[stable(feature = "box_leak", since = "1.26.0")]
|
||||
#[inline]
|
||||
@ -780,11 +772,9 @@ impl Box<dyn Any> {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Box::new(my_string));
|
||||
/// print_if_string(Box::new(0i8));
|
||||
/// }
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Box::new(my_string));
|
||||
/// print_if_string(Box::new(0i8));
|
||||
/// ```
|
||||
pub fn downcast<T: Any>(self) -> Result<Box<T>, Box<dyn Any>> {
|
||||
if self.is::<T>() {
|
||||
@ -814,11 +804,9 @@ impl Box<dyn Any + Send> {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Box::new(my_string));
|
||||
/// print_if_string(Box::new(0i8));
|
||||
/// }
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Box::new(my_string));
|
||||
/// print_if_string(Box::new(0i8));
|
||||
/// ```
|
||||
pub fn downcast<T: Any>(self) -> Result<Box<T>, Box<dyn Any + Send>> {
|
||||
<Box<dyn Any>>::downcast(self).map_err(|s| unsafe {
|
||||
|
@ -2226,14 +2226,12 @@ impl<'a, K: Ord, V: Default> Entry<'a, K, V> {
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # fn main() {
|
||||
/// use std::collections::BTreeMap;
|
||||
///
|
||||
/// let mut map: BTreeMap<&str, Option<usize>> = BTreeMap::new();
|
||||
/// map.entry("poneyland").or_default();
|
||||
///
|
||||
/// assert_eq!(map["poneyland"], None);
|
||||
/// # }
|
||||
/// ```
|
||||
pub fn or_default(self) -> &'a mut V {
|
||||
match self {
|
||||
|
@ -861,11 +861,9 @@ impl Rc<dyn Any> {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Rc::new(my_string));
|
||||
/// print_if_string(Rc::new(0i8));
|
||||
/// }
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Rc::new(my_string));
|
||||
/// print_if_string(Rc::new(0i8));
|
||||
/// ```
|
||||
pub fn downcast<T: Any>(self) -> Result<Rc<T>, Rc<dyn Any>> {
|
||||
if (*self).is::<T>() {
|
||||
|
@ -412,20 +412,15 @@ impl<T> [T] {
|
||||
///
|
||||
/// ```
|
||||
/// #![feature(repeat_generic_slice)]
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!([1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]);
|
||||
/// }
|
||||
/// assert_eq!([1, 2].repeat(3), vec![1, 2, 1, 2, 1, 2]);
|
||||
/// ```
|
||||
///
|
||||
/// A panic upon overflow:
|
||||
///
|
||||
/// ```should_panic
|
||||
/// #![feature(repeat_generic_slice)]
|
||||
/// fn main() {
|
||||
/// // this will panic at runtime
|
||||
/// b"0123456789abcdef".repeat(usize::max_value());
|
||||
/// }
|
||||
/// // this will panic at runtime
|
||||
/// b"0123456789abcdef".repeat(usize::max_value());
|
||||
/// ```
|
||||
#[unstable(feature = "repeat_generic_slice",
|
||||
reason = "it's on str, why not on slice?",
|
||||
|
@ -500,10 +500,8 @@ impl str {
|
||||
/// A panic upon overflow:
|
||||
///
|
||||
/// ```should_panic
|
||||
/// fn main() {
|
||||
/// // this will panic at runtime
|
||||
/// "0123456789abcdef".repeat(usize::max_value());
|
||||
/// }
|
||||
/// // this will panic at runtime
|
||||
/// "0123456789abcdef".repeat(usize::max_value());
|
||||
/// ```
|
||||
#[stable(feature = "repeat_str", since = "1.16.0")]
|
||||
pub fn repeat(&self, n: usize) -> String {
|
||||
|
@ -164,10 +164,8 @@ use crate::vec::Vec;
|
||||
///
|
||||
/// fn example_func<A: TraitExample>(example_arg: A) {}
|
||||
///
|
||||
/// fn main() {
|
||||
/// let example_string = String::from("example_string");
|
||||
/// example_func(&example_string);
|
||||
/// }
|
||||
/// let example_string = String::from("example_string");
|
||||
/// example_func(&example_string);
|
||||
/// ```
|
||||
///
|
||||
/// There are two options that would work instead. The first would be to
|
||||
|
@ -1244,11 +1244,9 @@ impl Arc<dyn Any + Send + Sync> {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Arc::new(my_string));
|
||||
/// print_if_string(Arc::new(0i8));
|
||||
/// }
|
||||
/// let my_string = "Hello World".to_string();
|
||||
/// print_if_string(Arc::new(my_string));
|
||||
/// print_if_string(Arc::new(0i8));
|
||||
/// ```
|
||||
pub fn downcast<T>(self) -> Result<Arc<T>, Self>
|
||||
where
|
||||
|
@ -389,28 +389,26 @@ impl<T> Vec<T> {
|
||||
/// use std::ptr;
|
||||
/// use std::mem;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let mut v = vec![1, 2, 3];
|
||||
/// let mut v = vec![1, 2, 3];
|
||||
///
|
||||
/// // Pull out the various important pieces of information about `v`
|
||||
/// let p = v.as_mut_ptr();
|
||||
/// let len = v.len();
|
||||
/// let cap = v.capacity();
|
||||
/// // Pull out the various important pieces of information about `v`
|
||||
/// let p = v.as_mut_ptr();
|
||||
/// let len = v.len();
|
||||
/// let cap = v.capacity();
|
||||
///
|
||||
/// unsafe {
|
||||
/// // Cast `v` into the void: no destructor run, so we are in
|
||||
/// // complete control of the allocation to which `p` points.
|
||||
/// mem::forget(v);
|
||||
/// unsafe {
|
||||
/// // Cast `v` into the void: no destructor run, so we are in
|
||||
/// // complete control of the allocation to which `p` points.
|
||||
/// mem::forget(v);
|
||||
///
|
||||
/// // Overwrite memory with 4, 5, 6
|
||||
/// for i in 0..len as isize {
|
||||
/// ptr::write(p.offset(i), 4 + i);
|
||||
/// }
|
||||
///
|
||||
/// // Put everything back together into a Vec
|
||||
/// let rebuilt = Vec::from_raw_parts(p, len, cap);
|
||||
/// assert_eq!(rebuilt, [4, 5, 6]);
|
||||
/// // Overwrite memory with 4, 5, 6
|
||||
/// for i in 0..len as isize {
|
||||
/// ptr::write(p.offset(i), 4 + i);
|
||||
/// }
|
||||
///
|
||||
/// // Put everything back together into a Vec
|
||||
/// let rebuilt = Vec::from_raw_parts(p, len, cap);
|
||||
/// assert_eq!(rebuilt, [4, 5, 6]);
|
||||
/// }
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
@ -1391,12 +1389,10 @@ impl<T> Vec<T> {
|
||||
/// ```
|
||||
/// #![feature(vec_leak)]
|
||||
///
|
||||
/// fn main() {
|
||||
/// let x = vec![1, 2, 3];
|
||||
/// let static_ref: &'static mut [usize] = Vec::leak(x);
|
||||
/// static_ref[0] += 1;
|
||||
/// assert_eq!(static_ref, &[2, 2, 3]);
|
||||
/// }
|
||||
/// let x = vec![1, 2, 3];
|
||||
/// let static_ref: &'static mut [usize] = Vec::leak(x);
|
||||
/// static_ref[0] += 1;
|
||||
/// assert_eq!(static_ref, &[2, 2, 3]);
|
||||
/// ```
|
||||
#[unstable(feature = "vec_leak", issue = "62195")]
|
||||
#[inline]
|
||||
|
@ -87,10 +87,8 @@ pub trait Any: 'static {
|
||||
/// TypeId::of::<String>() == s.type_id()
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(is_string(&0), false);
|
||||
/// assert_eq!(is_string(&"cookie monster".to_string()), true);
|
||||
/// }
|
||||
/// assert_eq!(is_string(&0), false);
|
||||
/// assert_eq!(is_string(&"cookie monster".to_string()), true);
|
||||
/// ```
|
||||
#[stable(feature = "get_type_id", since = "1.34.0")]
|
||||
fn type_id(&self) -> TypeId;
|
||||
@ -145,10 +143,8 @@ impl dyn Any {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// is_string(&0);
|
||||
/// is_string(&"cookie monster".to_string());
|
||||
/// }
|
||||
/// is_string(&0);
|
||||
/// is_string(&"cookie monster".to_string());
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[inline]
|
||||
@ -179,10 +175,8 @@ impl dyn Any {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// print_if_string(&0);
|
||||
/// print_if_string(&"cookie monster".to_string());
|
||||
/// }
|
||||
/// print_if_string(&0);
|
||||
/// print_if_string(&"cookie monster".to_string());
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[inline]
|
||||
@ -210,16 +204,14 @@ impl dyn Any {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// let mut x = 10u32;
|
||||
/// let mut s = "starlord".to_string();
|
||||
/// let mut x = 10u32;
|
||||
/// let mut s = "starlord".to_string();
|
||||
///
|
||||
/// modify_if_u32(&mut x);
|
||||
/// modify_if_u32(&mut s);
|
||||
/// modify_if_u32(&mut x);
|
||||
/// modify_if_u32(&mut s);
|
||||
///
|
||||
/// assert_eq!(x, 42);
|
||||
/// assert_eq!(&s, "starlord");
|
||||
/// }
|
||||
/// assert_eq!(x, 42);
|
||||
/// assert_eq!(&s, "starlord");
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[inline]
|
||||
@ -250,10 +242,8 @@ impl dyn Any+Send {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// is_string(&0);
|
||||
/// is_string(&"cookie monster".to_string());
|
||||
/// }
|
||||
/// is_string(&0);
|
||||
/// is_string(&"cookie monster".to_string());
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[inline]
|
||||
@ -276,10 +266,8 @@ impl dyn Any+Send {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// print_if_string(&0);
|
||||
/// print_if_string(&"cookie monster".to_string());
|
||||
/// }
|
||||
/// print_if_string(&0);
|
||||
/// print_if_string(&"cookie monster".to_string());
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[inline]
|
||||
@ -300,16 +288,14 @@ impl dyn Any+Send {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// let mut x = 10u32;
|
||||
/// let mut s = "starlord".to_string();
|
||||
/// let mut x = 10u32;
|
||||
/// let mut s = "starlord".to_string();
|
||||
///
|
||||
/// modify_if_u32(&mut x);
|
||||
/// modify_if_u32(&mut s);
|
||||
/// modify_if_u32(&mut x);
|
||||
/// modify_if_u32(&mut s);
|
||||
///
|
||||
/// assert_eq!(x, 42);
|
||||
/// assert_eq!(&s, "starlord");
|
||||
/// }
|
||||
/// assert_eq!(x, 42);
|
||||
/// assert_eq!(&s, "starlord");
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[inline]
|
||||
@ -334,10 +320,8 @@ impl dyn Any+Send+Sync {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// is_string(&0);
|
||||
/// is_string(&"cookie monster".to_string());
|
||||
/// }
|
||||
/// is_string(&0);
|
||||
/// is_string(&"cookie monster".to_string());
|
||||
/// ```
|
||||
#[stable(feature = "any_send_sync_methods", since = "1.28.0")]
|
||||
#[inline]
|
||||
@ -360,10 +344,8 @@ impl dyn Any+Send+Sync {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// print_if_string(&0);
|
||||
/// print_if_string(&"cookie monster".to_string());
|
||||
/// }
|
||||
/// print_if_string(&0);
|
||||
/// print_if_string(&"cookie monster".to_string());
|
||||
/// ```
|
||||
#[stable(feature = "any_send_sync_methods", since = "1.28.0")]
|
||||
#[inline]
|
||||
@ -384,16 +366,14 @@ impl dyn Any+Send+Sync {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// let mut x = 10u32;
|
||||
/// let mut s = "starlord".to_string();
|
||||
/// let mut x = 10u32;
|
||||
/// let mut s = "starlord".to_string();
|
||||
///
|
||||
/// modify_if_u32(&mut x);
|
||||
/// modify_if_u32(&mut s);
|
||||
/// modify_if_u32(&mut x);
|
||||
/// modify_if_u32(&mut s);
|
||||
///
|
||||
/// assert_eq!(x, 42);
|
||||
/// assert_eq!(&s, "starlord");
|
||||
/// }
|
||||
/// assert_eq!(x, 42);
|
||||
/// assert_eq!(&s, "starlord");
|
||||
/// ```
|
||||
#[stable(feature = "any_send_sync_methods", since = "1.28.0")]
|
||||
#[inline]
|
||||
@ -437,10 +417,8 @@ impl TypeId {
|
||||
/// TypeId::of::<String>() == TypeId::of::<T>()
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(is_string(&0), false);
|
||||
/// assert_eq!(is_string(&"cookie monster".to_string()), true);
|
||||
/// }
|
||||
/// assert_eq!(is_string(&0), false);
|
||||
/// assert_eq!(is_string(&"cookie monster".to_string()), true);
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[rustc_const_unstable(feature="const_type_id")]
|
||||
|
@ -111,11 +111,9 @@ impl From<char> for u32 {
|
||||
/// ```
|
||||
/// use std::mem;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let c = 'c';
|
||||
/// let u = u32::from(c);
|
||||
/// assert!(4 == mem::size_of_val(&u))
|
||||
/// }
|
||||
/// let c = 'c';
|
||||
/// let u = u32::from(c);
|
||||
/// assert!(4 == mem::size_of_val(&u))
|
||||
/// ```
|
||||
#[inline]
|
||||
fn from(c: char) -> Self {
|
||||
@ -150,11 +148,9 @@ impl From<u8> for char {
|
||||
/// ```
|
||||
/// use std::mem;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let u = 32 as u8;
|
||||
/// let c = char::from(u);
|
||||
/// assert!(4 == mem::size_of_val(&c))
|
||||
/// }
|
||||
/// let u = 32 as u8;
|
||||
/// let c = char::from(u);
|
||||
/// assert!(4 == mem::size_of_val(&c))
|
||||
/// ```
|
||||
#[inline]
|
||||
fn from(i: u8) -> Self {
|
||||
|
@ -31,21 +31,23 @@ pub struct DecodeUtf16Error {
|
||||
/// ```
|
||||
/// use std::char::decode_utf16;
|
||||
///
|
||||
/// fn main() {
|
||||
/// // 𝄞mus<invalid>ic<invalid>
|
||||
/// let v = [0xD834, 0xDD1E, 0x006d, 0x0075,
|
||||
/// 0x0073, 0xDD1E, 0x0069, 0x0063,
|
||||
/// 0xD834];
|
||||
/// // 𝄞mus<invalid>ic<invalid>
|
||||
/// let v = [
|
||||
/// 0xD834, 0xDD1E, 0x006d, 0x0075, 0x0073, 0xDD1E, 0x0069, 0x0063, 0xD834,
|
||||
/// ];
|
||||
///
|
||||
/// assert_eq!(decode_utf16(v.iter().cloned())
|
||||
/// .map(|r| r.map_err(|e| e.unpaired_surrogate()))
|
||||
/// .collect::<Vec<_>>(),
|
||||
/// vec![Ok('𝄞'),
|
||||
/// Ok('m'), Ok('u'), Ok('s'),
|
||||
/// Err(0xDD1E),
|
||||
/// Ok('i'), Ok('c'),
|
||||
/// Err(0xD834)]);
|
||||
/// }
|
||||
/// assert_eq!(
|
||||
/// decode_utf16(v.iter().cloned())
|
||||
/// .map(|r| r.map_err(|e| e.unpaired_surrogate()))
|
||||
/// .collect::<Vec<_>>(),
|
||||
/// vec![
|
||||
/// Ok('𝄞'),
|
||||
/// Ok('m'), Ok('u'), Ok('s'),
|
||||
/// Err(0xDD1E),
|
||||
/// Ok('i'), Ok('c'),
|
||||
/// Err(0xD834)
|
||||
/// ]
|
||||
/// );
|
||||
/// ```
|
||||
///
|
||||
/// A lossy decoder can be obtained by replacing `Err` results with the replacement character:
|
||||
@ -53,17 +55,17 @@ pub struct DecodeUtf16Error {
|
||||
/// ```
|
||||
/// use std::char::{decode_utf16, REPLACEMENT_CHARACTER};
|
||||
///
|
||||
/// fn main() {
|
||||
/// // 𝄞mus<invalid>ic<invalid>
|
||||
/// let v = [0xD834, 0xDD1E, 0x006d, 0x0075,
|
||||
/// 0x0073, 0xDD1E, 0x0069, 0x0063,
|
||||
/// 0xD834];
|
||||
/// // 𝄞mus<invalid>ic<invalid>
|
||||
/// let v = [
|
||||
/// 0xD834, 0xDD1E, 0x006d, 0x0075, 0x0073, 0xDD1E, 0x0069, 0x0063, 0xD834,
|
||||
/// ];
|
||||
///
|
||||
/// assert_eq!(decode_utf16(v.iter().cloned())
|
||||
/// .map(|r| r.unwrap_or(REPLACEMENT_CHARACTER))
|
||||
/// .collect::<String>(),
|
||||
/// "𝄞mus<75>ic<69>");
|
||||
/// }
|
||||
/// assert_eq!(
|
||||
/// decode_utf16(v.iter().cloned())
|
||||
/// .map(|r| r.unwrap_or(REPLACEMENT_CHARACTER))
|
||||
/// .collect::<String>(),
|
||||
/// "𝄞mus<75>ic<69>"
|
||||
/// );
|
||||
/// ```
|
||||
#[stable(feature = "decode_utf16", since = "1.9.0")]
|
||||
#[inline]
|
||||
|
@ -1532,12 +1532,10 @@ impl<'a> Formatter<'a> {
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(&format!("{:<}", Foo), "left");
|
||||
/// assert_eq!(&format!("{:>}", Foo), "right");
|
||||
/// assert_eq!(&format!("{:^}", Foo), "center");
|
||||
/// assert_eq!(&format!("{}", Foo), "into the void");
|
||||
/// }
|
||||
/// assert_eq!(&format!("{:<}", Foo), "left");
|
||||
/// assert_eq!(&format!("{:>}", Foo), "right");
|
||||
/// assert_eq!(&format!("{:^}", Foo), "center");
|
||||
/// assert_eq!(&format!("{}", Foo), "into the void");
|
||||
/// ```
|
||||
#[stable(feature = "fmt_flags_align", since = "1.28.0")]
|
||||
pub fn align(&self) -> Option<Alignment> {
|
||||
|
@ -2732,31 +2732,29 @@ impl<T: ?Sized> Eq for *mut T {}
|
||||
/// impl Trait for Wrapper {}
|
||||
/// impl Trait for i32 {}
|
||||
///
|
||||
/// fn main() {
|
||||
/// let wrapper = Wrapper { member: 10 };
|
||||
/// let wrapper = Wrapper { member: 10 };
|
||||
///
|
||||
/// // Pointers have equal addresses.
|
||||
/// assert!(std::ptr::eq(
|
||||
/// &wrapper as *const Wrapper as *const u8,
|
||||
/// &wrapper.member as *const i32 as *const u8
|
||||
/// ));
|
||||
/// // Pointers have equal addresses.
|
||||
/// assert!(std::ptr::eq(
|
||||
/// &wrapper as *const Wrapper as *const u8,
|
||||
/// &wrapper.member as *const i32 as *const u8
|
||||
/// ));
|
||||
///
|
||||
/// // Objects have equal addresses, but `Trait` has different implementations.
|
||||
/// assert!(!std::ptr::eq(
|
||||
/// &wrapper as &dyn Trait,
|
||||
/// &wrapper.member as &dyn Trait,
|
||||
/// ));
|
||||
/// assert!(!std::ptr::eq(
|
||||
/// &wrapper as &dyn Trait as *const dyn Trait,
|
||||
/// &wrapper.member as &dyn Trait as *const dyn Trait,
|
||||
/// ));
|
||||
/// // Objects have equal addresses, but `Trait` has different implementations.
|
||||
/// assert!(!std::ptr::eq(
|
||||
/// &wrapper as &dyn Trait,
|
||||
/// &wrapper.member as &dyn Trait,
|
||||
/// ));
|
||||
/// assert!(!std::ptr::eq(
|
||||
/// &wrapper as &dyn Trait as *const dyn Trait,
|
||||
/// &wrapper.member as &dyn Trait as *const dyn Trait,
|
||||
/// ));
|
||||
///
|
||||
/// // Converting the reference to a `*const u8` compares by address.
|
||||
/// assert!(std::ptr::eq(
|
||||
/// &wrapper as &dyn Trait as *const dyn Trait as *const u8,
|
||||
/// &wrapper.member as &dyn Trait as *const dyn Trait as *const u8,
|
||||
/// ));
|
||||
/// }
|
||||
/// // Converting the reference to a `*const u8` compares by address.
|
||||
/// assert!(std::ptr::eq(
|
||||
/// &wrapper as &dyn Trait as *const dyn Trait as *const u8,
|
||||
/// &wrapper.member as &dyn Trait as *const dyn Trait as *const u8,
|
||||
/// ));
|
||||
/// ```
|
||||
#[stable(feature = "ptr_eq", since = "1.17.0")]
|
||||
#[inline]
|
||||
|
@ -192,14 +192,9 @@ use crate::sys;
|
||||
/// ```
|
||||
/// use std::collections::HashMap;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let timber_resources: HashMap<&str, i32> =
|
||||
/// [("Norway", 100),
|
||||
/// ("Denmark", 50),
|
||||
/// ("Iceland", 10)]
|
||||
/// .iter().cloned().collect();
|
||||
/// // use the values stored in map
|
||||
/// }
|
||||
/// let timber_resources: HashMap<&str, i32> = [("Norway", 100), ("Denmark", 50), ("Iceland", 10)]
|
||||
/// .iter().cloned().collect();
|
||||
/// // use the values stored in map
|
||||
/// ```
|
||||
|
||||
#[derive(Clone)]
|
||||
|
@ -93,11 +93,9 @@ use super::map::{self, HashMap, Keys, RandomState};
|
||||
/// ```
|
||||
/// use std::collections::HashSet;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let viking_names: HashSet<&'static str> =
|
||||
/// [ "Einar", "Olaf", "Harald" ].iter().cloned().collect();
|
||||
/// // use the values stored in the set
|
||||
/// }
|
||||
/// let viking_names: HashSet<&'static str> =
|
||||
/// [ "Einar", "Olaf", "Harald" ].iter().cloned().collect();
|
||||
/// // use the values stored in the set
|
||||
/// ```
|
||||
///
|
||||
/// [`Cell`]: ../../std/cell/struct.Cell.html
|
||||
|
@ -217,11 +217,9 @@ impl SocketAddr {
|
||||
/// ```
|
||||
/// use std::net::{IpAddr, Ipv4Addr, SocketAddr};
|
||||
///
|
||||
/// fn main() {
|
||||
/// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
|
||||
/// assert_eq!(socket.is_ipv4(), true);
|
||||
/// assert_eq!(socket.is_ipv6(), false);
|
||||
/// }
|
||||
/// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080);
|
||||
/// assert_eq!(socket.is_ipv4(), true);
|
||||
/// assert_eq!(socket.is_ipv6(), false);
|
||||
/// ```
|
||||
#[stable(feature = "sockaddr_checker", since = "1.16.0")]
|
||||
pub fn is_ipv4(&self) -> bool {
|
||||
@ -244,12 +242,9 @@ impl SocketAddr {
|
||||
/// ```
|
||||
/// use std::net::{IpAddr, Ipv6Addr, SocketAddr};
|
||||
///
|
||||
/// fn main() {
|
||||
/// let socket = SocketAddr::new(
|
||||
/// IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 65535, 0, 1)), 8080);
|
||||
/// assert_eq!(socket.is_ipv4(), false);
|
||||
/// assert_eq!(socket.is_ipv6(), true);
|
||||
/// }
|
||||
/// let socket = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 65535, 0, 1)), 8080);
|
||||
/// assert_eq!(socket.is_ipv4(), false);
|
||||
/// assert_eq!(socket.is_ipv6(), true);
|
||||
/// ```
|
||||
#[stable(feature = "sockaddr_checker", since = "1.16.0")]
|
||||
pub fn is_ipv6(&self) -> bool {
|
||||
|
@ -197,11 +197,8 @@ impl IpAddr {
|
||||
///
|
||||
/// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(80, 9, 12, 3)).is_global(), true);
|
||||
/// assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0x1c9, 0, 0, 0xafc8, 0, 0x1)).is_global(),
|
||||
/// true);
|
||||
/// }
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(80, 9, 12, 3)).is_global(), true);
|
||||
/// assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0x1c9, 0, 0, 0xafc8, 0, 0x1)).is_global(), true);
|
||||
/// ```
|
||||
pub fn is_global(&self) -> bool {
|
||||
match self {
|
||||
@ -251,11 +248,11 @@ impl IpAddr {
|
||||
///
|
||||
/// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_documentation(), true);
|
||||
/// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0))
|
||||
/// .is_documentation(), true);
|
||||
/// }
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_documentation(), true);
|
||||
/// assert_eq!(
|
||||
/// IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_documentation(),
|
||||
/// true
|
||||
/// );
|
||||
/// ```
|
||||
pub fn is_documentation(&self) -> bool {
|
||||
match self {
|
||||
@ -275,11 +272,8 @@ impl IpAddr {
|
||||
/// ```
|
||||
/// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv4(), true);
|
||||
/// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv4(),
|
||||
/// false);
|
||||
/// }
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv4(), true);
|
||||
/// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv4(), false);
|
||||
/// ```
|
||||
#[stable(feature = "ipaddr_checker", since = "1.16.0")]
|
||||
pub fn is_ipv4(&self) -> bool {
|
||||
@ -300,11 +294,8 @@ impl IpAddr {
|
||||
/// ```
|
||||
/// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv6(), false);
|
||||
/// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv6(),
|
||||
/// true);
|
||||
/// }
|
||||
/// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv6(), false);
|
||||
/// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv6(), true);
|
||||
/// ```
|
||||
#[stable(feature = "ipaddr_checker", since = "1.16.0")]
|
||||
pub fn is_ipv6(&self) -> bool {
|
||||
@ -526,48 +517,46 @@ impl Ipv4Addr {
|
||||
///
|
||||
/// use std::net::Ipv4Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// // private addresses are not global
|
||||
/// assert_eq!(Ipv4Addr::new(10, 254, 0, 0).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 168, 10, 65).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_global(), false);
|
||||
/// // private addresses are not global
|
||||
/// assert_eq!(Ipv4Addr::new(10, 254, 0, 0).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 168, 10, 65).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_global(), false);
|
||||
///
|
||||
/// // the 0.0.0.0/8 block is not global
|
||||
/// assert_eq!(Ipv4Addr::new(0, 1, 2, 3).is_global(), false);
|
||||
/// // in particular, the unspecified address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(0, 0, 0, 0).is_global(), false);
|
||||
/// // the 0.0.0.0/8 block is not global
|
||||
/// assert_eq!(Ipv4Addr::new(0, 1, 2, 3).is_global(), false);
|
||||
/// // in particular, the unspecified address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(0, 0, 0, 0).is_global(), false);
|
||||
///
|
||||
/// // the loopback address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(127, 0, 0, 1).is_global(), false);
|
||||
/// // the loopback address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(127, 0, 0, 1).is_global(), false);
|
||||
///
|
||||
/// // link local addresses are not global
|
||||
/// assert_eq!(Ipv4Addr::new(169, 254, 45, 1).is_global(), false);
|
||||
/// // link local addresses are not global
|
||||
/// assert_eq!(Ipv4Addr::new(169, 254, 45, 1).is_global(), false);
|
||||
///
|
||||
/// // the broadcast address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(255, 255, 255, 255).is_global(), false);
|
||||
/// // the broadcast address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(255, 255, 255, 255).is_global(), false);
|
||||
///
|
||||
/// // the broadcast address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 2, 255).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 51, 100, 65).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_global(), false);
|
||||
/// // the broadcast address is not global
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 2, 255).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 51, 100, 65).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_global(), false);
|
||||
///
|
||||
/// // shared addresses are not global
|
||||
/// assert_eq!(Ipv4Addr::new(100, 100, 0, 0).is_global(), false);
|
||||
/// // shared addresses are not global
|
||||
/// assert_eq!(Ipv4Addr::new(100, 100, 0, 0).is_global(), false);
|
||||
///
|
||||
/// // addresses reserved for protocol assignment are not global
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 0).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 255).is_global(), false);
|
||||
/// // addresses reserved for protocol assignment are not global
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 0).is_global(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 255).is_global(), false);
|
||||
///
|
||||
/// // addresses reserved for future use are not global
|
||||
/// assert_eq!(Ipv4Addr::new(250, 10, 20, 30).is_global(), false);
|
||||
/// // addresses reserved for future use are not global
|
||||
/// assert_eq!(Ipv4Addr::new(250, 10, 20, 30).is_global(), false);
|
||||
///
|
||||
/// // addresses reserved for network devices benchmarking are not global
|
||||
/// assert_eq!(Ipv4Addr::new(198, 18, 0, 0).is_global(), false);
|
||||
/// // addresses reserved for network devices benchmarking are not global
|
||||
/// assert_eq!(Ipv4Addr::new(198, 18, 0, 0).is_global(), false);
|
||||
///
|
||||
/// // All the other addresses are global
|
||||
/// assert_eq!(Ipv4Addr::new(1, 1, 1, 1).is_global(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(80, 9, 12, 3).is_global(), true);
|
||||
/// }
|
||||
/// // All the other addresses are global
|
||||
/// assert_eq!(Ipv4Addr::new(1, 1, 1, 1).is_global(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(80, 9, 12, 3).is_global(), true);
|
||||
/// ```
|
||||
pub fn is_global(&self) -> bool {
|
||||
// check if this address is 192.0.0.9 or 192.0.0.10. These addresses are the only two
|
||||
@ -600,11 +589,9 @@ impl Ipv4Addr {
|
||||
/// #![feature(ip)]
|
||||
/// use std::net::Ipv4Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv4Addr::new(100, 64, 0, 0).is_shared(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(100, 127, 255, 255).is_shared(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(100, 128, 0, 0).is_shared(), false);
|
||||
/// }
|
||||
/// assert_eq!(Ipv4Addr::new(100, 64, 0, 0).is_shared(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(100, 127, 255, 255).is_shared(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(100, 128, 0, 0).is_shared(), false);
|
||||
/// ```
|
||||
pub fn is_shared(&self) -> bool {
|
||||
self.octets()[0] == 100 && (self.octets()[1] & 0b1100_0000 == 0b0100_0000)
|
||||
@ -631,14 +618,12 @@ impl Ipv4Addr {
|
||||
/// #![feature(ip)]
|
||||
/// use std::net::Ipv4Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 0).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 8).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 9).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 255).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 1, 0).is_ietf_protocol_assignment(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(191, 255, 255, 255).is_ietf_protocol_assignment(), false);
|
||||
/// }
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 0).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 8).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 9).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 0, 255).is_ietf_protocol_assignment(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 1, 0).is_ietf_protocol_assignment(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(191, 255, 255, 255).is_ietf_protocol_assignment(), false);
|
||||
/// ```
|
||||
pub fn is_ietf_protocol_assignment(&self) -> bool {
|
||||
self.octets()[0] == 192 && self.octets()[1] == 0 && self.octets()[2] == 0
|
||||
@ -658,12 +643,10 @@ impl Ipv4Addr {
|
||||
/// #![feature(ip)]
|
||||
/// use std::net::Ipv4Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv4Addr::new(198, 17, 255, 255).is_benchmarking(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 18, 0, 0).is_benchmarking(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 19, 255, 255).is_benchmarking(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 20, 0, 0).is_benchmarking(), false);
|
||||
/// }
|
||||
/// assert_eq!(Ipv4Addr::new(198, 17, 255, 255).is_benchmarking(), false);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 18, 0, 0).is_benchmarking(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 19, 255, 255).is_benchmarking(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(198, 20, 0, 0).is_benchmarking(), false);
|
||||
/// ```
|
||||
pub fn is_benchmarking(&self) -> bool {
|
||||
self.octets()[0] == 198 && (self.octets()[1] & 0xfe) == 18
|
||||
@ -690,15 +673,12 @@ impl Ipv4Addr {
|
||||
/// #![feature(ip)]
|
||||
/// use std::net::Ipv4Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv4Addr::new(240, 0, 0, 0).is_reserved(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(255, 255, 255, 254).is_reserved(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(240, 0, 0, 0).is_reserved(), true);
|
||||
/// assert_eq!(Ipv4Addr::new(255, 255, 255, 254).is_reserved(), true);
|
||||
///
|
||||
/// assert_eq!(Ipv4Addr::new(239, 255, 255, 255).is_reserved(), false);
|
||||
/// // The broadcast address is not considered as reserved for future use by this
|
||||
/// // implementation
|
||||
/// assert_eq!(Ipv4Addr::new(255, 255, 255, 255).is_reserved(), false);
|
||||
/// }
|
||||
/// assert_eq!(Ipv4Addr::new(239, 255, 255, 255).is_reserved(), false);
|
||||
/// // The broadcast address is not considered as reserved for future use by this implementation
|
||||
/// assert_eq!(Ipv4Addr::new(255, 255, 255, 255).is_reserved(), false);
|
||||
/// ```
|
||||
pub fn is_reserved(&self) -> bool {
|
||||
self.octets()[0] & 240 == 240 && !self.is_broadcast()
|
||||
@ -788,8 +768,10 @@ impl Ipv4Addr {
|
||||
/// ```
|
||||
/// use std::net::{Ipv4Addr, Ipv6Addr};
|
||||
///
|
||||
/// assert_eq!(Ipv4Addr::new(192, 0, 2, 255).to_ipv6_compatible(),
|
||||
/// Ipv6Addr::new(0, 0, 0, 0, 0, 0, 49152, 767));
|
||||
/// assert_eq!(
|
||||
/// Ipv4Addr::new(192, 0, 2, 255).to_ipv6_compatible(),
|
||||
/// Ipv6Addr::new(0, 0, 0, 0, 0, 0, 49152, 767)
|
||||
/// );
|
||||
/// ```
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub fn to_ipv6_compatible(&self) -> Ipv6Addr {
|
||||
@ -1161,11 +1143,9 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_global(), true);
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0x1).is_global(), false);
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0x1c9, 0, 0, 0xafc8, 0, 0x1).is_global(), true);
|
||||
/// }
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_global(), true);
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0x1).is_global(), false);
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0x1c9, 0, 0, 0xafc8, 0, 0x1).is_global(), true);
|
||||
/// ```
|
||||
pub fn is_global(&self) -> bool {
|
||||
match self.multicast_scope() {
|
||||
@ -1189,11 +1169,8 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unique_local(),
|
||||
/// false);
|
||||
/// assert_eq!(Ipv6Addr::new(0xfc02, 0, 0, 0, 0, 0, 0, 0).is_unique_local(), true);
|
||||
/// }
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unique_local(), false);
|
||||
/// assert_eq!(Ipv6Addr::new(0xfc02, 0, 0, 0, 0, 0, 0, 0).is_unique_local(), true);
|
||||
/// ```
|
||||
pub fn is_unique_local(&self) -> bool {
|
||||
(self.segments()[0] & 0xfe00) == 0xfc00
|
||||
@ -1223,21 +1200,19 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local_strict());
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local_strict());
|
||||
///
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0xffff, 0xffff, 0xffff, 0xffff);
|
||||
/// assert!(ip.is_unicast_link_local_strict());
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0xffff, 0xffff, 0xffff, 0xffff);
|
||||
/// assert!(ip.is_unicast_link_local_strict());
|
||||
///
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 1, 0, 0, 0, 0);
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 1, 0, 0, 0, 0);
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
///
|
||||
/// let ip = Ipv6Addr::new(0xfe81, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// }
|
||||
/// let ip = Ipv6Addr::new(0xfe81, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// ```
|
||||
///
|
||||
/// # See also
|
||||
@ -1284,21 +1259,19 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
///
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0xffff, 0xffff, 0xffff, 0xffff);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 0, 0xffff, 0xffff, 0xffff, 0xffff);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
///
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 1, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
/// let ip = Ipv6Addr::new(0xfe80, 0, 0, 1, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
///
|
||||
/// let ip = Ipv6Addr::new(0xfe81, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
/// }
|
||||
/// let ip = Ipv6Addr::new(0xfe81, 0, 0, 0, 0, 0, 0, 0);
|
||||
/// assert!(ip.is_unicast_link_local());
|
||||
/// assert!(!ip.is_unicast_link_local_strict());
|
||||
/// ```
|
||||
///
|
||||
/// # See also
|
||||
@ -1336,11 +1309,11 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unicast_site_local(),
|
||||
/// false);
|
||||
/// assert_eq!(Ipv6Addr::new(0xfec2, 0, 0, 0, 0, 0, 0, 0).is_unicast_site_local(), true);
|
||||
/// }
|
||||
/// assert_eq!(
|
||||
/// Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unicast_site_local(),
|
||||
/// false
|
||||
/// );
|
||||
/// assert_eq!(Ipv6Addr::new(0xfec2, 0, 0, 0, 0, 0, 0, 0).is_unicast_site_local(), true);
|
||||
/// ```
|
||||
///
|
||||
/// # Warning
|
||||
@ -1369,11 +1342,8 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_documentation(),
|
||||
/// false);
|
||||
/// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_documentation(), true);
|
||||
/// }
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_documentation(), false);
|
||||
/// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_documentation(), true);
|
||||
/// ```
|
||||
pub fn is_documentation(&self) -> bool {
|
||||
(self.segments()[0] == 0x2001) && (self.segments()[1] == 0xdb8)
|
||||
@ -1407,11 +1377,8 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::Ipv6Addr;
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_unicast_global(), false);
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unicast_global(),
|
||||
/// true);
|
||||
/// }
|
||||
/// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_unicast_global(), false);
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unicast_global(), true);
|
||||
/// ```
|
||||
pub fn is_unicast_global(&self) -> bool {
|
||||
!self.is_multicast()
|
||||
@ -1431,11 +1398,11 @@ impl Ipv6Addr {
|
||||
///
|
||||
/// use std::net::{Ipv6Addr, Ipv6MulticastScope};
|
||||
///
|
||||
/// fn main() {
|
||||
/// assert_eq!(Ipv6Addr::new(0xff0e, 0, 0, 0, 0, 0, 0, 0).multicast_scope(),
|
||||
/// Some(Ipv6MulticastScope::Global));
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).multicast_scope(), None);
|
||||
/// }
|
||||
/// assert_eq!(
|
||||
/// Ipv6Addr::new(0xff0e, 0, 0, 0, 0, 0, 0, 0).multicast_scope(),
|
||||
/// Some(Ipv6MulticastScope::Global)
|
||||
/// );
|
||||
/// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).multicast_scope(), None);
|
||||
/// ```
|
||||
pub fn multicast_scope(&self) -> Option<Ipv6MulticastScope> {
|
||||
if self.is_multicast() {
|
||||
|
@ -426,14 +426,12 @@ mod prim_unit { }
|
||||
///
|
||||
/// use std::mem;
|
||||
///
|
||||
/// fn main() {
|
||||
/// unsafe {
|
||||
/// let my_num: *mut i32 = libc::malloc(mem::size_of::<i32>()) as *mut i32;
|
||||
/// if my_num.is_null() {
|
||||
/// panic!("failed to allocate memory");
|
||||
/// }
|
||||
/// libc::free(my_num as *mut libc::c_void);
|
||||
/// unsafe {
|
||||
/// let my_num: *mut i32 = libc::malloc(mem::size_of::<i32>()) as *mut i32;
|
||||
/// if my_num.is_null() {
|
||||
/// panic!("failed to allocate memory");
|
||||
/// }
|
||||
/// libc::free(my_num as *mut libc::c_void);
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user