Rust:在格式化程序上为BufferMemory实现了显示,但由于某种原因赢得了';不接受

Rust:在格式化程序上为BufferMemory实现了显示,但由于某种原因赢得了';不接受,rust,Rust,目前,我正试图调试一个问题,但为了做到这一点,我试图打印出一些信息,所以我想我应该去实现我的缓冲内存显示。我一直得到std::option::option`没有实现`std::fmt::Display std::option::option`无法使用默认格式化程序格式化,尽管我很确定我已经在这里实现了它。我可能做错了什么 /// A simple buffer of memory for MemorySystem #[derive(Default)] pub struct BufferMemor

目前,我正试图调试一个问题,但为了做到这一点,我试图打印出一些信息,所以我想我应该去实现我的缓冲内存显示。我一直得到
std::option::option`没有实现`std::fmt::Display
std::option::option`无法使用默认格式化程序格式化
,尽管我很确定我已经在这里实现了它。我可能做错了什么

/// A simple buffer of memory for MemorySystem
#[derive(Default)]
pub struct BufferMemory{
    pub memory: Vec<u8>,
}

impl fmt::Display for BufferMemory {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let formatted_vec = String::from_utf8(self.memory).unwrap();
        write!(f, "{}", formatted_vec)
    }
}
/// The system for tracking all memory within the VM
#[derive(Default)]
pub struct MemorySystem{
    map: HashMap<u32, BufferMemory>
}

其中address是一个u32值

self.map.get(…)
是一个
选项
,因为可能没有这样的元素<代码>选项不实现
显示
,但它实现了
调试
。你想在这里使用
Debug
吗?也许吧?我的方向仍在生锈。调试特性应该添加到缓冲内存位还是映射本身?是的,你是对的,我正在寻找调试特性
        println!("result: {}", self.map.get(&(address & 0xFFFF0000)));