bitis 0.10.5

Bitwise serialization of messages defined in a data description language with interfaces for rust, python and c++.
Documentation
Versions:
- base ist 0
- version 1 immer leer
- version N -> last changed version


---

* OneOf
* Arrays: Fixed, dynamic
* optional: may not be set
* nested mesages
* inheritance/hierarchical
* enums (variable, extendable size)
* types:
  bool = uint_1
  uint_var
  uint_X
  int_var
  int_X
  float
  double
  fixed_point
  string, binary

4+1+1

--> serialized as bitstream with known format
  --> no deserialization hints beside sizes
  --> only foreward compability
    - no default values (all values have to explicitly send)
    - Minimal sze of all messages is known a priori

- dynamic sizes: varint with variable size (x+1, x>2)
  - used with: dynamic arrays, nested messages,
  - used for: enum value, uint_var

- enums are a varints or fixed

- ints are always an uint plus a bool negative

- fixed points have a bit length and a min and max value

- oneof: enum (dynamic or fixed) followed by nested message

- nested messages: varint or fixed for size followed by message bits

- everything can be repeated -> repeated number before the thing (varuint or fixeduint)

- Format description:
  * per data entry
    * modifier repeated: dynamic, fixed, not_repeated
      * if dynamic: number of bits in varchar (+1 for overflow flag)
      * if fixed: number of repeated elements
    * flag for optional
    * type flag: attribute / message
    * for attribute: number of bits