diff --git a/src/Simplex/Messaging/Compression.hs b/src/Simplex/Messaging/Compression.hs index 20000ded3..634542500 100644 --- a/src/Simplex/Messaging/Compression.hs +++ b/src/Simplex/Messaging/Compression.hs @@ -7,6 +7,7 @@ module Simplex.Messaging.Compression compressionLevel, compress1, decompress1, + decompressedSize, ) where import qualified Codec.Compression.Zstd as Z1 @@ -42,6 +43,11 @@ compress1 bs | B.length bs <= maxLengthPassthrough = Passthrough bs | otherwise = Compressed . Large $ Z1.compress compressionLevel bs +decompressedSize :: Compressed -> Maybe Int +decompressedSize = \case + Passthrough bs -> Just $ B.length bs + Compressed (Large bs) -> Z1.decompressedSize bs + decompress1 :: Int -> Compressed -> Either String ByteString decompress1 limit = \case Passthrough bs -> Right bs