Как по умолчанию инициализировать структуру, содержащую массив в Rust?

Каков рекомендуемый способ объявить структуру, которая содержит массив, а затем создать инициализированный нулем экземпляр?

Вот структура:

#[derive(Default)]
struct Histogram {
    sum: u32,
    bins: [u32; 256],
}

и ошибка компилятора:

error[E0277]: the trait bound `[u32; 256]: std::default::Default` is not satisfied
 --> src/lib.rs:4:5
  |
4 |     bins: [u32; 256],
  |     ^^^^^^^^^^^^^^^^ the trait `std::default::Default` is not implemented for `[u32; 256]`
  |
  = help: the following implementations were found:
            <[T; 14] as std::default::Default>
            <&'a [T] as std::default::Default>
            <[T; 22] as std::default::Default>
            <[T; 7] as std::default::Default>
          and 31 others
  = note: required by `std::default::Default::default`

Если я пытаюсь добавить отсутствующий инициализатор для массива:

impl Default for [u32; 256] {
    fn default() -> [u32; 255] {
        [0; 256]
    }
}

Я получил:

error[E0117]: only traits defined in the current crate can be implemented for arbitrary types
 --> src/lib.rs:7:5
  |
7 |     impl Default for [u32; 256] {
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl doesn't use types inside crate
  |
  = note: the impl does not reference any types defined in this crate
  = note: define and implement a trait or new type instead

Я делаю что-то неправильно?

Ответы на вопрос(4)

Ваш ответ на вопрос