Should Small Rust Structs be Passed by-copy or by-borrow? August 26, 2019 Like many good stories, this one started with a simple question. Should small Rust structs be passed by-copy or by-borrow? For example: struct Vector3 { x: f32, y: f32, z: f32 } fn dot_product_by_copy(a: Vector3, b: Vector3) -> float { a.x*b.x + a.y*b.y + a.z*b.z } fn dot_product_by_borrow(a: &Vector3, b: &Vector3) -> float