rustHow to copy struct in Rust
Copying a struct in Rust is done using the clone()
method. This method creates a deep copy of the struct, meaning that all fields are copied as well.
Example
#[derive(Clone, Debug)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let p1 = Point { x: 1, y: 2 };
let p2 = p1.clone();
println!("p1: {:?}", p1);
println!("p2: {:?}", p2);
}
Output example
p1: Point { x: 1, y: 2 }
p2: Point { x: 1, y: 2 }
Code explanation
#[derive(Clone, Debug)]
: This line is necessary for theclone()
method to work. It derives theClone
andDebug
traits for thePoint
struct.let p1 = Point { x: 1, y: 2 };
: This line creates aPoint
struct with the fieldsx
andy
set to1
and2
respectively.let p2 = p1.clone();
: This line creates a deep copy of thePoint
structp1
and stores it inp2
.println!("p1: {:?}", p1);
: This line prints thePoint
structp1
to the console.println!("p2: {:?}", p2);
: This line prints thePoint
structp2
to the console.
Helpful links
Related
- Example of struct of structs in Rust
- Example of struct private field in Rust
- How to init zero struct in Rust
- How to serialize struct to xml in Rust
- Example of Rust struct with closure
- How to get struct value in Rust
- Example of bit field in Rust struct
- Rust struct without fields
- How to update struct in Rust
- How to convert struct to protobuf in Rust
More of Rust
- How to replace a capture group using Rust regex?
- How to calculate the sum of a Rust slice?
- How do I create an array of strings in Rust?
- How to replace all matches using Rust regex?
- How to use regex to match a double quote in Rust?
- Hashshet example in Rust
- How to use regex captures in Rust?
- How to convert JSON to a struct in Rust?
- How to pop an element from a Rust HashMap?
- How to convert a Rust HashMap to a JSON string?
See more codes...