Movatterモバイル変換
[0]ホーム
-- |-- Utils for dealing with integer numbers.modulePostgreSQL.Binary.IntegralwhereimportPostgreSQL.Binary.PreludeimportqualifiedData.ByteStringasB{-# INLINABLEpack#-}pack::(Bitsa,Numa)=>B.ByteString->apack :: forall a. (Bits a, Num a) => ByteString -> apack=forall a. (a -> Word8 -> a) -> a -> ByteString -> aB.foldl'(\anWord8h->forall a. Bits a => a -> Int -> ashiftLanInt8forall a. Bits a => a -> a -> a.|.forall a b. (Integral a, Num b) => a -> bfromIntegralWord8h)a0{-# INLINEunpackBySize#-}unpackBySize::(Bitsa,Integrala)=>Int->a->B.ByteStringunpackBySize :: forall a. (Bits a, Integral a) => Int -> a -> ByteStringunpackBySizeIntnax=[Word8] -> ByteStringB.packforall a b. (a -> b) -> a -> b$forall a b. (a -> b) -> [a] -> [b]mapInt -> Word8fforall a b. (a -> b) -> a -> b$forall a. [a] -> [a]reverse[Int0..Intnforall a. Num a => a -> a -> a-Int1]wheref :: Int -> Word8fInts=forall a b. (Integral a, Num b) => a -> bfromIntegralforall a b. (a -> b) -> a -> b$forall a. Bits a => a -> Int -> ashiftRax(Int8forall a. Num a => a -> a -> a*Ints)
[8]ページ先頭