This commit marks as `#[stable]` the `Entry` types for the maps provided
by `std`. The main reason these had been left unstable previously was
uncertainty about an eventual trait design, but several plausible
designs have been proposed that all work fine with the current type definitions.
}
/// A view into a single entry in a map, which may either be vacant or occupied.
}
/// A view into a single entry in a map, which may either be vacant or occupied.
-#[unstable(feature = "collections",
- reason = "precise API still under development")]
+#[stable(feature = "rust1", since = "1.0.0")]
pub enum Entry<'a, K:'a, V:'a> {
/// A vacant Entry
pub enum Entry<'a, K:'a, V:'a> {
/// A vacant Entry
+ #[stable(feature = "rust1", since = "1.0.0")]
Vacant(VacantEntry<'a, K, V>),
Vacant(VacantEntry<'a, K, V>),
+ #[stable(feature = "rust1", since = "1.0.0")]
Occupied(OccupiedEntry<'a, K, V>),
}
/// A vacant Entry.
Occupied(OccupiedEntry<'a, K, V>),
}
/// A vacant Entry.
-#[unstable(feature = "collections",
- reason = "precise API still under development")]
+#[stable(feature = "rust1", since = "1.0.0")]
pub struct VacantEntry<'a, K:'a, V:'a> {
key: K,
stack: stack::SearchStack<'a, K, V, node::handle::Edge, node::handle::Leaf>,
}
/// An occupied Entry.
pub struct VacantEntry<'a, K:'a, V:'a> {
key: K,
stack: stack::SearchStack<'a, K, V, node::handle::Edge, node::handle::Leaf>,
}
/// An occupied Entry.
-#[unstable(feature = "collections",
- reason = "precise API still under development")]
+#[stable(feature = "rust1", since = "1.0.0")]
pub struct OccupiedEntry<'a, K:'a, V:'a> {
stack: stack::SearchStack<'a, K, V, node::handle::KV, node::handle::LeafOrInternal>,
}
pub struct OccupiedEntry<'a, K:'a, V:'a> {
stack: stack::SearchStack<'a, K, V, node::handle::KV, node::handle::LeafOrInternal>,
}
}
impl<'a, K: Ord, V> Entry<'a, K, V> {
}
impl<'a, K: Ord, V> Entry<'a, K, V> {
- #[unstable(feature = "collections",
- reason = "matches collection reform v2 specification, waiting for dust to settle")]
/// Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant
/// Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant
+ #[unstable(feature = "std_misc",
+ reason = "will soon be replaced by or_insert")]
pub fn get(self) -> Result<&'a mut V, VacantEntry<'a, K, V>> {
match self {
Occupied(entry) => Ok(entry.into_mut()),
pub fn get(self) -> Result<&'a mut V, VacantEntry<'a, K, V>> {
match self {
Occupied(entry) => Ok(entry.into_mut()),
}
/// A view into a single entry in a map, which may either be vacant or occupied.
}
/// A view into a single entry in a map, which may either be vacant or occupied.
-#[unstable(feature = "collections",
- reason = "precise API still under development")]
+
+#[stable(feature = "rust1", since = "1.0.0")]
pub enum Entry<'a, V:'a> {
/// A vacant Entry
pub enum Entry<'a, V:'a> {
/// A vacant Entry
+ #[stable(feature = "rust1", since = "1.0.0")]
Vacant(VacantEntry<'a, V>),
Vacant(VacantEntry<'a, V>),
+ #[stable(feature = "rust1", since = "1.0.0")]
Occupied(OccupiedEntry<'a, V>),
}
/// A vacant Entry.
Occupied(OccupiedEntry<'a, V>),
}
/// A vacant Entry.
-#[unstable(feature = "collections",
- reason = "precise API still under development")]
+
+#[stable(feature = "rust1", since = "1.0.0")]
pub struct VacantEntry<'a, V:'a> {
map: &'a mut VecMap<V>,
index: usize,
}
/// An occupied Entry.
pub struct VacantEntry<'a, V:'a> {
map: &'a mut VecMap<V>,
index: usize,
}
/// An occupied Entry.
-#[unstable(feature = "collections",
- reason = "precise API still under development")]
+#[stable(feature = "rust1", since = "1.0.0")]
pub struct OccupiedEntry<'a, V:'a> {
map: &'a mut VecMap<V>,
index: usize,
pub struct OccupiedEntry<'a, V:'a> {
map: &'a mut VecMap<V>,
index: usize,
impl<'a, V> Entry<'a, V> {
#[unstable(feature = "collections",
impl<'a, V> Entry<'a, V> {
#[unstable(feature = "collections",
- reason = "matches collection reform v2 specification, waiting for dust to settle")]
+ reason = "will soon be replaced by or_insert")]
/// Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant
pub fn get(self) -> Result<&'a mut V, VacantEntry<'a, V>> {
match self {
/// Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant
pub fn get(self) -> Result<&'a mut V, VacantEntry<'a, V>> {
match self {
}
/// A view into a single occupied location in a HashMap.
}
/// A view into a single occupied location in a HashMap.
-#[unstable(feature = "std_misc",
- reason = "precise API still being fleshed out")]
+#[stable(feature = "rust1", since = "1.0.0")]
pub struct OccupiedEntry<'a, K: 'a, V: 'a> {
elem: FullBucket<K, V, &'a mut RawTable<K, V>>,
}
/// A view into a single empty location in a HashMap.
pub struct OccupiedEntry<'a, K: 'a, V: 'a> {
elem: FullBucket<K, V, &'a mut RawTable<K, V>>,
}
/// A view into a single empty location in a HashMap.
-#[unstable(feature = "std_misc",
- reason = "precise API still being fleshed out")]
+#[stable(feature = "rust1", since = "1.0.0")]
pub struct VacantEntry<'a, K: 'a, V: 'a> {
hash: SafeHash,
key: K,
pub struct VacantEntry<'a, K: 'a, V: 'a> {
hash: SafeHash,
key: K,
}
/// A view into a single location in a map, which may be vacant or occupied.
}
/// A view into a single location in a map, which may be vacant or occupied.
-#[unstable(feature = "std_misc",
- reason = "precise API still being fleshed out")]
+#[stable(feature = "rust1", since = "1.0.0")]
pub enum Entry<'a, K: 'a, V: 'a> {
/// An occupied Entry.
pub enum Entry<'a, K: 'a, V: 'a> {
/// An occupied Entry.
+ #[stable(feature = "rust1", since = "1.0.0")]
Occupied(OccupiedEntry<'a, K, V>),
Occupied(OccupiedEntry<'a, K, V>),
+ #[stable(feature = "rust1", since = "1.0.0")]
Vacant(VacantEntry<'a, K, V>),
}
Vacant(VacantEntry<'a, K, V>),
}
#[inline] fn len(&self) -> usize { self.inner.len() }
}
#[inline] fn len(&self) -> usize { self.inner.len() }
}
-#[unstable(feature = "std_misc",
- reason = "matches collection reform v2 specification, waiting for dust to settle")]
impl<'a, K, V> Entry<'a, K, V> {
/// Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant.
impl<'a, K, V> Entry<'a, K, V> {
/// Returns a mutable reference to the entry if occupied, or the VacantEntry if vacant.
+ #[unstable(feature = "std_misc",
+ reason = "will soon be replaced by or_insert")]
pub fn get(self) -> Result<&'a mut V, VacantEntry<'a, K, V>> {
match self {
Occupied(entry) => Ok(entry.into_mut()),
pub fn get(self) -> Result<&'a mut V, VacantEntry<'a, K, V>> {
match self {
Occupied(entry) => Ok(entry.into_mut()),