Feeling slightly exhausted by the world? Let’s reverse a string in Rust in a needlessly complicated way. I was expecting to make a tiny simple video and ended up going further into unsafe than I ev…

  • BB_C@programming.dev
    link
    fedilink
    arrow-up
    17
    arrow-down
    1
    ·
    edit-2
    1 day ago

    I gave this a quick look at 2X speed with a lot fast seeking, and my brain still hurts.

    First of all, and concerning Rust, please familiarize yourself with the mem module and its functions at least. You didn’t even get near a situation where using unsafe{} was actually required.

    Second of all, and concerning the task at hand itself, for someone who knew to make the distinction between bytes and chars, you should have known about grapheme clusters too. There are a lot of multi-char (not just multi-byte) graphemes out there. You can make a “Fun With Flags” 😉 segment to show that off (no attribution required). Just don’t do anything silly, and make sure to just utilize the unicode-segmentation crate.

    • hades@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      20 hours ago

      Thank you for watching the video and answering the question that I had from just reading the title.

      Reversing a UTF-8 string is super hard in any language, rust doesn’t really make it that much harder.

      • calcopiritus@lemmy.world
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        11 hours ago

        In fact it is easy in rust. Might not be the most performance (or maybe it is), but you should be able to do just “my_str”.chars().rev().collect::<String>()