# Field init shorthand

Minimum Rust version: 1.17

In older Rust, when initializing a struct, you must always give the full set of `key: value` pairs for its fields:

    #![allow(unused_variables)]
    fn main() {
    struct Point {
        x: i32,
        y: i32,
    }

    let a = 5;
    let b = 6;

    let p = Point {
        x: a,
        y: b,
    };
    }

However, often these variables would have the same names as the fields. So you'd end up with code that looks like this:

    let p = Point {
        x: x,
        y: y,
    };

Now, if the variable is of the same name, you don't have to write out both, just write out the key:

    #![allow(unused_variables)]
    fn main() {
    struct Point {
        x: i32,
        y: i32,
    }

    let x = 5;
    let y = 6;

    // new
    let p = Point {
        x,
        y,
    };
    }