Would you accept a PR that adds a variant of CircularBuffer that has a runtime fixed capacity instead of compile-time fixed capacity?
That variant would use a boxed slice (Box<MaybeUninit<T>>) as backing storage instead of an array und thus would only be available under the use_std feature flag. I think almost all method implementations could be shared between the variants using a macro.