read-io

Read IO library https://github.com/zaidan/read-io#readme

Latest on Hackage:0.0.0.1

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

MIT licensed by Firas Zaidan
Maintained by firas@zaidan.de

ReadIO - Read IO library

Hackage

A lightweight library to read and write data types deriving Read and Show.

Usage

Defining your data types

Define your data type deriving Read and Show:

data Foo = Foo 
  { id :: Integer,
    name :: String,
    value :: Double,
    nested :: [(String, Bar)]
  }
  deriving (Read, Show, Eq) 

data Bar = Bar 
  { some :: Char
  }
  deriving (Read, Show, Eq) 

Creating your data files

Create some data files you want to read - e. g. data/a.foo:

Foo {
  id = 0,
  name = "a",
  value = 1.5,
  nested = [
    ("key 1", Bar { some = 'a'}),
    ("key 2", Bar { some = 'A'})
  ]
}

and data/b.foo:

Foo {
  id = 1,
  name = "b",
  value = 3.1234567800009,
  nested = [
  ("key 1", Bar { some = 'b'}),
  ("key 2", Bar { some = 'B'})
  ]
}

Read

Use

foo <- System.IO.Read.readFrom "data/a.foo" :: IO Foo

to deserialize it to IO Foo or

foos <- System.IO.Read.readDirectory "data"` :: IO [Foo]

to deserialize all containing files to IO [Foo].

Show

Use

System.IO.Show.showFile foo "data/out.foo"

to serialize foo of type Foo to data/out.foo.

Credits

License

See LICENSE file.

Used by 1 package:
comments powered byDisqus