Skip to main content

5 posts tagged with "Deep Dive"

In-depth articles and analyses

View All Tags

Programming Extensible Data Types in Rust with CGP - Part 4: Implementing Extensible Variants

· 62 min read
Soares Chen
Creator of Context-Generic Programming

This is the fourth part of the blog series on Programming Extensible Data Types in Rust with CGP. You can read the first, second and third parts here.

In the third part of the series, Implementing Extensible Records, we have walked through the internal implementation of extensible records, and learned about concepts such as partial records and builder dispatchers.

In this final fourth part of the series, we will have the same walk through for the internal implementation details for extensible variants.

Programming Extensible Data Types in Rust with CGP - Part 3: Implementing Extensible Records

· 41 min read
Soares Chen
Creator of Context-Generic Programming

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.

Programming Extensible Data Types in Rust with CGP - Part 2: Modular Interpreters and Extensible Visitors

· 40 min read
Soares Chen
Creator of Context-Generic Programming

This is the second part of the blog series on Programming Extensible Data Types in Rust with CGP. You can read the first part here.

In this second part of the series, we will explore the use of extensible variants, by examining how it can be used in an extensible visitor pattern to build a modular interpreter for a toy math expression language.

Programming Extensible Data Types in Rust with CGP - Part 1: Modular App Construction and Extensible Builders

· 36 min read
Soares Chen
Creator of Context-Generic Programming

I’m excited to announce the release of CGP v0.4.2, a major milestone that significantly expands the expressive power of generic programming in Rust. With this release, CGP introduces full support for extensible records and variants, unlocking a range of new capabilities for developers working with highly modular and reusable code.

Extensible records and variants allow developers to write code that operates on any struct containing specific fields or any enum containing specific variants, without needing their concrete definition. This makes it possible to write truly generic and flexible logic that is decoupled from rigid type definitions.