module Rattletrap.AttributeValue.Float where

import Rattletrap.Float32

import qualified Data.Binary.Bits.Get as BinaryBit
import qualified Data.Binary.Bits.Put as BinaryBit

newtype FloatAttributeValue = FloatAttributeValue
  { floatAttributeValueValue :: Float32
  } deriving (Eq, Ord, Show)

getFloatAttributeValue :: BinaryBit.BitGet FloatAttributeValue
getFloatAttributeValue = do
  value <- getFloat32Bits
  pure (FloatAttributeValue value)

putFloatAttributeValue :: FloatAttributeValue -> BinaryBit.BitPut ()
putFloatAttributeValue floatAttributeValue =
  putFloat32Bits (floatAttributeValueValue floatAttributeValue)