ipldm-1.0.0.0: dagcbor/IPLD/DagCBOR/Encoder/Errors.hs
-- | Module : IPLD.DagCBOR.Encoder.Errors
-- Description : Errors for DAG-CBOR encoding
-- Copyright : Zoey McBride (c) 2026
-- License : AGPL-3.0-or-later
-- Maintainer : zoeymcbride@mailbox.org
-- Stability : experimental
module IPLD.DagCBOR.Encoder.Errors (Okay, Error (..), (<<>>)) where
import MultiFormats.CID.Errors qualified as CID
-- | Defines the DAG-CBOR encoder errors.
data Error
= -- | For implementing `Alternative` class.
EmptyAlternative
| -- | When the provided DM.IntKind exceeds 64-bits
OverflowIntKind
| -- | When CID encoding fails.
CIDError CID.Error
deriving (Show, Eq)
-- | Functor for encoder error results.
type Okay t = Either Error t
-- | Concatenates two monoids `m` within the same context `a`.
{-# INLINE (<<>>) #-}
(<<>>) :: (Applicative a, Monoid m) => a m -> a m -> a m
(<<>>) = liftA2 (<>)