[−][src]Trait bitstream_io::write::HuffmanWrite
A trait for anything that can write Huffman codes of a given endianness to an output stream
Required methods
pub fn write_huffman<T>(
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy, [src]
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy,
Writes Huffman code for the given symbol to the stream.
Errors
Passes along any I/O error from the underlying stream.
Implementors
impl<N, E> HuffmanWrite<E> for BitCounter<N, E> where
E: Endianness,
N: AddAssign + From<u32>, [src]
E: Endianness,
N: AddAssign + From<u32>,
pub fn write_huffman<T>(
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy, [src]
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy,
impl<N, E> HuffmanWrite<E> for BitRecorder<N, E> where
E: Endianness,
N: Copy + From<u32> + AddAssign + Rem<Output = N> + Eq, [src]
E: Endianness,
N: Copy + From<u32> + AddAssign + Rem<Output = N> + Eq,
pub fn write_huffman<T>(
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy, [src]
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy,
impl<W: Write, E: Endianness> HuffmanWrite<E> for BitWriter<W, E>[src]
pub fn write_huffman<T>(
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy, [src]
&mut self,
tree: &WriteHuffmanTree<E, T>,
symbol: T
) -> Result<()> where
T: Ord + Copy,
Example
use std::io::Write; use bitstream_io::{BigEndian, BitWriter, HuffmanWrite}; use bitstream_io::huffman::compile_write_tree; let tree = compile_write_tree( vec![('a', vec![0]), ('b', vec![1, 0]), ('c', vec![1, 1, 0]), ('d', vec![1, 1, 1])]).unwrap(); let mut writer = BitWriter::endian(Vec::new(), BigEndian); writer.write_huffman(&tree, 'b').unwrap(); writer.write_huffman(&tree, 'c').unwrap(); writer.write_huffman(&tree, 'd').unwrap(); assert_eq!(writer.into_writer(), [0b10110111]);