module Mpv.Data.AudioId where

import Polysemy.Time.Json (json)

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

json ''AudioId