As traits introduzem um desafio interessante quando queremos armazená-las em outra struct. As traits obscurecem a struct original, portanto, também obscurecem o tamanho original. Os valores não dimensionados armazenados em structs são tratados de duas maneiras no Rust:
generics
- usando tipos parametrizados cria efetivamente tipos conhecidos de structs/funções e, portanto, tamanhos conhecidos.indirection
- colocando instâncias no heap fornece um contorno que permite que não nos preocupemos com o tamanho do tipo atual e apenas armazenar um ponteiro nele.Há outras maneiras também!