• Wappen@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    7 hours ago

    Equality in rust is value equality per default, that’s what these traits are for. If you want to check pointer equality you’d use the std::ptr::eq function to check if two pointers are equal, which is rather rare in practice. You can also implement the PartialEq trait yourself if you need custom equality checks.

    • brisk@aussie.zone
      link
      fedilink
      arrow-up
      1
      ·
      2 hours ago

      I worked on software at one point that had at it’s core a number of “modes” that it switched between. It was, at the time, in the process of migrating from enums and switch/case trees to an inheritance based system.

      In practice this meant there was a single instance of “Mode” for each mode which used pointer equality to switch/case on modes like an enum.

      To add a new mode (that did nothing) I think I had to change about 6 different places.