How Unsafe/Safe is this code?
I needed a way to store lists of data of different types in a list, so I have created a list like type that can store any type that conforms to
CollectionElement
. It works well and doesn't have any memory errors, but I wanted to get a second opinion on if it seems safe enough to use.
One issue it has is that I can't check the type when you append or get from it since it does not store type info. Currently I just store the types size and compare to that.
The code was a bit too long to fit in one message, so here is a link to it.
https://gist.github.com/RyanLeber/d9ca608a3334482283c81771ff1064853 Replies
Don't you need some sort of index to size mapping for this to work?
Whenever you append or get from it, I just bitcasts the pointer to the provided type. So I don't need to keep track of element locations in the pointer because the pointer is accessed like it is UnsafePointer[T]. Is this what you are referencing?
I'm pretty sure this breaks the pointer provenance rules, so this is probably a lot of UB.