为大型数组类型实现Debug trait

时间:2015-06-17 20:40:12

标签: rust traits

I gather Rust为大小为32或更小的数组提供了调试impl。

我还gather我可以通过简单地使用带有很长格式说明符的write!在更大的数组上实现Debug。但我想知道是否有更好的方法。

为长度数组实现Debug的推荐方法是什么,比如1024?

1 个答案:

答案 0 :(得分:12)

use std::fmt;

struct Array<T> {
    data: [T; 1024]
}

impl<T: fmt::Debug> fmt::Debug for Array<T> {
    fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
        self.data[..].fmt(formatter)
    }
}

fn main() {
    let array = Array { data: [0u8; 1024] };

    println!("{:?}", array);
}

无法实现[T; 1024]或某些具体类型的数组(即。[u8; 1024]。从其他包装箱中为其他包装箱中的类型实现特征,或者从另一个包装箱中为特定类型实现特征,都不允许设计,