blob: d9409f78c58cf96e6aa66f83148eb02e58805e8d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
module MandelHSlib where
import qualified Data.Serialize as Ser
import qualified Data.Vector.Storable as VS
data Fractal a = Fractal (Int, Int) Int (VS.Vector a)
instance (VS.Storable a, Ser.Serialize a) => Ser.Serialize (Fractal a) where
put (Fractal size maxiter v) = do
Ser.put size
Ser.put maxiter
Ser.putWord64be (fromIntegral (VS.length v))
VS.mapM_ Ser.put v
get = do
size <- Ser.get
maxiter <- Ser.get
len <- fromIntegral <$> Ser.getWord64be
v <- VS.replicateM len Ser.get
return (Fractal size maxiter v)
|