Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Ah yes, this is what I was a bit confused about. Rust's ownership system though makes it so, what would be a very subtle and annoying bug I'm sure, can't happen. The error is really helpful though.

  fn main () {
      let hello = "Hello".to_owned();
      let world = "world";
      let hello_world = hello + world;
      print!("{}, {}", hello_world, hello)
  }


  4 |     let hello_world = hello + world;
    |                       ----- value moved here
  5 |     print!("{}, {}", hello_world, hello)
    |                                   ^^^^^ value used here after move
    = note: move occurs because `hello` has type `std::string::String`, which does not implement the `Copy` trait
The docs are also pretty awesome as well [0]. They also point out most of this and list out all the types which implement the copy trait.

> Copies happen implicitly, for example as part of an assignment y = x. The behavior of Copy is not overloadable; it is always a simple bit-wise copy.

> Cloning is an explicit action, x.clone(). The implementation of Clone can provide any type-specific behavior necessary to duplicate values safely. For example, the implementation of Clone for String needs to copy the pointed-to string buffer in the heap. A simple bitwise copy of String values would merely copy the pointer, leading to a double free down the line. For this reason, String is Clone but not Copy.

> Clone is a supertrait of Copy, so everything which is Copy must also implement Clone. If a type is Copy then its Clone implementation need only return *self (see the example above).

I haven't really used Rust at all, but the more I look at it the more I want too. I probably will not be given the opportunity anytime soon though. Such is life in the world of frontend development.

[0] https://doc.rust-lang.org/std/marker/trait.Copy.html



webassembly is our hope. compile rust down to browser bytecode.

a man can dream.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: