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 Freeze for ANoCopyOrClonePoint
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