mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-01 07:13:24 +03:00
Auto merge of #32785 - tbu-:pr_more_defaults, r=alexcrichton
Implement `Default` for more types in the standard library Also add `Hash` to `std::cmp::Ordering` and most possible traits to `fmt::Error`.
This commit is contained in:
@@ -859,3 +859,10 @@ pub fn get(&self) -> *mut T {
|
||||
&self.value as *const T as *mut T
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "unsafe_cell_default", since = "1.9.0")]
|
||||
impl<T: Default> Default for UnsafeCell<T> {
|
||||
fn default() -> UnsafeCell<T> {
|
||||
UnsafeCell::new(Default::default())
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -128,7 +128,7 @@ fn assert_receiver_is_total_eq(&self) {}
|
||||
/// let result = 2.cmp(&1);
|
||||
/// assert_eq!(Ordering::Greater, result);
|
||||
/// ```
|
||||
#[derive(Clone, Copy, PartialEq, Debug)]
|
||||
#[derive(Clone, Copy, PartialEq, Debug, Hash)]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub enum Ordering {
|
||||
/// An ordering where a compared value is less [than another].
|
||||
|
||||
@@ -60,7 +60,7 @@ pub mod rt {
|
||||
/// occurred. Any extra information must be arranged to be transmitted through
|
||||
/// some other means.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||
pub struct Error;
|
||||
|
||||
/// A collection of methods that are required to format a message into a stream.
|
||||
|
||||
@@ -220,6 +220,13 @@ pub fn notify_one(&self) { unsafe { self.inner.inner.notify_one() } }
|
||||
pub fn notify_all(&self) { unsafe { self.inner.inner.notify_all() } }
|
||||
}
|
||||
|
||||
#[stable(feature = "condvar_default", since = "1.9.0")]
|
||||
impl Default for Condvar {
|
||||
fn default() -> Condvar {
|
||||
Condvar::new()
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Drop for Condvar {
|
||||
fn drop(&mut self) {
|
||||
|
||||
@@ -310,6 +310,13 @@ fn drop(&mut self) {
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "mutex_default", since = "1.9.0")]
|
||||
impl<T: ?Sized + Default> Default for Mutex<T> {
|
||||
fn default() -> Mutex<T> {
|
||||
Mutex::new(Default::default())
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl<T: ?Sized + fmt::Debug> fmt::Debug for Mutex<T> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
|
||||
@@ -346,6 +346,13 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "rw_lock_default", since = "1.9.0")]
|
||||
impl<T: Default> Default for RwLock<T> {
|
||||
fn default() -> RwLock<T> {
|
||||
RwLock::new(Default::default())
|
||||
}
|
||||
}
|
||||
|
||||
struct Dummy(UnsafeCell<()>);
|
||||
unsafe impl Sync for Dummy {}
|
||||
static DUMMY: Dummy = Dummy(UnsafeCell::new(()));
|
||||
|
||||
Reference in New Issue
Block a user