typesafe-endian-0.1.0.0: src/Data/Endian/Unsafe.hs
{-# LANGUAGE UnicodeSyntax #-}
module Data.Endian.Unsafe (
BigEndian(),
LittleEndian(),
unsafeAssertBigEndian,
unsafeAssertLittleEndian,
unsafeUnwrapBigEndian,
unsafeUnwrapLittleEndian,
swapEndian
) where
import Data.Endian.Internal
import Data.Endian.Wrap
-- | put in BigEndian newtype without any swapping
unsafeAssertBigEndian ∷ EndianSensitive α ⇒ α → BigEndian α
unsafeAssertBigEndian = BE
{-# INLINE unsafeAssertBigEndian #-}
-- | put in LittleEndian newtype without any swapping
unsafeAssertLittleEndian ∷ EndianSensitive α ⇒ α → LittleEndian α
unsafeAssertLittleEndian = LE
{-# INLINE unsafeAssertLittleEndian #-}
-- | pull out of BigEndian newtype without any swapping
unsafeUnwrapBigEndian ∷ EndianSensitive α ⇒ BigEndian α → α
unsafeUnwrapBigEndian (BE a) = a
{-# INLINE unsafeUnwrapBigEndian #-}
-- | pull out of LittleEndian newtype without any swapping
unsafeUnwrapLittleEndian ∷ EndianSensitive α ⇒ LittleEndian α → α
unsafeUnwrapLittleEndian (LE a) = a
{-# INLINE unsafeUnwrapBigEndian #-}