rust's memory ownership model makes way more sense if u aren't already afflicted with computer programmer brain from languages that copy or reference automatically all the time.
u cut out a square and u move it into a box. now u dont have it anymore, its in the box.
but if u cut out another square using the first square as a template (clone()), now u have two squares, u can put one in the box and keep the other for yrself
but of course now its 2 different squares, they arent the same square anymore, changing one doesnt change the other.
and if u lend yr square to yr friend, well, they can do anything they want to the square, and u cant do anything with the square until they give it back to u. but they can't keep it forever because u will be very cross with them if they do.
into()/from() is also very easy: u take yr square and cut off the corners to turn it into() a circle. now u dont have a square anymore, but u do have a circle. Put another way, u created a circle::from() a square.
immutable borrows are probably the least intuitive. are you showing everyone a picture of the square? are you holding the square and letting everyone look at it but they can't touch it? are you letting the touch it but enforcing the no-changes rule with force? who knows.
and for some reason u cant change the square while more than one person is looking at it, because it's an accursed square, and every viewer's minds will shatter if u do. but other than that, it is a perfectly normal square!
(edited to fix an error with from)
