Add instance Storable Ordering
Sylvain Henry
sylvain at haskus.fr
Tue Oct 8 15:42:06 UTC 2019
A `Word8` would be enough instead of 4 or 8 bytes for `CInt`.
On 08/10/2019 17:33, Sven Panne wrote:
> Am Di., 8. Okt. 2019 um 16:57 Uhr schrieb Simon Jakobi via Libraries
> <libraries at haskell.org <mailto:libraries at haskell.org>>:
>
> That seems like a good idea! [...]
>
>
> Looks OK, but let's use toEnum in peekElemOff:
>
> instance Storable Ordering where
> sizeOf _ = sizeOf (undefined :: CInt)
> alignment _ = alignment (undefined :: CInt)
> peekElemOff p i = toEnum . fromIntegral <$> peekElemOff (castPtr p
> :: Ptr CInt) i
> pokeElemOff p i = pokeElemOff (castPtr p :: Ptr CInt) i .
> fromIntegral . fromEnum
>
> This is more symmetrical with pokeElemOff and less obfuscated. Note
> that the instance works for every Enum, so if there are more cases
> like Ordering, it might be worth to abstract that out.
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20191008/0caa5331/attachment.html>
More information about the Libraries
mailing list