Implementar fmt :: Display para Vec <T>

Eu quero implementar ofmt::Display para uma estrutura aninhada comumente usada no meu código.

// The root structure
pub struct WhisperFile<'a> {
    pub path: &'a str,
    pub handle: RefCell<File>,
    pub header: Header
}

pub struct Header{
    pub metadata: metadata::Metadata,
    pub archive_infos: Vec<archive_info::ArchiveInfo>
}

pub struct Metadata {
   // SNIP
}

pub struct ArchiveInfo {
   // SNIP
}

Como você pode ver, essa é uma árvore de dados não trivial. oarchive_infos propriedade emHeader pode ser bastante longo quando apresentado como uma linha.

Eu gostaria de emitir algo ao longo das linhas de

WhisperFile ({PATH})
  Metadata
    ...
  ArchiveInfo (0)
    ...
  ArchiveInfo (N)
    ...

Mas quando tento exibirVec<ArchiveInfo> Entendo que o monitor não está implementado. Eu posso implementarfmt::Display paraArchiveInfo mas isso não é suficiente desdefmt::Display não está implementado para o contêiner paiVec. Se eu implementar fmt :: Display forcollections::vec::Vec<ArchiveInfo> eu recebothe impl does not reference any types defined in this crate; only traits defined in the current crate can be implemented for arbitrary types.

Eu tentei iterar pelo vec e chamarwrite!() mas não consegui descobrir como deveria ser o fluxo de controle. eu acho quewrite!() precisa ser o valor de retorno da função, mas isso é interrompido com várias chamadas.

Como posso imprimir um Vec das minhas estruturas?

questionAnswers(1)

yourAnswerToTheQuestion