module Mpv.Data.VideoExpired where

import Polysemy.Time (NanoSeconds)
import Polysemy.Time.Json (json)

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

json ''VideoExpired