While it's a rather niche case, my first project in Rust made me decide to throw in my 2 cents.
TL;DR, I think it would be a great thing technically, but I don't know how many people would actually use it based on my own experience.
I learned Rust by taking a 13,000 line C library, doing an auto-generated translation to 100% unsafe code, and then cleaning it up to safe, idomatic Rust. I can't say I'd recommend it, but it sure taught me a lot!
Around 4,000 of those lines were implementations of data structures similar to ones is the Rust standard library. They included:
- dynamically reallocated arrays, akin to Rust's
Vec<T>
- linked lists
- maps, implemented more like Java's
LinkedMap<T>
than Rust's HashMap<T>
- heaps with arbitrary sort keys
Most of the library's data structures were built upon these "core" data structures, but it also exposed them as part of a "utility" API.
I got most of the way through getting rid of them, switching out their contents for a Rust data structures and emulating the API. But there were some things I could never emulate, like iterators with APIs that "cheated" based on the C data layout.
Aside from the converted version becoming slightly faster (somewhere between 2-3%), the test suite -- still written in C -- proved that it was easy to set up a Makefile to work with it. The Rust project simply had to generate a static library, and keep un-mangled C names that called the Rust functions.
It really was a drop-in replacement for the C original, in addition to providing a better Rust interface. However, I never finished it simply because I didn't see its value. I found another Rust library since which does what it was trying to do, and I wasn't sure anyone would use it in C besides its own test suite.
Most of the programmers I have worked with used C because of business reasons, e.g. using 3rd party proprietary toolchains for embedded devices. With the exception of Linux kernel developers (who already have their own data structures to use), everyone else who wrote performance sensitive code used C++ with STL.
Basically, IMHO, the intersection is very small of people who:
- Write mostly in C
- Will include a Rust toolchain in the CI and cargo in their Makefile
- Don't have a library that implements these data structures already
- Don't want to switch languages to something with an actual standard library
I'm not saying they don't exist. I'm saying I've never met or heard of them.