module Mpv.Data.RequestId where

import Polysemy.Time.Json (json)

newtype RequestId =
  RequestId { RequestId -> Int
unRequestId :: Int }
  deriving stock (RequestId -> RequestId -> Bool
(RequestId -> RequestId -> Bool)
-> (RequestId -> RequestId -> Bool) -> Eq RequestId
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RequestId -> RequestId -> Bool
$c/= :: RequestId -> RequestId -> Bool
== :: RequestId -> RequestId -> Bool
$c== :: RequestId -> RequestId -> Bool
Eq, Int -> RequestId -> ShowS
[RequestId] -> ShowS
RequestId -> String
(Int -> RequestId -> ShowS)
-> (RequestId -> String)
-> ([RequestId] -> ShowS)
-> Show RequestId
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RequestId] -> ShowS
$cshowList :: [RequestId] -> ShowS
show :: RequestId -> String
$cshow :: RequestId -> String
showsPrec :: Int -> RequestId -> ShowS
$cshowsPrec :: Int -> RequestId -> ShowS
Show, (forall x. RequestId -> Rep RequestId x)
-> (forall x. Rep RequestId x -> RequestId) -> Generic RequestId
forall x. Rep RequestId x -> RequestId
forall x. RequestId -> Rep RequestId x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RequestId x -> RequestId
$cfrom :: forall x. RequestId -> Rep RequestId x
Generic)
  deriving newtype (Integer -> RequestId
RequestId -> RequestId
RequestId -> RequestId -> RequestId
(RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId)
-> (RequestId -> RequestId)
-> (RequestId -> RequestId)
-> (Integer -> RequestId)
-> Num RequestId
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
fromInteger :: Integer -> RequestId
$cfromInteger :: Integer -> RequestId
signum :: RequestId -> RequestId
$csignum :: RequestId -> RequestId
abs :: RequestId -> RequestId
$cabs :: RequestId -> RequestId
negate :: RequestId -> RequestId
$cnegate :: RequestId -> RequestId
* :: RequestId -> RequestId -> RequestId
$c* :: RequestId -> RequestId -> RequestId
- :: RequestId -> RequestId -> RequestId
$c- :: RequestId -> RequestId -> RequestId
+ :: RequestId -> RequestId -> RequestId
$c+ :: RequestId -> RequestId -> RequestId
Num, Num RequestId
Ord RequestId
Num RequestId
-> Ord RequestId -> (RequestId -> Rational) -> Real RequestId
RequestId -> Rational
forall a. Num a -> Ord a -> (a -> Rational) -> Real a
toRational :: RequestId -> Rational
$ctoRational :: RequestId -> Rational
Real, Int -> RequestId
RequestId -> Int
RequestId -> [RequestId]
RequestId -> RequestId
RequestId -> RequestId -> [RequestId]
RequestId -> RequestId -> RequestId -> [RequestId]
(RequestId -> RequestId)
-> (RequestId -> RequestId)
-> (Int -> RequestId)
-> (RequestId -> Int)
-> (RequestId -> [RequestId])
-> (RequestId -> RequestId -> [RequestId])
-> (RequestId -> RequestId -> [RequestId])
-> (RequestId -> RequestId -> RequestId -> [RequestId])
-> Enum RequestId
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: RequestId -> RequestId -> RequestId -> [RequestId]
$cenumFromThenTo :: RequestId -> RequestId -> RequestId -> [RequestId]
enumFromTo :: RequestId -> RequestId -> [RequestId]
$cenumFromTo :: RequestId -> RequestId -> [RequestId]
enumFromThen :: RequestId -> RequestId -> [RequestId]
$cenumFromThen :: RequestId -> RequestId -> [RequestId]
enumFrom :: RequestId -> [RequestId]
$cenumFrom :: RequestId -> [RequestId]
fromEnum :: RequestId -> Int
$cfromEnum :: RequestId -> Int
toEnum :: Int -> RequestId
$ctoEnum :: Int -> RequestId
pred :: RequestId -> RequestId
$cpred :: RequestId -> RequestId
succ :: RequestId -> RequestId
$csucc :: RequestId -> RequestId
Enum, Enum RequestId
Real RequestId
Real RequestId
-> Enum RequestId
-> (RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId -> (RequestId, RequestId))
-> (RequestId -> RequestId -> (RequestId, RequestId))
-> (RequestId -> Integer)
-> Integral RequestId
RequestId -> Integer
RequestId -> RequestId -> (RequestId, RequestId)
RequestId -> RequestId -> RequestId
forall a.
Real a
-> Enum a
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> (a, a))
-> (a -> a -> (a, a))
-> (a -> Integer)
-> Integral a
toInteger :: RequestId -> Integer
$ctoInteger :: RequestId -> Integer
divMod :: RequestId -> RequestId -> (RequestId, RequestId)
$cdivMod :: RequestId -> RequestId -> (RequestId, RequestId)
quotRem :: RequestId -> RequestId -> (RequestId, RequestId)
$cquotRem :: RequestId -> RequestId -> (RequestId, RequestId)
mod :: RequestId -> RequestId -> RequestId
$cmod :: RequestId -> RequestId -> RequestId
div :: RequestId -> RequestId -> RequestId
$cdiv :: RequestId -> RequestId -> RequestId
rem :: RequestId -> RequestId -> RequestId
$crem :: RequestId -> RequestId -> RequestId
quot :: RequestId -> RequestId -> RequestId
$cquot :: RequestId -> RequestId -> RequestId
Integral, Eq RequestId
Eq RequestId
-> (RequestId -> RequestId -> Ordering)
-> (RequestId -> RequestId -> Bool)
-> (RequestId -> RequestId -> Bool)
-> (RequestId -> RequestId -> Bool)
-> (RequestId -> RequestId -> Bool)
-> (RequestId -> RequestId -> RequestId)
-> (RequestId -> RequestId -> RequestId)
-> Ord RequestId
RequestId -> RequestId -> Bool
RequestId -> RequestId -> Ordering
RequestId -> RequestId -> RequestId
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: RequestId -> RequestId -> RequestId
$cmin :: RequestId -> RequestId -> RequestId
max :: RequestId -> RequestId -> RequestId
$cmax :: RequestId -> RequestId -> RequestId
>= :: RequestId -> RequestId -> Bool
$c>= :: RequestId -> RequestId -> Bool
> :: RequestId -> RequestId -> Bool
$c> :: RequestId -> RequestId -> Bool
<= :: RequestId -> RequestId -> Bool
$c<= :: RequestId -> RequestId -> Bool
< :: RequestId -> RequestId -> Bool
$c< :: RequestId -> RequestId -> Bool
compare :: RequestId -> RequestId -> Ordering
$ccompare :: RequestId -> RequestId -> Ordering
Ord)

json ''RequestId