Kind2/base/Bits/zeros.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

6 lines
94 B
Plaintext

Bits.zeros(n: Nat): Bits
case n {
zero: Bits.e
succ: Bits.o(Bits.zeros(n.pred))
}