Even the paid version doesn't include aac support in Linux so you have to transcode the audio from videos recorded from your phone, with ffmpeg for example, prior to opening them with resolve. That's the biggest inconvenience it has for me in Linux. And plugins can't solve that either, because apparently can only add codecs for encoding, not for decoding.
Just a nitpick. Rust's char is really a 21 bit unicode scalar value (a code point without surrogates) using a 32-bit representation and indeed there are a lot of invalid char values in a 32-bit space. Utf-8 is a different encoding format for code points using variable width (1-4 bytes per).
I agree in that the meaning of prove in that context is "put it to the test" but for me it doesn't go as far as finding the rule incorrect, because it's a general rule, not an absolute rule. A lot more exceptions would be necessary to make the rule incorrect for the general case.
The key difference is that this is a multidisciplinary conversational interface, and a tool in itself for interrelating structured meaning and reshaping it coherently enough so that it can be of great value both in the specific domain of the dialog, and in the potential to take it on any tangent in any way that can be expressed.
Of course it has limitations and you can't be sleep at the wheel, but that's true of any tool or task.
You can do a handy struct wrapper over a private Nonzero that xors the given value with the prohibited value (max in this case) at the new constructor. And like so for the get method. Xoring is very cheap. That's my favorite way of storing indices/links for nodes, since you can wrap them in Option for free.
I found that the stripping of the libc made impossible for me to manage signals that didn't exit the program. E.g. Sigint worked fine as long as the callback didnt return to the caller but e.g. trying to use Sigwinch or sigcontinue segfaulted and I never found a way to make that work from scratch in this type of binaries without linking to libc... I wonder if that's even possible.
My favorite combination is Mint + Xfce + openbox as the window manager which leaves the CPU at 0% when not doing anything, and is very responsive and versatile. I had to setup separate dark themes for each one but now it looks good.
The only thing I don't like is thunar freezing often when doing long blocking IO operations...
That must be without stripping. Also there are ways to reduce binary size. See e.g. [min-sized-rust](https://github.com/johnthagen/min-sized-rust). I've gotten stripped binaries of small cli utils less than 400KiB without doing anything special, less than 150 KiB by customizing profile settings and compressing with upx, and less than 30 KiB by replacing the std with the libc as the link shows. Haven't tried with fltk though...
Having both approaches available would be better IMHO. Builder pattern is very nice but I frequently miss having named arguments too. Even if macros can partially fullfill that need, it's not the same and introduces more quirks and complexity...
It made me realize QED is the equivalent of a million lines spaghetti codebase that's been continually built upon, fudge after fudge since the 40s, while being sold as the best thing ever, the ultimate model of reality, etc. While it really started as a temporary solution like a bash script that should've been replaced by something more elegant... many decades ago. And now we are in this mess.