{-# OPTIONS_HADDOCK hide #-} module Parser.Lathe.Binary.Internal ( w16LE , w16BE , w32LE , w32BE , w64LE , w64BE ) where import Data.Bits import qualified Data.ByteString as B (ByteString) import qualified Data.ByteString.Unsafe as B import Data.Word {-# INLINE w16LE #-} w16LE :: B.ByteString -> Word16 w16LE :: ByteString -> Word16 w16LE ByteString s = (Word8 -> Word16 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 1) Word16 -> Int -> Word16 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x08) Word16 -> Word16 -> Word16 forall a. Bits a => a -> a -> a .|. Word8 -> Word16 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 0) {-# INLINE w16BE #-} w16BE :: B.ByteString -> Word16 w16BE :: ByteString -> Word16 w16BE ByteString s = (Word8 -> Word16 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 0) Word16 -> Int -> Word16 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x08) Word16 -> Word16 -> Word16 forall a. Bits a => a -> a -> a .|. Word8 -> Word16 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 1) {-# INLINE w32LE #-} w32LE :: B.ByteString -> Word32 w32LE :: ByteString -> Word32 w32LE ByteString s = (Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 3) Word32 -> Int -> Word32 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x18) Word32 -> Word32 -> Word32 forall a. Bits a => a -> a -> a .|. (Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 2) Word32 -> Int -> Word32 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x10) Word32 -> Word32 -> Word32 forall a. Bits a => a -> a -> a .|. (Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 1) Word32 -> Int -> Word32 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x08) Word32 -> Word32 -> Word32 forall a. Bits a => a -> a -> a .|. Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 0) {-# INLINE w32BE #-} w32BE :: B.ByteString -> Word32 w32BE :: ByteString -> Word32 w32BE ByteString s = (Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 0) Word32 -> Int -> Word32 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x18) Word32 -> Word32 -> Word32 forall a. Bits a => a -> a -> a .|. (Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 1) Word32 -> Int -> Word32 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x10) Word32 -> Word32 -> Word32 forall a. Bits a => a -> a -> a .|. (Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 2) Word32 -> Int -> Word32 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x08) Word32 -> Word32 -> Word32 forall a. Bits a => a -> a -> a .|. Word8 -> Word32 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 3) {-# INLINE w64LE #-} w64LE :: B.ByteString -> Word64 w64LE :: ByteString -> Word64 w64LE ByteString s = (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 7) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x38) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 6) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x30) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 5) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x28) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 4) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x20) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 3) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x18) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 2) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x10) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 1) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x08) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 0) {-# INLINE w64BE #-} w64BE :: B.ByteString -> Word64 w64BE :: ByteString -> Word64 w64BE ByteString s = (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 0) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x38) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 1) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x30) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 2) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x28) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 3) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x20) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 4) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x18) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 5) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x10) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. (Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 6) Word64 -> Int -> Word64 forall a. Bits a => a -> Int -> a `unsafeShiftL` Int 0x08) Word64 -> Word64 -> Word64 forall a. Bits a => a -> a -> a .|. Word8 -> Word64 forall a b. (Integral a, Num b) => a -> b fromIntegral (ByteString s ByteString -> Int -> Word8 `B.unsafeIndex` Int 7)