| Haskell Thrift Bindings |
| |
| Running: you need -fglasgow-exts. |
| |
| Enums: become haskell data types. Use fromEnum to get out the int value. |
| |
| Structs: become records. Field labels are ugly, of the form f_STRUCTNAME_FIELDNAME. All fields are Maybe types. |
| |
| Exceptions: identical to structs. Throw them with throwDyn. Catch them with catchDyn. |
| |
| Client: just a bunch of functions. You may have to import a bunch of client files to deal with inheritance. |
| |
| Interface: You should only have to import the last one in the chain of inheritors. To make an interface, declare a label: |
| data MyIface = MyIface |
| and then declare it an instance of each iface class, starting with the superest class and proceding down (all the while defining the methods). |
| Then pass your label to process as the handler. |
| |
| Processor: Just a function that takes a handler label, protocols. It calls the superclasses process if there is a superclass. |
| |