| Crates.io | kago |
| lib.rs | kago |
| version | 0.5.0 |
| created_at | 2025-03-27 14:12:45.225299+00 |
| updated_at | 2025-04-10 04:34:49.349365+00 |
| description | A crate for custom-width signed and unsigned integers. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1607989 |
| size | 41,655 |
「不確定なことを恐れて動けなくなる。だったら自らコントロールすればいいんだ」(旅人より村人へ)
Kago は、Rust において任意ビット幅の整数型(1〜128ビット)を柔軟に扱うためのクレート。
プリミティブな整数型(例:u8, i32, u128)をラップし、任意のビット幅を持つ符号付き・符号なし整数型を定義で。
たとえば 9 ビットや 17 ビットといった非標準のサイズの整数を、安全かつ明示的に表現・操作することが可能。
このクレートは手続きマクロによって定義を自動生成しており、詳細は kago-macros クレートを参照。
IN)および符号なし(UN)をサポートnum-traits との互換性:PrimInt トレイトを実装しており、汎用的な数値処理に対応内部的には、指定されたビット幅をプリミティブ型にラップして実現しており、上位ビットを使用する設計となっている。
そのため、たとえば 9 ビットの整数型であっても、u16 などより大きなメモリ領域を消費する可能性がある。
ビット単位での高密度な圧縮や最小メモリ使用を重視する用途には適さない。
「Kago(籠)」は、データをちょうどよく包み込む“入れ物”としての性質に由来している。
形式検証、DSL(ドメイン固有言語)の実装、シリアライザ/デシリアライザの構築など、 メモリ効率よりも、ビット幅に意味的な厳密さが求められる場面での利用を想定している。
ougi のトレイトを利用できるように(feature ougi を追加)