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) } ``` |
||
---|---|---|
.. | ||
abs.kind | ||
add.kind | ||
and.kind | ||
bit_length.kind | ||
cmp.kind | ||
deserializer.kind | ||
div.kind | ||
eql.kind | ||
for.kind | ||
gte.kind | ||
gtn.kind | ||
inc.kind | ||
is_neg.kind | ||
length.kind | ||
lte.kind | ||
ltn.kind | ||
mod.kind | ||
mul.kind | ||
neg.kind | ||
or.kind | ||
parser.kind | ||
pow.kind | ||
serializer.kind | ||
shl.kind | ||
show.kind | ||
shr.kind | ||
slice.kind | ||
sqrt.kind | ||
stringifier.kind | ||
sub.kind | ||
to_bits.kind | ||
to_f64.kind | ||
to_int.kind | ||
to_string.kind | ||
xor.kind | ||
zero.kind |