module Network.IPFS.Peer.Types (Peer (..)) where import RIO import Control.Lens import Data.Aeson import Data.Swagger import Servant.API import qualified Network.IPFS.Internal.UTF8 as UTF8 newtype Peer = Peer { Peer -> Text peer :: Text } deriving ( Peer -> Peer -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Peer -> Peer -> Bool $c/= :: Peer -> Peer -> Bool == :: Peer -> Peer -> Bool $c== :: Peer -> Peer -> Bool Eq , Int -> Peer -> ShowS [Peer] -> ShowS Peer -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Peer] -> ShowS $cshowList :: [Peer] -> ShowS show :: Peer -> String $cshow :: Peer -> String showsPrec :: Int -> Peer -> ShowS $cshowsPrec :: Int -> Peer -> ShowS Show ) deriving newtype ( Peer -> Text Peer -> Utf8Builder forall a. (a -> Utf8Builder) -> (a -> Text) -> Display a textDisplay :: Peer -> Text $ctextDisplay :: Peer -> Text display :: Peer -> Utf8Builder $cdisplay :: Peer -> Utf8Builder Display , String -> Peer forall a. (String -> a) -> IsString a fromString :: String -> Peer $cfromString :: String -> Peer IsString , Value -> Parser [Peer] Value -> Parser Peer forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a parseJSONList :: Value -> Parser [Peer] $cparseJSONList :: Value -> Parser [Peer] parseJSON :: Value -> Parser Peer $cparseJSON :: Value -> Parser Peer FromJSON ) instance ToJSON Peer where toJSON :: Peer -> Value toJSON = Text -> Value String forall b c a. (b -> c) -> (a -> b) -> a -> c . Peer -> Text peer instance ToSchema Peer where declareNamedSchema :: Proxy Peer -> Declare (Definitions Schema) NamedSchema declareNamedSchema Proxy Peer _ = forall (m :: * -> *) a. Monad m => a -> m a return forall a b. (a -> b) -> a -> b $ Maybe Text -> Schema -> NamedSchema NamedSchema (forall a. a -> Maybe a Just Text "IPFSPeer") forall a b. (a -> b) -> a -> b $ forall a. Monoid a => a mempty forall a b. a -> (a -> b) -> b & forall s a. HasType s a => Lens' s a type_ forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t ?~ forall (t :: SwaggerKind (*)). SwaggerType t SwaggerString forall a b. a -> (a -> b) -> b & forall s a. HasExample s a => Lens' s a example forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t ?~ Value "/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd" forall a b. a -> (a -> b) -> b & forall s a. HasDescription s a => Lens' s a description forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t ?~ Text "An IPFS peer address" instance MimeRender PlainText Peer where mimeRender :: Proxy PlainText -> Peer -> ByteString mimeRender Proxy PlainText _ = Text -> ByteString UTF8.textToLazyBS forall b c a. (b -> c) -> (a -> b) -> a -> c . Peer -> Text peer instance MimeRender OctetStream Peer where mimeRender :: Proxy OctetStream -> Peer -> ByteString mimeRender Proxy OctetStream _ = Text -> ByteString UTF8.textToLazyBS forall b c a. (b -> c) -> (a -> b) -> a -> c . Peer -> Text peer