X-Git-Url: http://git.euphorik.ch/?p=crypto_lab1.git;a=blobdiff_plain;f=lab1_rust%2Fsrc%2Fpacket.rs;h=ec63d9e0e1614f355d8fdabb43d6e1b30cf5b80f;hp=7e9c38ccb362b4a51153aebb2e55bed38e7c17a5;hb=a8641e8dd205140af9206e82169ff5ad107c23f8;hpb=9cdc634f2ce4d0e88f4d3af1d6f555a5449da189 diff --git a/lab1_rust/src/packet.rs b/lab1_rust/src/packet.rs index 7e9c38c..ec63d9e 100644 --- a/lab1_rust/src/packet.rs +++ b/lab1_rust/src/packet.rs @@ -6,6 +6,7 @@ use serialize::hex::{ ToHex }; 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. @@ -28,7 +29,7 @@ pub enum ReadingError { // 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)] @@ -40,7 +41,7 @@ pub enum WritingError { // 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; pub type WritingResult = Result<(), WritingError>; @@ -102,7 +103,7 @@ impl fmt::Show for PacketType { 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) } } }