1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
// Copyright 2015 Ted Mielczarek. See the COPYRIGHT
// file at the top-level directory of this distribution.

//! General-purpose I/O routines.

use std::io;
use std::io::prelude::*;

/// Shorthand for Read + Seek
pub trait Readable: Read + Seek {}
impl<T: Read + Seek> Readable for T {}

/// Format `bytes` to `f` as a hex string.
pub fn write_bytes<T: Write>(f: &mut T, bytes: &[u8]) -> io::Result<()> {
    for b in bytes {
        write!(f, "{:02x}", b)?;
    }
    Ok(())
}