use self::PacketType::{ Command, Answer, Error };
use crypto;
+#[deriving(Show, Copy)]
pub enum Variant {
Weak, // The MAC is computed on data without padding.
Fixed // The MAC is computed on data and padding.
// A macro to return a 'Err(ReadingError::IO(..))' in case of error.
macro_rules! try_read_io(
($e:expr) => (match $e { Ok(e) => e, Err(e) => return Err(ReadingError::IO(e)) })
-)
+);
// There are all the errors that may occur when encrypting, authenticating and writing a packet.
#[deriving(Show)]
// A macro to return a 'Err(WritingError::IO(..))' in case of error.
macro_rules! try_write_io(
($e:expr) => (match $e { Ok(e) => e, Err(e) => return Err(WritingError::IO(e)) })
-)
+);
pub type ReadingResult = Result<Packet, ReadingError>;
pub type WritingResult = Result<(), WritingError>;
match self {
&Command(ref data) => write!(formatter, "Command {{ {} }}", data_to_str(data)),
&Answer(ref data) => write!(formatter, "Answer {{ {} }}", data_to_str(data)),
- &Error(error_type) => write!(formatter, "Error {{ errorType: {} }}", error_type)
+ &Error(ref error_type) => write!(formatter, "Error {{ errorType: {} }}", error_type)
}
}
}