• GissaMittJobb@lemmy.ml
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    1 year ago

    That’s kind of wild, I double-checked and it’s true.

    Although I disagree with the second part, the Rust folks wouldn’t care about the in-memory representation as long as the compilation is on point.

    Looking closer at the final enum, I guess it’s because there are nine possible cases for it, making the compiler pack it into 4 bits, with one number representing each? I checked and None is represented as 8, while 7 Somes containing a None is 0 and the full 8 Somes is represented by 1.

    • tatterdemalion@programming.devOP
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      the Rust folks wouldn’t care about the in-memory representation as long as the compilation is on point.

      Well I can’t speak for everyone, but Rust is very intentional about supporting things like repr(C). At least some of us care a lot.