($st:ident, $len: expr, {$($field:ident),*}) => {
impl Writeable for $st {
fn write<W: Writer>(&self, w: &mut W) -> Result<(), ::std::io::Error> {
- w.size_hint($len);
+ if $len != 0 {
+ w.size_hint($len);
+ }
$( self.$field.write(w)?; )*
Ok(())
}
}
- impl<R: Read> Readable<R> for $st {
+ impl<R: ::std::io::Read> Readable<R> for $st {
fn read(r: &mut R) -> Result<Self, DecodeError> {
Ok(Self {
$($field: Readable::read(r)?),*
}
}
- impl<R: Read> Readable<R> for $st {
+ impl<R: ::std::io::Read> Readable<R> for $st {
fn read(r: &mut R) -> Result<Self, DecodeError> {
Ok(Self {
$($field: Readable::read(r)?),*