提交 cfeff3e1 编写于 作者: A Alex Crichton

rollup merge of #18344 : aochagavia/show-arc

......@@ -15,6 +15,7 @@
use core::atomic;
use core::clone::Clone;
use core::fmt::{mod, Show};
use core::kinds::{Sync, Send};
use core::mem::{min_align_of, size_of, drop};
use core::mem;
......@@ -147,6 +148,12 @@ fn deref(&self) -> &T {
}
}
impl<T: Send + Sync + Show> Show for Arc<T> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
(**self).fmt(f)
}
}
impl<T: Send + Sync + Clone> Arc<T> {
/// Acquires a mutable pointer to the inner contents by guaranteeing that
/// the reference count is one (no sharing is possible).
......@@ -280,6 +287,7 @@ mod tests {
use std::mem::drop;
use std::ops::Drop;
use std::option::{Option, Some, None};
use std::str::Str;
use std::sync::atomic;
use std::task;
use std::vec::Vec;
......@@ -426,4 +434,10 @@ fn drop_arc_weak() {
assert!(canary.load(atomic::Acquire) == 1);
drop(arc_weak);
}
#[test]
fn show_arc() {
let a = Arc::new(5u32);
assert!(format!("{}", a).as_slice() == "5")
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册