{-# OPTIONS_GHC -fno-warn-orphans #-}
module Bio.MMTF.MessagePack where
import Bio.MMTF.Decode
import Bio.MMTF.Decode.MessagePack
import Bio.MMTF.Type
import Data.MessagePack (MessagePack (..))
instance MessagePack MMTF where
toObject :: MMTF -> Object
toObject = MMTF -> Object
forall a. HasCallStack => a
undefined
fromObject :: Object -> m MMTF
fromObject Object
obj = do Map Text Object
mp <- Object -> m (Map Text Object)
forall (m :: * -> *). MonadFail m => Object -> m (Map Text Object)
transformObjectMap Object
obj
FormatData
f <- Map Text Object -> m FormatData
forall (m :: * -> *).
MonadFail m =>
Map Text Object -> m FormatData
formatData Map Text Object
mp
StructureData
s <- Map Text Object -> m StructureData
forall (m :: * -> *).
MonadFail m =>
Map Text Object -> m StructureData
structureData Map Text Object
mp
ModelData
m <- Map Text Object -> m ModelData
forall (m :: * -> *). MonadFail m => Map Text Object -> m ModelData
modelData Map Text Object
mp
ChainData
c <- Map Text Object -> m ChainData
forall (m :: * -> *). MonadFail m => Map Text Object -> m ChainData
chainData Map Text Object
mp
GroupData
g <- Map Text Object -> m GroupData
forall (m :: * -> *). MonadFail m => Map Text Object -> m GroupData
groupData Map Text Object
mp
AtomData
a <- Map Text Object -> m AtomData
forall (m :: * -> *). MonadFail m => Map Text Object -> m AtomData
atomData Map Text Object
mp
MMTF -> m MMTF
forall (f :: * -> *) a. Applicative f => a -> f a
pure (MMTF -> m MMTF) -> MMTF -> m MMTF
forall a b. (a -> b) -> a -> b
$ FormatData
-> StructureData
-> ModelData
-> ChainData
-> GroupData
-> AtomData
-> MMTF
MMTF FormatData
f StructureData
s ModelData
m ChainData
c GroupData
g AtomData
a