Wie initialisiere ich eine Struktur mit einem Array in Rust?

Was ist die empfohlene Methode, um eine Struktur zu deklarieren, die ein Array enthält, und anschließend eine mit Null initialisierte Instanz zu erstellen?

Hier ist die Struktur:

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

und der Compiler-Fehler:

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`

Wenn ich versuche, den fehlenden Initialisierer für das Array hinzuzufügen:

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

Ich bekomme

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

Mache ich etwas falsch

Antworten auf die Frage(8)

Ihre Antwort auf die Frage