[binllion] レイアウトを複雑に組む
前回の処理でスクロールできるようになりましたがヘッダーもスクロールしてしまいました。 ヘッダーは固定してデータ部分のみスクロールするようにしたいです。 現状は同じParagraphの中にヘッダーとデータの情報が入ってしま…
前回の処理でスクロールできるようになりましたがヘッダーもスクロールしてしまいました。 ヘッダーは固定してデータ部分のみスクロールするようにしたいです。 現状は同じParagraphの中にヘッダーとデータの情報が入ってしま…
カーソルの表示と移動ができるようになったので次はスクロールの機能をつけたいと思います。 スクロールはratatuiのParagraphにあるそのものズバリなscrollメソッドを使って行います。 これらの処理を行うために…
データを編集する上で必要になるカーソルを表示するようにしてみます。 ratatuiの座標は左上が原点になっているのでそこを基点に計算することになります。 ただ移動するだけではなく、エディタとしてはカーソルの位置にある値を…
またもや前回の続きになりますが、structとトレイトを組み合わせで書けるのであればenumでも書けるのではないかと試行錯誤してみました。 バリアントと関数やメソッドを紐づけてConvert::ToHex.get()みた…
前回にて、型の制約で引数の制限をかけていましたが、それだけでは予期せぬ挙動の可能性がありました。 もう少し制約をかけると良さそうです。 トレイト境界という仕組みを使うと機能としての制約をつけ、挙動を想定することができます…
前回にてASCII変換処理はオリジナルの関数to_ascii_9()を使用することで落ち着きました。 次にこの関数を呼び出すことを考えましょう。 16進数に変換するto_hex()と同じ呼び出し方にすれば良いので下記のよ…
続いてバイナリデータをASCIIに変換して表示する処理を作っていきたいと思います。 そんな処理は当然Rustにあるだろうと思っていたのですが、執筆時点でstd::ascii::CharがExperimentalだったり、…
前回のサンプルデータを画面表示用に16進数表記でStringに変換してratatuiのVec<Line>型に変換する関数を追加してみました。 処理は見ていただければわかると思いますが、折り返し処理の確認のため…