The original RFC PR for unsized types proposed adding a new built-in trait, was thin on some details, and was eventually shelved as a tracking issue. Now that opting out of built-in traits is possible syntactically, I’ve trimmed it down to a lean and clean extension of the existing semantics:
pub struct CStr {
head: libc::c_char
}
impl !Sized for CStr { }
There are also traits for raw pointer conversion to address some issues with potentially fat pointers to ?Sized
parametric types. See the updated RFC text at the top of its branch.