
You might also find the keystore[0] package useful as it makes use of this
technique
in several places. See, for example the definition of Pattern in the
`Data.Keystore.Types.Schema`[1] and `Data.Keystore.Types`[2].
(Btw, the keystone docs are not building on Hackage for the latest
version; they build
on our private Hackage server and they did for earlier versions of
Hackage[3];
I will try to fix them tonight.)
Chris
[0] http://hackage.haskell.org/package/keystore
[1]
https://github.com/cdornan/keystore/blob/master/src/Data/KeyStore/Types/Sch
ema.hs#L179
[2]
https://github.com/cdornan/keystore/blob/master/src/Data/KeyStore/Types.hs#
L68
[3] http://hackage.haskell.org/package/keystore-0.5.0.4
On 09/09/2014 16:16, "Adam Gundry"
Hi Karsten,
This isn't very well documented, but there is a (hidden) feature of api-tools that should do what you want. If you say something like
mt :: MyTime = basic string with inj_MyTime, prj_MyTime
then you can define your own type MyTime and give conversion functions inj_MyTime and prj_MyTime to convert back and forth from a newtype-wrapped Text. (In fact, you could probably use UTCTime as MyTime...). More precisely, api-tools will generate something like
newtype REP__MyTime = REP__MyTime Text
and you will need to implement
inj_MyTime :: REP__MyTime -> ParserWithErrs MyTime prj_MyTime :: MyTime -> REP__MyTime
I hope this helps, and further questions or documentation contributions are very welcome!
Cheers,
Adam
On 09/09/14 14:02, Karsten Gebbert wrote:
Hi All,
I have a question concerning the api-tools package.
Its not clear from the tests, sources or the tutorial how I can use other date/time formats that the default `utc` type can handle. I'm trying to wrap a JSON API that is not under my control, so I have to adhere to whatever I get back from it. Could anybody with experience with the package point me to some example, relevant bits in the sources or a tip how to do it?
I'm planning to create some more documentation around the package to contribute back once I figured out a few more details, because I think its quite a useful abstraction when dealing with (foreign) APIs IMO.
Thanks already for any hints,
karsten
-- Adam Gundry, Haskell Consultant Well-Typed LLP, http://www.well-typed.com/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe