This is the third part of the blog series on Programming Extensible Data Types in Rust with CGP. You can read the first and second parts here.
At this point, you’ve likely seen how these patterns can make real-world applications more modular and maintainable. If these examples have convinced you of CGP’s practical value, that’s great. But if you still feel the examples are not grounded enough in production use cases, you are welcome to pause here and revisit CGP later.
The next 2 parts of the series are aimed at readers who want to go deeper — those interested in how CGP implements extensible data types under the hood and who might even want to contribute to CGP itself by helping to build the real-world examples you’re looking for.
We will first explore the implementation of extensible records in this part, followed by the implementation of extensible variants in the coming Part 4.