module Tart.Format.V0 ( version0Format ) where import qualified Data.Binary as B import qualified Data.Text as T import Tart.Canvas import Tart.Format.Types data TartFileDataV0 = TartFileDataV0 { TartFileDataV0 -> CanvasData tartFileDataV0CanvasData :: CanvasData } version0Format :: TartFileFormat version0Format :: TartFileFormat version0Format = forall a. Get a -> (a -> IO (Either String TartFile)) -> TartFileFormat BinaryFormatVersion forall t. Binary t => Get t B.get TartFileDataV0 -> IO (Either String TartFile) tartFileFromDataV0 instance B.Binary TartFileDataV0 where put :: TartFileDataV0 -> Put put TartFileDataV0 d = forall t. Binary t => t -> Put B.put forall a b. (a -> b) -> a -> b $ TartFileDataV0 -> CanvasData tartFileDataV0CanvasData TartFileDataV0 d get :: Get TartFileDataV0 get = CanvasData -> TartFileDataV0 TartFileDataV0 forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall t. Binary t => Get t B.get tartFileFromDataV0 :: TartFileDataV0 -> IO (Either String TartFile) tartFileFromDataV0 :: TartFileDataV0 -> IO (Either String TartFile) tartFileFromDataV0 TartFileDataV0 d = do Either String Canvas result <- CanvasData -> IO (Either String Canvas) canvasFromData (TartFileDataV0 -> CanvasData tartFileDataV0CanvasData TartFileDataV0 d) case Either String Canvas result of Left String s -> forall (m :: * -> *) a. Monad m => a -> m a return forall a b. (a -> b) -> a -> b $ forall a b. a -> Either a b Left String s Right Canvas c -> forall (m :: * -> *) a. Monad m => a -> m a return forall a b. (a -> b) -> a -> b $ forall a b. b -> Either a b Right forall a b. (a -> b) -> a -> b $ [Canvas] -> [Text] -> [Int] -> TartFile TartFile [Canvas c] [String -> Text T.pack String "default"] [Int 0]