Open YtvwlD opened 11 months ago
Thanks, any reason why you'd need a non-static lifetime in the new_from_slice? e.g., would this be simpler:
pub fn new_from_slice(slice: &'static [T])
I'm not exactly sure. If you're writing a kernel, then you'll most likely load it with lgdt
, so it would have to be 'static
either way.
Not requiring it might be helpful for tests or VMs or something like that, but I don't know. I would be fine with the static lifetime just in new
and new_from_slice
.
I was happy to be able to use this crate for creating a GDT like this:
This worked in a debug build, but failed in a release build because the array containing the descriptors did not live long enough. I spent some time finding this issue, so I figured it might be nice to express these constraints via lifetimes.
I'm not sure about disallowing access to the limit and base pointer but they probably shouldn't be writable.