A classic example of them being used in Rust is to be generic over arrays, like what the blog post talks about. Arrays encode their length as part of the type; [T; N] is the type of an array of Ts that’s N elements long. In other words:
fn foo<T>(array: [T; ?]) {
How do you define ? to work on any length? When const generics is implemented, you’d write fn foo<T, const N>(array: [T; N]) {
and now you can call this function on arrays of varying lengths.There's a bit more to it than that, but that's the core of it. Does that help?