{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}

module Data.Morpheus.Client.JSONSchema.TypeRef
  ( TypeRef (..),
  )
where

import Data.Aeson (FromJSON)
import Data.Morpheus.Types.Internal.AST
  ( TypeName,
  )
import Relude

newtype TypeRef = TypeRef {TypeRef -> TypeName
name :: TypeName}
  deriving ((forall x. TypeRef -> Rep TypeRef x)
-> (forall x. Rep TypeRef x -> TypeRef) -> Generic TypeRef
forall x. Rep TypeRef x -> TypeRef
forall x. TypeRef -> Rep TypeRef x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TypeRef x -> TypeRef
$cfrom :: forall x. TypeRef -> Rep TypeRef x
Generic, Int -> TypeRef -> ShowS
[TypeRef] -> ShowS
TypeRef -> String
(Int -> TypeRef -> ShowS)
-> (TypeRef -> String) -> ([TypeRef] -> ShowS) -> Show TypeRef
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TypeRef] -> ShowS
$cshowList :: [TypeRef] -> ShowS
show :: TypeRef -> String
$cshow :: TypeRef -> String
showsPrec :: Int -> TypeRef -> ShowS
$cshowsPrec :: Int -> TypeRef -> ShowS
Show, Value -> Parser [TypeRef]
Value -> Parser TypeRef
(Value -> Parser TypeRef)
-> (Value -> Parser [TypeRef]) -> FromJSON TypeRef
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [TypeRef]
$cparseJSONList :: Value -> Parser [TypeRef]
parseJSON :: Value -> Parser TypeRef
$cparseJSON :: Value -> Parser TypeRef
FromJSON)