Tricu 2.0.0
Sorry for squashing all of this but 🤷
This commit is contained in:
23
src/Wire.hs
23
src/Wire.hs
@@ -16,11 +16,10 @@ module Wire
|
||||
, decodeBundle
|
||||
, verifyBundle
|
||||
, buildBundle
|
||||
, importBundle
|
||||
, reconstructBundleTerms
|
||||
, defaultExportNames
|
||||
) where
|
||||
|
||||
import ContentStore (storeTerm)
|
||||
import Research hiding (Node)
|
||||
|
||||
import Control.Monad (foldM, forM_, unless, when)
|
||||
@@ -41,7 +40,6 @@ import Data.Vector (Vector)
|
||||
import qualified Data.Vector as V
|
||||
import qualified Data.Vector.Mutable as MV
|
||||
import Data.Word (Word16, Word32, Word64, Word8)
|
||||
import Database.SQLite.Simple (Connection)
|
||||
import GHC.Generics (Generic)
|
||||
|
||||
import qualified Data.ByteString as BS
|
||||
@@ -774,11 +772,11 @@ verifyManifestConstraints manifest = do
|
||||
Left "manifest export has empty name"
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- Import into content store
|
||||
-- Bundle reconstruction
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
reconstructTerms :: Seq BundleNode -> Vector T
|
||||
reconstructTerms nodes = V.create $ do
|
||||
reconstructBundleTerms :: Seq BundleNode -> Vector T
|
||||
reconstructBundleTerms nodes = V.create $ do
|
||||
let n = Seq.length nodes
|
||||
vec <- MV.new n
|
||||
forM_ (zip [0 :: Int ..] (Foldable.toList nodes)) $ \(i, node) -> do
|
||||
@@ -792,19 +790,6 @@ reconstructTerms nodes = V.create $ do
|
||||
MV.write vec i t
|
||||
return vec
|
||||
|
||||
importBundle :: Connection -> ByteString -> IO [Text]
|
||||
importBundle conn bs = case decodeBundle bs of
|
||||
Left err -> error $ "Wire.importBundle: " ++ err
|
||||
Right bundle -> case verifyBundle bundle of
|
||||
Left err -> error $ "Wire.importBundle verify: " ++ err
|
||||
Right () -> do
|
||||
let terms = reconstructTerms (bundleNodes bundle)
|
||||
forM_ (manifestExports $ bundleManifest bundle) $ \exp -> do
|
||||
let term = terms V.! fromIntegral (exportRoot exp)
|
||||
_ <- storeTerm conn [T.unpack $ exportName exp] term
|
||||
return ()
|
||||
return $ map exportName $ manifestExports $ bundleManifest bundle
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- Primitive binary helpers
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user