module Rattletrap.Type.RemoteId.QQ where import qualified Rattletrap.BitGet as BitGet import qualified Rattletrap.BitPut as BitPut import qualified Rattletrap.Schema as Schema import qualified Rattletrap.Type.U64 as U64 import qualified Rattletrap.Utility.Json as Json newtype QQ = QQ U64.U64 deriving (QQ -> QQ -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: QQ -> QQ -> Bool $c/= :: QQ -> QQ -> Bool == :: QQ -> QQ -> Bool $c== :: QQ -> QQ -> Bool Eq, Int -> QQ -> ShowS [QQ] -> ShowS QQ -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [QQ] -> ShowS $cshowList :: [QQ] -> ShowS show :: QQ -> String $cshow :: QQ -> String showsPrec :: Int -> QQ -> ShowS $cshowsPrec :: Int -> QQ -> ShowS Show) instance Json.FromJSON QQ where parseJSON :: Value -> Parser QQ parseJSON = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap U64 -> QQ fromU64 forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. FromJSON a => Value -> Parser a Json.parseJSON instance Json.ToJSON QQ where toJSON :: QQ -> Value toJSON = forall a. ToJSON a => a -> Value Json.toJSON forall b c a. (b -> c) -> (a -> b) -> a -> c . QQ -> U64 toU64 fromU64 :: U64.U64 -> QQ fromU64 :: U64 -> QQ fromU64 = U64 -> QQ QQ toU64 :: QQ -> U64.U64 toU64 :: QQ -> U64 toU64 (QQ U64 x) = U64 x schema :: Schema.Schema schema :: Schema schema = Schema U64.schema bitPut :: QQ -> BitPut.BitPut bitPut :: QQ -> BitPut bitPut = U64 -> BitPut U64.bitPut forall b c a. (b -> c) -> (a -> b) -> a -> c . QQ -> U64 toU64 bitGet :: BitGet.BitGet QQ bitGet :: BitGet QQ bitGet = forall a. String -> BitGet a -> BitGet a BitGet.label String "QQ" forall a b. (a -> b) -> a -> b $ forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap U64 -> QQ fromU64 BitGet U64 U64.bitGet