Fix comment formatting

This commit is contained in:
Brendan Zabarauskas 2014-06-16 00:22:51 -07:00 committed by Alex Crichton
parent b84d17d4d7
commit 4c0f8f49f6

View file

@ -403,10 +403,8 @@ pub fn from_be32(x: u32) -> u32 { ByteOrder::from_big_endian(x) }
#[stable] #[stable]
pub fn from_be64(x: u64) -> u64 { ByteOrder::from_big_endian(x) } pub fn from_be64(x: u64) -> u64 { ByteOrder::from_big_endian(x) }
/** /// Swap the values at two mutable locations of the same type, without
* Swap the values at two mutable locations of the same type, without /// deinitialising or copying either one.
* deinitialising or copying either one.
*/
#[inline] #[inline]
#[stable] #[stable]
pub fn swap<T>(x: &mut T, y: &mut T) { pub fn swap<T>(x: &mut T, y: &mut T) {
@ -425,42 +423,40 @@ pub fn swap<T>(x: &mut T, y: &mut T) {
} }
} }
/** /// Replace the value at a mutable location with a new one, returning the old
* Replace the value at a mutable location with a new one, returning the old /// value, without deinitialising or copying either one.
* value, without deinitialising or copying either one. ///
* /// This is primarily used for transferring and swapping ownership of a value
* This is primarily used for transferring and swapping ownership of a value /// in a mutable location. For example, this function allows consumption of
* in a mutable location. For example, this function allows consumption of /// one field of a struct by replacing it with another value. The normal approach
* one field of a struct by replacing it with another value. The normal approach /// doesn't always work:
* doesn't always work: ///
* /// ```rust,ignore
* ```rust,ignore /// struct Buffer<T> { buf: Vec<T> }
* struct Buffer<T> { buf: Vec<T> } ///
* /// impl<T> Buffer<T> {
* impl<T> Buffer<T> { /// fn get_and_reset(&mut self) -> Vec<T> {
* fn get_and_reset(&mut self) -> Vec<T> { /// // error: cannot move out of dereference of `&mut`-pointer
* // error: cannot move out of dereference of `&mut`-pointer /// let buf = self.buf;
* let buf = self.buf; /// self.buf = Vec::new();
* self.buf = Vec::new(); /// buf
* buf /// }
* } /// }
* } /// ```
* ``` ///
* /// Note that `T` does not necessarily implement `Clone`, so it can't even
* Note that `T` does not necessarily implement `Clone`, so it can't even /// clone and reset `self.buf`. But `replace` can be used to disassociate
* clone and reset `self.buf`. But `replace` can be used to disassociate /// the original value of `self.buf` from `self`, allowing it to be returned:
* the original value of `self.buf` from `self`, allowing it to be returned: ///
* /// ```rust
* ```rust /// # struct Buffer<T> { buf: Vec<T> }
* # struct Buffer<T> { buf: Vec<T> } /// impl<T> Buffer<T> {
* impl<T> Buffer<T> { /// fn get_and_reset(&mut self) -> Vec<T> {
* fn get_and_reset(&mut self) -> Vec<T> { /// use std::mem::replace;
* use std::mem::replace; /// replace(&mut self.buf, Vec::new())
* replace(&mut self.buf, Vec::new()) /// }
* } /// }
* } /// ```
* ```
*/
#[inline] #[inline]
#[stable] #[stable]
pub fn replace<T>(dest: &mut T, mut src: T) -> T { pub fn replace<T>(dest: &mut T, mut src: T) -> T {