module Rattletrap.Type.Property.Bool where import qualified Rattletrap.ByteGet as ByteGet import qualified Rattletrap.BytePut as BytePut import qualified Rattletrap.Schema as Schema import qualified Rattletrap.Type.U8 as U8 import qualified Rattletrap.Utility.Json as Json import Prelude hiding (Bool) newtype Bool = Bool U8.U8 deriving (Bool -> Bool -> Bool (Bool -> Bool -> Bool) -> (Bool -> Bool -> Bool) -> Eq Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Bool -> Bool -> Bool == :: Bool -> Bool -> Bool $c/= :: Bool -> Bool -> Bool /= :: Bool -> Bool -> Bool Eq, Int -> Bool -> ShowS [Bool] -> ShowS Bool -> String (Int -> Bool -> ShowS) -> (Bool -> String) -> ([Bool] -> ShowS) -> Show Bool forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Bool -> ShowS showsPrec :: Int -> Bool -> ShowS $cshow :: Bool -> String show :: Bool -> String $cshowList :: [Bool] -> ShowS showList :: [Bool] -> ShowS Show) fromU8 :: U8.U8 -> Bool fromU8 :: U8 -> Bool fromU8 = U8 -> Bool Bool toU8 :: Bool -> U8.U8 toU8 :: Bool -> U8 toU8 (Bool U8 x) = U8 x instance Json.FromJSON Bool where parseJSON :: Value -> Parser Bool parseJSON = (U8 -> Bool) -> Parser U8 -> Parser Bool forall a b. (a -> b) -> Parser a -> Parser b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap U8 -> Bool fromU8 (Parser U8 -> Parser Bool) -> (Value -> Parser U8) -> Value -> Parser Bool forall b c a. (b -> c) -> (a -> b) -> a -> c . Value -> Parser U8 forall a. FromJSON a => Value -> Parser a Json.parseJSON instance Json.ToJSON Bool where toJSON :: Bool -> Value toJSON = U8 -> Value forall a. ToJSON a => a -> Value Json.toJSON (U8 -> Value) -> (Bool -> U8) -> Bool -> Value forall b c a. (b -> c) -> (a -> b) -> a -> c . Bool -> U8 toU8 schema :: Schema.Schema schema :: Schema schema = Schema U8.schema bytePut :: Bool -> BytePut.BytePut bytePut :: Bool -> BytePut bytePut = U8 -> BytePut U8.bytePut (U8 -> BytePut) -> (Bool -> U8) -> Bool -> BytePut forall b c a. (b -> c) -> (a -> b) -> a -> c . Bool -> U8 toU8 byteGet :: ByteGet.ByteGet Bool byteGet :: ByteGet Bool byteGet = String -> ByteGet Bool -> ByteGet Bool forall a. String -> ByteGet a -> ByteGet a ByteGet.label String "Bool" (ByteGet Bool -> ByteGet Bool) -> ByteGet Bool -> ByteGet Bool forall a b. (a -> b) -> a -> b $ (U8 -> Bool) -> Get ByteString Identity U8 -> ByteGet Bool forall a b. (a -> b) -> Get ByteString Identity a -> Get ByteString Identity b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap U8 -> Bool fromU8 Get ByteString Identity U8 U8.byteGet