capypad
0 Tage Serie
rust / intermediate
Snippet

Struct-Update-Syntax mit ..

Die Struct-Update-Syntax ermöglicht das Erstellen einer neuen Struct-Instanz während die meisten Felder von einer existierenden kopiert werden. Felder, die nicht explizit gesetzt werden, nehmen ihre Werte vom Quell-Struct, was Boilerplate reduziert.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#[derive(Default, Debug)]
struct Config {
timeout: u32,
max_retries: u32,
debug_mode: bool,
}
 
fn main() {
let default_cfg = Config::default();
let custom_cfg = Config {
timeout: 30,
..default_cfg
};
println!("{:?}", custom_cfg);
}
Erklärung
1
..default_cfg
Kopiert alle verbleibenden Felder von default_cfg, die nicht explizit gesetzt werden
2
timeout: 30,
Nur timeout wird geändert; andere Felder kommen von default_cfg