Skip to content

Commit

Permalink
Stabilize a few remaining stragglers
Browse files Browse the repository at this point in the history
* The `io::Seek` trait, and `SeekFrom` enum.
* The `Iterator::{partition, unsip}` methods.
* The `Vec::into_boxed_slice` method.
* The `LinkedList::append` method.
* The `{or_insert, or_insert_with` methods in the `Entry` APIs.
  • Loading branch information
aturon committed Mar 31, 2015
1 parent 80bf31d commit b9ab5fe
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 16 deletions.
6 changes: 2 additions & 4 deletions src/libcollections/btree/map.rs
Expand Up @@ -1134,8 +1134,7 @@ impl<'a, K: Ord, V> Entry<'a, K, V> {
}
}

#[unstable(feature = "collections",
reason = "matches entry v3 specification, waiting for dust to settle")]
#[stable(feature = "rust1", since = "1.0.0")]
/// Ensures a value is in the entry by inserting the default if empty, and returns
/// a mutable reference to the value in the entry.
pub fn or_insert(self, default: V) -> &'a mut V {
Expand All @@ -1145,8 +1144,7 @@ impl<'a, K: Ord, V> Entry<'a, K, V> {
}
}

#[unstable(feature = "collections",
reason = "matches entry v3 specification, waiting for dust to settle")]
#[stable(feature = "rust1", since = "1.0.0")]
/// Ensures a value is in the entry by inserting the result of the default function if empty,
/// and returns a mutable reference to the value in the entry.
pub fn or_insert_with<F: FnOnce() -> V>(self, default: F) -> &'a mut V {
Expand Down
1 change: 1 addition & 0 deletions src/libcollections/linked_list.rs
Expand Up @@ -252,6 +252,7 @@ impl<T> LinkedList<T> {
/// }
/// println!("{}", b.len()); // prints 0
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
pub fn append(&mut self, other: &mut LinkedList<T>) {
match self.list_tail.resolve() {
None => {
Expand Down
2 changes: 1 addition & 1 deletion src/libcollections/vec.rs
Expand Up @@ -389,7 +389,7 @@ impl<T> Vec<T> {
/// Note that this will drop any excess capacity. Calling this and
/// converting back to a vector with `into_vec()` is equivalent to calling
/// `shrink_to_fit()`.
#[unstable(feature = "collections")]
#[stable(feature = "rust1", since = "1.0.0")]
pub fn into_boxed_slice(mut self) -> Box<[T]> {
self.shrink_to_fit();
unsafe {
Expand Down
5 changes: 2 additions & 3 deletions src/libcore/iter.rs
Expand Up @@ -553,8 +553,7 @@ pub trait Iterator {
/// assert_eq!(even, [2, 4]);
/// assert_eq!(odd, [1, 3]);
/// ```
#[unstable(feature = "core",
reason = "recently added as part of collections reform")]
#[stable(feature = "rust1", since = "1.0.0")]
fn partition<B, F>(self, mut f: F) -> (B, B) where
Self: Sized,
B: Default + Extend<Self::Item>,
Expand Down Expand Up @@ -930,7 +929,7 @@ pub trait Iterator {
/// assert_eq!([1, 3], left);
/// assert_eq!([2, 4], right);
/// ```
#[unstable(feature = "core", reason = "recent addition")]
#[stable(feature = "rust1", since = "1.0.0")]
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB) where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Expand Down
6 changes: 2 additions & 4 deletions src/libstd/collections/hash/map.rs
Expand Up @@ -1482,8 +1482,7 @@ impl<'a, K, V> Entry<'a, K, V> {
}
}

#[unstable(feature = "collections",
reason = "matches entry v3 specification, waiting for dust to settle")]
#[stable(feature = "rust1", since = "1.0.0")]
/// Ensures a value is in the entry by inserting the default if empty, and returns
/// a mutable reference to the value in the entry.
pub fn or_insert(self, default: V) -> &'a mut V {
Expand All @@ -1493,8 +1492,7 @@ impl<'a, K, V> Entry<'a, K, V> {
}
}

#[unstable(feature = "collections",
reason = "matches entry v3 specification, waiting for dust to settle")]
#[stable(feature = "rust1", since = "1.0.0")]
/// Ensures a value is in the entry by inserting the result of the default function if empty,
/// and returns a mutable reference to the value in the entry.
pub fn or_insert_with<F: FnOnce() -> V>(self, default: F) -> &'a mut V {
Expand Down
10 changes: 6 additions & 4 deletions src/libstd/io/mod.rs
Expand Up @@ -441,9 +441,7 @@ pub trait Write {
///
/// The stream typically has a fixed size, allowing seeking relative to either
/// end or the current offset.
#[unstable(feature = "io", reason = "the central `seek` method may be split \
into multiple methods instead of taking \
an enum as an argument")]
#[stable(feature = "rust1", since = "1.0.0")]
pub trait Seek {
/// Seek to an offset, in bytes, in a stream
///
Expand All @@ -459,28 +457,32 @@ pub trait Seek {
/// # Errors
///
/// Seeking to a negative offset is considered an error
#[stable(feature = "rust1", since = "1.0.0")]
fn seek(&mut self, pos: SeekFrom) -> Result<u64>;
}

/// Enumeration of possible methods to seek within an I/O object.
#[derive(Copy, PartialEq, Eq, Clone, Debug)]
#[unstable(feature = "io", reason = "awaiting the stability of Seek")]
#[stable(feature = "rust1", since = "1.0.0")]
pub enum SeekFrom {
/// Set the offset to the provided number of bytes.
#[stable(feature = "rust1", since = "1.0.0")]
Start(u64),

/// Set the offset to the size of this object plus the specified number of
/// bytes.
///
/// It is possible to seek beyond the end of an object, but is an error to
/// seek before byte 0.
#[stable(feature = "rust1", since = "1.0.0")]
End(i64),

/// Set the offset to the current position plus the specified number of
/// bytes.
///
/// It is possible to seek beyond the end of an object, but is an error to
/// seek before byte 0.
#[stable(feature = "rust1", since = "1.0.0")]
Current(i64),
}

Expand Down

0 comments on commit b9ab5fe

Please sign in to comment.