module Mpv.Data.SubtitleId where

import Polysemy.Time.Json (json)

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

json ''SubtitleId