Function fix_checksum::validate
[−]
[src]
pub fn validate(
inbound_message: &str
) -> Result<bool, FIXChecksumValidatorError>
This function validates FIX message checksum
Examples
Empty message:
use fix_checksum::FIXChecksumValidatorError::InvalidEmptyMessage; assert_eq!(fix_checksum::validate("").unwrap_err(), InvalidEmptyMessage);
Message without tail:
use fix_checksum::FIXChecksumValidatorError::ChecksumFieldNotFound; let message_parts: Vec<&str> = vec!["8=FIX.4.2", "9=73", "35=0", "49=BRKR", "56=INVMGR", "34=235", "52=19980604-07:58:28", "112=19980604-07:58:28"]; let message: String = message_parts .iter() .fold(String::new(), |msg, msg_part| msg.to_string() + msg_part + "\x01"); assert_eq!(fix_checksum::validate(&message).unwrap_err(), ChecksumFieldNotFound);
Message with incorrect checksum format:
use fix_checksum::FIXChecksumValidatorError::ChecksumFieldInvalidFormat; let message_parts: Vec<&str> = vec!["8=FIX.4.2", "9=73", "35=0", "49=BRKR", "56=INVMGR", "34=235", "52=19980604-07:58:28", "112=19980604-07:58:28", "10=2ZZ"]; let message: String = message_parts .iter() .fold(String::new(), |msg, msg_part| msg.to_string() + msg_part + "\x01"); assert_eq!(fix_checksum::validate(&message).unwrap_err(), ChecksumFieldInvalidFormat("2ZZ".parse::<u32>().unwrap_err()));
Message with incorrect checksum value:
let message_parts: Vec<&str> = vec!["8=FIX.4.2", "9=73", "35=0", "49=BRKR", "56=INVMGR", "34=235", "52=19980604-07:58:28", "112=19980604-07:58:28", "10=231"]; let message: String = message_parts .iter() .fold(String::new(), |msg, msg_part| msg.to_string() + msg_part + "\x01"); assert_eq!(fix_checksum::validate(&message).unwrap(), false);
Valid message:
let message_parts: Vec<&str> = vec!["8=FIX.4.2", "9=73", "35=0", "49=BRKR", "56=INVMGR", "34=235", "52=19980604-07:58:28", "112=19980604-07:58:28", "10=236"]; let message: String = message_parts .iter() .fold(String::new(), |msg, msg_part| msg.to_string() + msg_part + "\x01"); assert_eq!(fix_checksum::validate(&message).unwrap(), true);