5个版本

0.0.5 2021年2月25日
0.0.4 2021年2月23日
0.0.3 2021年2月22日
0.0.2 2021年2月22日
0.0.1 2021年2月22日

#725 in 调试

每月 31次下载

GPL-3.0-or-later

49KB
812

BitFormat

将位为中心的数据结构格式化,以便打印到控制台或包含在日志文件中。

警告 - 非常早期的版本

我创建了这个crate来解决一个特定的问题。它处于一个非常早期的阶段。

将会有BUG

变更日志

  • v0.0.1 - 初始crate版本
  • v0.0.2 - 包含README中的示例,添加变更日志和路线图
  • v0.0.3 - README格式更新
  • v0.0.4 - WebSocket数据帧的自定义样式颜色
  • v0.0.5 - 操作码和有效载荷长度内联

路线图

  • v0.0.6 - WebSocker数据帧中等(16位)和长(64位)数据包长度
  • v0.0.7 - WebSocket数据帧摘要
  • v0.0.8 - 支持qword表中的样式(自定义颜色)
  • v0.0.9 - 支持自定义边框符号
  • v0.1.0 - 支持WORD和DWORD表 (除QWORD外)

特定格式

该库当前识别以下位为中心的格式。

Qword表

用于打印以QWORD(32位)为表格的字节(每行8字节)。

示例

以下是由bitformat::QwordTable生成的输出示例

       +--------+--------+--------+--------+--------+--------+--------+--------+
 Bytes | Byte 0 | Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 |
+------+--------+--------+--------+--------+--------+--------+--------+--------+
|QWORD |10000001|10000011|01011010|00001110|10010001|00110110|00111011|01101100|
|  1   |   (129)|   (131)|    (90)|    (14)|   (145)|    (54)|    (59)|   (108)|
+------+--------+--------+--------+--------+--------+--------+--------+--------+
|QWORD |11110010|
|  2   |   (242)|
+------+--------+

WebSocket数据帧

根据RFC6455规范格式化WebSocket数据帧:https://tools.ietf.org/html/rfc6455#section-5.2

示例

以下是由bitformat::WebSocketFrame生成的输出示例

               +---------------+---------------+---------------+---------------+
  Frame Data   |    Byte  0    |    Byte  1    |    Byte  2    |    Byte  3    |
   (Masked)    +---------------+---------------+---------------+---------------+
   (Short)     |0              |    1          |        2      |            3  |
               |0 1 2 3 4 5 6 7|8 9 0 1 2 3 4 5|6 7 8 9 0 1 2 3|4 5 6 7 8 9 0 1|
       +-------+-+-+-+-+-------+-+-------------+-------------------------------+
       | DWORD |1|0|0|0|0 0 0 1|1|0 0 0 0 0 1 1|0 1 0 1 1 0 1 0|0 0 0 0 1 1 1 0|
       |   1   |F|R|R|R|       |M|             |                               |
       |       |I|S|S|S|op code|A| Payload len |     Masking-key (part 1)      |
       |       |N|V|V|V| (4 b) |S|  (7 bits)   |           (16 bits)           |
       |       | |1|2|3|       |K|             |                               |
       +-------+-+-+-+-+-------+-+-------------+-------------------------------+
       | DWORD |1 0 0 1 0 0 0 1|0 0 1 1 0 1 1 0|0 0 1 1 1 0 1 1|0 1 1 0 1 1 0 0|
       |   2   |                               |  (59)      MASKED  (108)      |
       |       |     Masking-key (part 2)      |0 1 1 0 0 0 0 1|0 1 1 0 0 0 1 0|
       |       |           (16 bits)           |  (97) 'a' UNMASKED  (98) 'b'  |
       |       |                               |     Payload Data (part 1)     |       
       +-------+-------------------------------+-------------------------------+
       | DWORD |1 1 1 1 0 0 1 0|
       |   3   | (242)     MSK |
       |       |0 1 1 0 0 0 1 1|
       |       |  (99) 'c' UNM |
       |       | Payload pt 2  |
       +-------+---------------+

依赖项

~0.3–10MB
~58K SLoC