Struct show_notes::e019::ANoCopyOrClonePoint
source · pub struct ANoCopyOrClonePoint {
x: f64,
y: f64,
z: f64,
}
Expand description
A non-copyable point type
Examples
ⓘ
let a_point = ANoCopyOrClonePoint::origin();
let moved_point = a_point; // <- moves the value
println!("{:?}", a_point); // <- so this is a problem!
println!("{:?}", moved_point)
The output is just what we would expect from the discussion on the show:
error[E0382]: use of moved value: `a_point`
--> <anon>:6:18
|
5 | let moved_point = a_point; // <- moves the value
| ----------- value moved here
6 | println!("{:?}", a_point); // <- so this is a problem!
| ^^^^^^^ value used here after move
|
= note: move occurs because `a_point` has type `show_notes::e019::ANoCopyOrClonePoint`, which does not implement the `Copy` trait
If we comment the offending line out, however, it compiles just fine.
let a_point = ANoCopyOrClonePoint::origin();
let moved_point = a_point;
// println!("{:?}", a_point);
println!("{:?}", moved_point); // <- not a problem!
Fields§
§x: f64
§y: f64
§z: f64
Implementations§
source§impl ANoCopyOrClonePoint
impl ANoCopyOrClonePoint
sourcepub fn origin() -> ANoCopyOrClonePoint
pub fn origin() -> ANoCopyOrClonePoint
Generate a point at 0, 0, 0
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for ANoCopyOrClonePoint
impl Send for ANoCopyOrClonePoint
impl Sync for ANoCopyOrClonePoint
impl Unpin for ANoCopyOrClonePoint
impl UnwindSafe for ANoCopyOrClonePoint
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more