module Network.IPFS.DAG.Link (create) where import Network.IPFS.Prelude import Network.IPFS.Local.Class import Network.IPFS.Get.Error as IPFS.Get import Network.IPFS.Types as IPFS import Network.IPFS.DAG.Link.Types as DAG import qualified Network.IPFS.Stat as Stat create :: MonadLocalIPFS m => IPFS.CID -> IPFS.Name -> m (Either IPFS.Get.Error Link) create :: CID -> Name -> m (Either Error Link) create CID cid Name name = CID -> m (Either Error Integer) forall (m :: * -> *). MonadLocalIPFS m => CID -> m (Either Error Integer) Stat.getSize CID cid m (Either Error Integer) -> (Either Error Integer -> m (Either Error Link)) -> m (Either Error Link) forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= \case Left Error err -> Either Error Link -> m (Either Error Link) forall (m :: * -> *) a. Monad m => a -> m a return (Either Error Link -> m (Either Error Link)) -> Either Error Link -> m (Either Error Link) forall a b. (a -> b) -> a -> b <| Error -> Either Error Link forall a b. a -> Either a b Left Error err Right Integer size -> Either Error Link -> m (Either Error Link) forall (m :: * -> *) a. Monad m => a -> m a return (Either Error Link -> m (Either Error Link)) -> (Link -> Either Error Link) -> Link -> m (Either Error Link) forall b c a. (b -> c) -> (a -> b) -> a -> c . Link -> Either Error Link forall a b. b -> Either a b Right (Link -> m (Either Error Link)) -> Link -> m (Either Error Link) forall a b. (a -> b) -> a -> b <| Link :: CID -> Name -> Integer -> Link Link { $sel:cid:Link :: CID cid = CID cid , $sel:name:Link :: Name name = Name name , $sel:size:Link :: Integer size = Integer size }