byteunits 0.2.0.0 → 0.2.0.1
raw patch · 4 files changed
+34/−34 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- ByteUnits: Bytes :: ByteUnit
- ByteUnits: ExaBytes :: ByteUnit
- ByteUnits: GigaBytes :: ByteUnit
- ByteUnits: KiloBytes :: ByteUnit
- ByteUnits: MegaBytes :: ByteUnit
- ByteUnits: PetaBytes :: ByteUnit
- ByteUnits: TeraBytes :: ByteUnit
- ByteUnits: data ByteUnit
- ByteUnits: getAppropriateUnits :: Float -> (ByteUnit, Float)
- ByteUnits: getUnits :: ByteUnit -> Float -> Float
- ByteUnits: instance GHC.Classes.Eq ByteUnits.ByteUnit
- ByteUnits: instance GHC.Show.Show ByteUnits.ByteUnit
+ Data.ByteUnits: Bytes :: ByteUnit
+ Data.ByteUnits: ExaBytes :: ByteUnit
+ Data.ByteUnits: GigaBytes :: ByteUnit
+ Data.ByteUnits: KiloBytes :: ByteUnit
+ Data.ByteUnits: MegaBytes :: ByteUnit
+ Data.ByteUnits: PetaBytes :: ByteUnit
+ Data.ByteUnits: TeraBytes :: ByteUnit
+ Data.ByteUnits: data ByteUnit
+ Data.ByteUnits: getAppropriateUnits :: Float -> (ByteUnit, Float)
+ Data.ByteUnits: getUnits :: ByteUnit -> Float -> Float
+ Data.ByteUnits: instance GHC.Classes.Eq Data.ByteUnits.ByteUnit
+ Data.ByteUnits: instance GHC.Show.Show Data.ByteUnits.ByteUnit
Files
- ByteUnits.hs +0/−30
- byteunits.cabal +3/−3
- src/Data/ByteUnits.hs +30/−0
- tests/Tests.hs +1/−1
− ByteUnits.hs
@@ -1,30 +0,0 @@-module ByteUnits where--import Safe--data ByteUnit = Bytes | KiloBytes | MegaBytes | GigaBytes | TeraBytes | PetaBytes | ExaBytes deriving (Show, Eq)--getUnits :: ByteUnit -> Float -> Float-getUnits bytesUnit bytes = case bytesUnit of- Bytes -> bytes- KiloBytes -> bytes / (1024 ** 1)- MegaBytes -> bytes / (1024 ** 2)- GigaBytes -> bytes / (1024 ** 3)- TeraBytes -> bytes / (1024 ** 4)- PetaBytes -> bytes / (1024 ** 4)- ExaBytes -> bytes / (1024 ** 5)---- | Rounds up to the highest unit provided it's > 1------ >>> getAppropriateUnits 1024--- (KiloBytes,1.0)------ >>> getAppropriateUnits (3.5 * 1024* 1024)--- (MegaBytes,3.5)-getAppropriateUnits :: Float -> (ByteUnit, Float)-getAppropriateUnits bytes = do- let units = fmap (\bu -> (bu, getUnits bu bytes)) [Bytes, KiloBytes, MegaBytes, GigaBytes, TeraBytes, PetaBytes, ExaBytes]- let appropriateUnits = filter (((<=) 1.0) . snd) units- case (lastMay appropriateUnits) of- Just (x) -> x- Nothing -> (Bytes, bytes)
byteunits.cabal view
@@ -1,5 +1,5 @@ name: byteunits-version: 0.2.0.0+version: 0.2.0.1 description: Human friendly conversion between byte units (KB, MB, GB...) synopsis: Human friendly conversion between byte units (KB, MB, GB...) license: BSD3@@ -15,9 +15,9 @@ location: https://github.com/chrissound/byteunits library- hs-source-dirs: .+ hs-source-dirs: src default-language: Haskell2010- exposed-modules: ByteUnits+ exposed-modules: Data.ByteUnits build-depends: base >=4.9 && <4.10 , safe == 0.3.15 default-language: Haskell2010
+ src/Data/ByteUnits.hs view
@@ -0,0 +1,30 @@+module Data.ByteUnits where++import Safe++data ByteUnit = Bytes | KiloBytes | MegaBytes | GigaBytes | TeraBytes | PetaBytes | ExaBytes deriving (Show, Eq)++getUnits :: ByteUnit -> Float -> Float+getUnits bytesUnit bytes = case bytesUnit of+ Bytes -> bytes+ KiloBytes -> bytes / (1024 ** 1)+ MegaBytes -> bytes / (1024 ** 2)+ GigaBytes -> bytes / (1024 ** 3)+ TeraBytes -> bytes / (1024 ** 4)+ PetaBytes -> bytes / (1024 ** 4)+ ExaBytes -> bytes / (1024 ** 5)++-- | Rounds up to the highest unit provided it's > 1+--+-- >>> getAppropriateUnits 1024+-- (KiloBytes,1.0)+--+-- >>> getAppropriateUnits (3.5 * 1024* 1024)+-- (MegaBytes,3.5)+getAppropriateUnits :: Float -> (ByteUnit, Float)+getAppropriateUnits bytes = do+ let units = fmap (\bu -> (bu, getUnits bu bytes)) [Bytes, KiloBytes, MegaBytes, GigaBytes, TeraBytes, PetaBytes, ExaBytes]+ let appropriateUnits = filter (((<=) 1.0) . snd) units+ case (lastMay appropriateUnits) of+ Just (x) -> x+ Nothing -> (Bytes, bytes)
tests/Tests.hs view
@@ -1,7 +1,7 @@ module Main where import Test.QuickCheck (quickCheck)-import ByteUnits+import Data.ByteUnits main = do quickCheck (getUnits KiloBytes 1024 == 1.0)