fn gives_ownership() -> String { // gives_ownership will move its return value into the function that calls it.
    // spatial_reference_name comes into scope
    let spatial_reference_name = String::from("WGS84");

    // spatial_reference_name is returned and moves out to the calling function
    spatial_reference_name
}
// Here, wkid goes out of scope. Nothing special happens.
Here, wkid goes out of scope. Nothing special happens.
Here wkid goes out of scope . Nothing special happens .
fn gives_ownership() -> String { // gives_ownership will move its return value into the function that calls it.
    // spatial_reference_name comes into scope
    let spatial_reference_name = String::from("WGS84");
    // spatial_reference_name is returned and moves out to the calling function
    spatial_reference_name
}
fn gives_ownership ( ) -> String { // gives_ownership will move its return value into the function that calls it. // spatial_reference_name comes into scope let spatial_reference_name = String :: from ( " " ) ; // spatial_reference_name is returned and moves out to the calling function spatial_reference_name }
Here, wkid goes out of scope.
Here wkid goes out of scope .