learning rust by implementing image decoders