An interesting article that lays out a problem and goes through a few different solutions, some of which I haven’t thought about much before.

I’m working on a video game in Rust, and I’m running into this kind of modelling problem when it comes to keeping track of the game state. So far I’ve refactored something that resembles Approach 5 into something that looks more like Approach 3. As I get more confident about the final shape of the data, it (seemingly) becomes a better idea to represent it in a more structured way.

  • BB_C@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    3 days ago

    I only skimmed this. But my mind from the start immediately went to

    struct CommonData {
     // common fields
    }
    
    enum VariantData {
      Variant1 {
        // Variant1 specific fields
      },
      // same for other variants
    }
    
    struct Search {
      common: CommonData,
      variant: VariantData,
    }
    

    but I reached the end and didn’t see it.

    Isn’t this the way that comes to mind first for others too?