1macro_rules! impl_write {
18 ($feature:literal, $($implementation:tt)*) => {
19 #[cfg(feature = $feature)]
20 $($implementation)* {
21 #[inline]
22 fn write(&mut self, input: &[u8]) -> std::io::Result<usize> {
23 self.update(input);
24 Ok(input.len())
25 }
26
27 #[inline]
28 fn flush(&mut self) -> std::io::Result<()> {
29 Ok(())
30 }
31 }
32 };
33}
34
35impl_write!("fnv", impl std::io::Write for crate::fnv::Fnv1a32);
36impl_write!("fnv", impl std::io::Write for crate::fnv::Fnv1a64);
37impl_write!("md5", impl std::io::Write for crate::md5::Md5);
38impl_write!("murmur", impl std::io::Write for crate::murmur::Murmur3X86_32);
39impl_write!("murmur", impl std::io::Write for crate::murmur::Murmur3X86_128);
40impl_write!("murmur", impl std::io::Write for crate::murmur::Murmur3X64_128);
41impl_write!("xxhash", impl std::io::Write for crate::xxhash::Xxh32);
42impl_write!("xxhash", impl std::io::Write for crate::xxhash::Xxh64);
43impl_write!("xxhash", impl<S: AsRef<[u8]>> std::io::Write for crate::xxhash::Xxh3_64<S>);
44impl_write!("xxhash", impl<S: AsRef<[u8]>> std::io::Write for crate::xxhash::Xxh3_128<S>);