Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Second doc backport #25273

Merged
merged 13 commits into from
May 10, 2015
9 changes: 5 additions & 4 deletions src/libcollections/string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -950,12 +950,13 @@ impl<'a> Deref for DerefString<'a> {
/// # #![feature(collections)]
/// use std::string::as_string;
///
/// fn string_consumer(s: String) {
/// assert_eq!(s, "foo".to_string());
/// // Let's pretend we have a function that requires `&String`
/// fn string_consumer(s: &String) {
/// assert_eq!(s, "foo");
/// }
///
/// let string = as_string("foo").clone();
/// string_consumer(string);
/// // Provide a `&String` from a `&str` without allocating
/// string_consumer(&as_string("foo"));
/// ```
#[unstable(feature = "collections")]
pub fn as_string<'a>(x: &'a str) -> DerefString<'a> {
Expand Down
22 changes: 17 additions & 5 deletions src/libcollections/vec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,7 @@ static MAX_MEMORY_SIZE: usize = isize::MAX as usize;
/// stack.push(2);
/// stack.push(3);
///
/// loop {
/// let top = match stack.pop() {
/// None => break, // empty
/// Some(x) => x,
/// };
/// while let Some(top) = stack.pop() {
/// // Prints 3, 2, 1
/// println!("{}", top);
/// }
Expand Down Expand Up @@ -1907,6 +1903,22 @@ impl<'a, T> Drop for DerefVec<'a, T> {
}

/// Converts a slice to a wrapper type providing a `&Vec<T>` reference.
///
/// # Examples
///
/// ```
/// # #![feature(collections)]
/// use std::vec::as_vec;
///
/// // Let's pretend we have a function that requires `&Vec<i32>`
/// fn vec_consumer(s: &Vec<i32>) {
/// assert_eq!(s, &[1, 2, 3]);
/// }
///
/// // Provide a `&Vec<i32>` from a `&[i32]` without allocating
/// let values = [1, 2, 3];
/// vec_consumer(&as_vec(&values));
/// ```
#[unstable(feature = "collections")]
pub fn as_vec<'a, T>(x: &'a [T]) -> DerefVec<'a, T> {
unsafe {
Expand Down
2 changes: 1 addition & 1 deletion src/libcore/cell.rs
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ impl<T> RefCell<T> {
///
/// let result = thread::spawn(move || {
/// let c = RefCell::new(5);
/// let m = c.borrow_mut();
/// let m = c.borrow();
///
/// let b = c.borrow_mut(); // this causes a panic
/// }).join();
Expand Down
4 changes: 1 addition & 3 deletions src/libcore/convert.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,8 @@ pub trait Into<T>: Sized {
/// `String` implements `From<&str>`:
///
/// ```
/// let s = "hello";
/// let string = "hello".to_string();
///
/// let other_string: String = From::from(s);
/// let other_string = String::from("hello");
///
/// assert_eq!(string, other_string);
/// ```
Expand Down
4 changes: 2 additions & 2 deletions src/libcore/iter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,8 @@ pub trait Iterator {

/// Creates an iterator that iterates over both this and the specified
/// iterators simultaneously, yielding the two elements as pairs. When
/// either iterator returns `None`, all further invocations of next() will
/// return `None`.
/// either iterator returns `None`, all further invocations of `next()`
/// will return `None`.
///
/// # Examples
///
Expand Down
4 changes: 4 additions & 0 deletions src/libstd/io/stdio.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ impl Write for StderrRaw {
///
/// This handle implements the `Read` trait, but beware that concurrent reads
/// of `Stdin` must be executed with care.
///
/// Created by the function `io::stdin()`.
#[stable(feature = "rust1", since = "1.0.0")]
pub struct Stdin {
inner: Arc<Mutex<BufReader<StdinRaw>>>,
Expand Down Expand Up @@ -206,6 +208,8 @@ const OUT_MAX: usize = ::usize::MAX;
/// Each handle shares a global buffer of data to be written to the standard
/// output stream. Access is also synchronized via a lock and explicit control
/// over locking is available via the `lock` method.
///
/// Created by the function `io::stdout()`.
#[stable(feature = "rust1", since = "1.0.0")]
pub struct Stdout {
// FIXME: this should be LineWriter or BufWriter depending on the state of
Expand Down
18 changes: 9 additions & 9 deletions src/libstd/net/addr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ pub enum SocketAddr {
#[stable(feature = "rust1", since = "1.0.0")]
pub struct SocketAddrV4 { inner: libc::sockaddr_in }

/// An IPv6 socket address
/// An IPv6 socket address.
#[derive(Copy)]
#[stable(feature = "rust1", since = "1.0.0")]
pub struct SocketAddrV6 { inner: libc::sockaddr_in6 }
Expand All @@ -56,7 +56,7 @@ impl SocketAddr {
}
}

/// Gets the IP address associated with this socket address.
/// Returns the IP address associated with this socket address.
#[unstable(feature = "ip_addr", reason = "recent addition")]
pub fn ip(&self) -> IpAddr {
match *self {
Expand All @@ -65,7 +65,7 @@ impl SocketAddr {
}
}

/// Gets the port number associated with this socket address
/// Returns the port number associated with this socket address.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn port(&self) -> u16 {
match *self {
Expand All @@ -89,15 +89,15 @@ impl SocketAddrV4 {
}
}

/// Gets the IP address associated with this socket address.
/// Returns the IP address associated with this socket address.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn ip(&self) -> &Ipv4Addr {
unsafe {
&*(&self.inner.sin_addr as *const libc::in_addr as *const Ipv4Addr)
}
}

/// Gets the port number associated with this socket address
/// Returns the port number associated with this socket address.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn port(&self) -> u16 { ntoh(self.inner.sin_port) }
}
Expand All @@ -120,24 +120,24 @@ impl SocketAddrV6 {
}
}

/// Gets the IP address associated with this socket address.
/// Returns the IP address associated with this socket address.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn ip(&self) -> &Ipv6Addr {
unsafe {
&*(&self.inner.sin6_addr as *const libc::in6_addr as *const Ipv6Addr)
}
}

/// Gets the port number associated with this socket address
/// Returns the port number associated with this socket address.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn port(&self) -> u16 { ntoh(self.inner.sin6_port) }

/// Gets scope ID associated with this address, corresponding to the
/// Returns scope ID associated with this address, corresponding to the
/// `sin6_flowinfo` field in C.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn flowinfo(&self) -> u32 { ntoh(self.inner.sin6_flowinfo) }

/// Gets scope ID associated with this address, corresponding to the
/// Returns scope ID associated with this address, corresponding to the
/// `sin6_scope_id` field in C.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn scope_id(&self) -> u32 { ntoh(self.inner.sin6_scope_id) }
Expand Down
38 changes: 19 additions & 19 deletions src/libstd/net/ip.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ pub enum Ipv6MulticastScope {
impl Ipv4Addr {
/// Creates a new IPv4 address from four eight-bit octets.
///
/// The result will represent the IP address a.b.c.d
/// The result will represent the IP address `a`.`b`.`c`.`d`.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn new(a: u8, b: u8, c: u8, d: u8) -> Ipv4Addr {
Ipv4Addr {
Expand All @@ -73,19 +73,19 @@ impl Ipv4Addr {
}
}

/// Returns the four eight-bit integers that make up this address
/// Returns the four eight-bit integers that make up this address.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn octets(&self) -> [u8; 4] {
let bits = ntoh(self.inner.s_addr);
[(bits >> 24) as u8, (bits >> 16) as u8, (bits >> 8) as u8, bits as u8]
}

/// Returns true for the special 'unspecified' address 0.0.0.0
/// Returns true for the special 'unspecified' address 0.0.0.0.
pub fn is_unspecified(&self) -> bool {
self.inner.s_addr == 0
}

/// Returns true if this is a loopback address (127.0.0.0/8)
/// Returns true if this is a loopback address (127.0.0.0/8).
pub fn is_loopback(&self) -> bool {
self.octets()[0] == 127
}
Expand All @@ -106,7 +106,7 @@ impl Ipv4Addr {
}
}

/// Returns true if the address is link-local (169.254.0.0/16)
/// Returns true if the address is link-local (169.254.0.0/16).
pub fn is_link_local(&self) -> bool {
self.octets()[0] == 169 && self.octets()[1] == 254
}
Expand All @@ -116,7 +116,7 @@ impl Ipv4Addr {
/// Non-globally-routable networks include the private networks (10.0.0.0/8,
/// 172.16.0.0/12 and 192.168.0.0/16), the loopback network (127.0.0.0/8),
/// the link-local network (169.254.0.0/16), the broadcast address (255.255.255.255/32) and
/// the test networks used for documentation (192.0.2.0/24, 198.51.100.0/24 and 203.0.113.0/24)
/// the test networks used for documentation (192.0.2.0/24, 198.51.100.0/24 and 203.0.113.0/24).
pub fn is_global(&self) -> bool {
!self.is_private() && !self.is_loopback() && !self.is_link_local() &&
!self.is_broadcast() && !self.is_documentation()
Expand All @@ -131,13 +131,13 @@ impl Ipv4Addr {

/// Returns true if this is a broadcast address.
///
/// A broadcast address has all octets set to 255 as defined in RFC 919
/// A broadcast address has all octets set to 255 as defined in RFC 919.
pub fn is_broadcast(&self) -> bool {
self.octets()[0] == 255 && self.octets()[1] == 255 &&
self.octets()[2] == 255 && self.octets()[3] == 255
}

/// Returns true if this address is in a range designated for documentation
/// Returns true if this address is in a range designated for documentation.
///
/// This is defined in RFC 5737
/// - 192.0.2.0/24 (TEST-NET-1)
Expand All @@ -152,7 +152,7 @@ impl Ipv4Addr {
}
}

/// Converts this address to an IPv4-compatible IPv6 address
/// Converts this address to an IPv4-compatible IPv6 address.
///
/// a.b.c.d becomes ::a.b.c.d
#[stable(feature = "rust1", since = "1.0.0")]
Expand All @@ -162,7 +162,7 @@ impl Ipv4Addr {
((self.octets()[2] as u16) << 8) | self.octets()[3] as u16)
}

/// Converts this address to an IPv4-mapped IPv6 address
/// Converts this address to an IPv4-mapped IPv6 address.
///
/// a.b.c.d becomes ::ffff:a.b.c.d
#[stable(feature = "rust1", since = "1.0.0")]
Expand Down Expand Up @@ -247,7 +247,7 @@ impl FromInner<libc::in_addr> for Ipv4Addr {
impl Ipv6Addr {
/// Creates a new IPv6 address from eight 16-bit segments.
///
/// The result will represent the IP address a:b:c:d:e:f:g:h
/// The result will represent the IP address a:b:c:d:e:f:g:h.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn new(a: u16, b: u16, c: u16, d: u16, e: u16, f: u16, g: u16,
h: u16) -> Ipv6Addr {
Expand All @@ -259,7 +259,7 @@ impl Ipv6Addr {
}
}

/// Returns the eight 16-bit segments that make up this address
/// Returns the eight 16-bit segments that make up this address.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn segments(&self) -> [u16; 8] {
[ntoh(self.inner.s6_addr[0]),
Expand All @@ -272,12 +272,12 @@ impl Ipv6Addr {
ntoh(self.inner.s6_addr[7])]
}

/// Returns true for the special 'unspecified' address ::
/// Returns true for the special 'unspecified' address ::.
pub fn is_unspecified(&self) -> bool {
self.segments() == [0, 0, 0, 0, 0, 0, 0, 0]
}

/// Returns true if this is a loopback address (::1)
/// Returns true if this is a loopback address (::1).
pub fn is_loopback(&self) -> bool {
self.segments() == [0, 0, 0, 0, 0, 0, 0, 1]
}
Expand All @@ -295,25 +295,25 @@ impl Ipv6Addr {
}
}

/// Returns true if this is a unique local address (IPv6)
/// Returns true if this is a unique local address (IPv6).
///
/// Unique local addresses are defined in RFC4193 and have the form fc00::/7
/// Unique local addresses are defined in RFC4193 and have the form fc00::/7.
pub fn is_unique_local(&self) -> bool {
(self.segments()[0] & 0xfe00) == 0xfc00
}

/// Returns true if the address is unicast and link-local (fe80::/10)
/// Returns true if the address is unicast and link-local (fe80::/10).
pub fn is_unicast_link_local(&self) -> bool {
(self.segments()[0] & 0xffc0) == 0xfe80
}

/// Returns true if this is a deprecated unicast site-local address (IPv6
/// fec0::/10)
/// fec0::/10).
pub fn is_unicast_site_local(&self) -> bool {
(self.segments()[0] & 0xffc0) == 0xfec0
}

/// Returns true if the address is a globally routable unicast address
/// Returns true if the address is a globally routable unicast address.
///
/// Non-globally-routable unicast addresses include the loopback address,
/// the link-local addresses, the deprecated site-local addresses and the
Expand Down
2 changes: 1 addition & 1 deletion src/libstd/net/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ impl TcpStream {
self.0.duplicate().map(TcpStream)
}

/// Sets the nodelay flag on this connection to the boolean specified
/// Sets the nodelay flag on this connection to the boolean specified.
pub fn set_nodelay(&self, nodelay: bool) -> io::Result<()> {
self.0.set_nodelay(nodelay)
}
Expand Down
20 changes: 10 additions & 10 deletions src/libstd/net/udp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ pub struct UdpSocket(net_imp::UdpSocket);
impl UdpSocket {
/// Creates a UDP socket from the given address.
///
/// Address type can be any implementor of `ToSocketAddr` trait. See its
/// documentation for concrete examples.
/// The address type can be any implementor of `ToSocketAddr` trait. See
/// its documentation for concrete examples.
#[stable(feature = "rust1", since = "1.0.0")]
pub fn bind<A: ToSocketAddrs>(addr: A) -> io::Result<UdpSocket> {
super::each_addr(addr, net_imp::UdpSocket::bind).map(UdpSocket)
Expand All @@ -64,8 +64,8 @@ impl UdpSocket {
self.0.recv_from(buf)
}

/// Sends data on the socket to the given address. Returns nothing on
/// success.
/// Sends data on the socket to the given address. On success, returns the
/// number of bytes written.
///
/// Address type can be any implementor of `ToSocketAddrs` trait. See its
/// documentation for concrete examples.
Expand Down Expand Up @@ -95,34 +95,34 @@ impl UdpSocket {
self.0.duplicate().map(UdpSocket)
}

/// Sets the broadcast flag on or off
/// Sets the broadcast flag on or off.
pub fn set_broadcast(&self, on: bool) -> io::Result<()> {
self.0.set_broadcast(on)
}

/// Sets the multicast loop flag to the specified value
/// Sets the multicast loop flag to the specified value.
///
/// This lets multicast packets loop back to local sockets (if enabled)
pub fn set_multicast_loop(&self, on: bool) -> io::Result<()> {
self.0.set_multicast_loop(on)
}

/// Joins a multicast IP address (becomes a member of it)
/// Joins a multicast IP address (becomes a member of it).
pub fn join_multicast(&self, multi: &IpAddr) -> io::Result<()> {
self.0.join_multicast(multi)
}

/// Leaves a multicast IP address (drops membership from it)
/// Leaves a multicast IP address (drops membership from it).
pub fn leave_multicast(&self, multi: &IpAddr) -> io::Result<()> {
self.0.leave_multicast(multi)
}

/// Sets the multicast TTL
/// Sets the multicast TTL.
pub fn set_multicast_time_to_live(&self, ttl: i32) -> io::Result<()> {
self.0.multicast_time_to_live(ttl)
}

/// Sets this socket's TTL
/// Sets this socket's TTL.
pub fn set_time_to_live(&self, ttl: i32) -> io::Result<()> {
self.0.time_to_live(ttl)
}
Expand Down
Loading