mfmts-1.0.0.0: cid/MultiFormats/CID/Internal/CIDCodec.hs
-- | Module : MultiFormats.CID.Internal.CIDCodec
-- Description : Implements extracting codecs from CIDs.
-- Copyright : Zoey McBride (c) 2026
-- License : AGPL-3.0-or-later
-- Maintainer : zoeymcbride@mailbox.org
-- Stability : experimental
module MultiFormats.CID.Internal.CIDCodec (CIDCodec (CIDCodec)) where
import Data.Bifunctor (first)
import MultiFormats.CID.Extractor (Extractor (extractor))
import MultiFormats.MultiCodec (MultiCodec (MultiCodec))
-- | Represents a MultiCodec value embedded within CID data.
newtype CIDCodec = CIDCodec MultiCodec deriving (Eq)
-- | Extracts the MultiCodec from VarInt in bytes and wraps in CIDCodec.
instance Extractor CIDCodec where
extractor bytes = first (CIDCodec . MultiCodec) <$> extractor bytes