[−][src]Function hpack::encoder::encode_integer_into
pub fn encode_integer_into<W: Write>(
value: usize,
prefix_size: u8,
leading_bits: u8,
writer: &mut W
) -> Result<()>
Encode an integer to the representation defined by HPACK, writing it into the provider
io::Write
instance. Also allows the caller to specify the leading bits of the first
octet. Any bits that are already set within the last prefix_size
bits will be cleared
and overwritten by the integer's representation (in other words, only the first
8 - prefix_size
bits from the leading_bits
octet are reflected in the first octet
emitted by the function.
Example
use hpack::encoder::encode_integer_into; { // No bits specified in the 3 most significant bits of the first octet let mut vec = Vec::new(); encode_integer_into(10, 5, 0, &mut vec); assert_eq!(vec, vec![10]); } { // The most significant bit should be set; i.e. the 3 most significant // bits are 100. let mut vec = Vec::new(); encode_integer_into(10, 5, 0x80, &mut vec); assert_eq!(vec, vec![0x8A]); } { // The most leading bits number has a bit set within the last prefix-size // bits -- they are ignored by the function // bits are 100. let mut vec = Vec::new(); encode_integer_into(10, 5, 0x10, &mut vec); assert_eq!(vec, vec![0x0A]); } { let mut vec = Vec::new(); encode_integer_into(1337, 5, 0, &mut vec); assert_eq!(vec, vec![31, 154, 10]); }