2017-11-08 3 views
0

io::Writeライターに(非ASCII)バイトを書き込む必要がある汎用関数があります。1バイトのみを書き込むための便利なメソッド

io::Writeの特性によって提供される1バイトを確実に書き込む最短の方法は、AFAIK writer.write_all(&[0])?です。これは、少し長く、構文的には多くの場所で書くのに騒々しいです。

Rustのstdlibには、書き換える方法が簡潔なマクロまたは拡張機能がありますか?

+3

bytewiseを書く必要がありますか?ほとんどのファイルやネットワーク状況下では、それは非常に遅くなるでしょうか?しかし、あなたが必要とする有効な状況があります。これはそれらの1つですか? – Kroltan

+2

'writer.write_all(&[0])'は、その冗長(またはすべて冗長)を私に見せません。あなたが本当にそれがあまりにも冗長だと思うなら、それを行うユーティリティ関数を作成することができます。 – user4815162342

答えて

4

Rustのstdlibには、書き方が簡潔な便利なメソッドを持つマクロまたは拡張機能がありますか?

これはわかりません。しかし、ほとんど普遍的なbyteorderクレートはwrite_u8を提供します。マシンのバイトオーダーの影響を受けませんが、完全性のために含まれています。

use byteorder::WriteBytesExt; 

writer.write_u8(0)?; 

あなたは、多くの場合、このメソッドを使用する場合は、そのようなBufWriterなどの緩衝作家を中心にライターをラップするのは良い考えかもしれません。

関連する問題