dash-recipes icon indicating copy to clipboard operation
dash-recipes copied to clipboard

Use repr(transparent) for wrapper structs

Open LoganDark opened this issue 5 years ago • 1 comments

repr(transparent) provides stronger guarantees that the struct will have the exact same representation as its only field. And Context didn't even have an explicit representation, not even repr(C)!!

Because of all the transmutation that this library does between wrapper types and the types that they wrap, those guarantees are quite important, don't you think? :)

LoganDark avatar Oct 20 '20 16:10 LoganDark

Upon closer inspection it does look like Context does not need repr(transparent) since the library doesn't implement AsRef and such for it, but this is still a way to strengthen the safety of the wrapper types.

LoganDark avatar Oct 20 '20 16:10 LoganDark