{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module THREE.Color
(
Color (..)
, THREE.Color.new
) where
import Miso
import qualified THREE.Internal as THREE
newtype Color
= Color
{ Color -> JSVal
unColor :: JSVal
} deriving (Color -> IO Object
(Color -> IO Object) -> ToObject Color
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: Color -> IO Object
toObject :: Color -> IO Object
ToObject, Color -> IO JSVal
(Color -> IO JSVal) -> ToJSVal Color
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: Color -> IO JSVal
toJSVal :: Color -> IO JSVal
ToJSVal, Color -> IO [JSVal]
(Color -> IO [JSVal]) -> ToArgs Color
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: Color -> IO [JSVal]
toArgs :: Color -> IO [JSVal]
ToArgs)
instance FromJSVal Color where
fromJSVal :: JSVal -> IO (Maybe Color)
fromJSVal = Maybe Color -> IO (Maybe Color)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe Color -> IO (Maybe Color))
-> (JSVal -> Maybe Color) -> JSVal -> IO (Maybe Color)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Color -> Maybe Color
forall a. a -> Maybe a
Just (Color -> Maybe Color) -> (JSVal -> Color) -> JSVal -> Maybe Color
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> Color
Color
new :: THREE.Three Color
new :: IO Color
new = (JSVal -> Color) -> MisoString -> () -> IO Color
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> Color
Color MisoString
"Color" ()