mirror of
https://github.com/Kindelia/Kind2.git
synced 2024-10-26 16:20:40 +03:00
3b4d444f09
Generic derivers: stringifier, parser, serializer, deserializer. Example: ``` type MyType { foo(n: List<Nat>, s: String, m: MyType) bar } deriving (stringifier, parser, serializer, deserializer) Test: _ IO { let val = MyType.foo([1,2,3], "Hello", MyType.bar) // Converts to string let str = Stringifier.run!(MyType.stringifier, val) IO.print("str: " | str) // Parses string to a value let val = Parser.run!(MyType.parser, str) <> MyType.bar // Serializes to bits let bts = Serializer.run!(MyType.serializer, val) IO.print("bts: " | Bits.show(bts)) // Deserializes to a value let val = Deserializer.run!(MyType.deserializer, bts) <> MyType.bar // Converts to string again let str = Stringifier.run!(MyType.stringifier, val) IO.print("str: " | str) } ```
4 lines
54 B
Plaintext
4 lines
54 B
Plaintext
Stringifier(A: Type): Type
|
|
A -> String -> String
|
|
|