Kind2/base/I64/stringifier.kind
MaiaVictor 3b4d444f09 Kind 1.0.63
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)
  }
```
2021-06-12 17:32:04 -03:00

5 lines
90 B
Plaintext

I64.stringifier: Stringifier<I64>
(x, bs)
open x
Word.stringifier<64>(x.value, bs)