1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use std::fmt;
use std::io::Cursor;
use std::str;
pub struct PartialDebug<V>(pub V);
impl<V: fmt::Debug> fmt::Display for PartialDebug<V> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
use std::io::Write;
let mut buf = [0u8; 32];
let mut cur = Cursor::new(&mut buf[..]);
write!(&mut cur, "{:?}", self.0).ok();
let end = cur.position() as usize;
if end >= buf.len() {
buf[buf.len()-3] = b'.';
buf[buf.len()-2] = b'.';
buf[buf.len()-1] = b'.';
}
fmt::Write::write_str(f, str::from_utf8(&buf[..end]).unwrap())
}
}