pub const VB_CR: &str = "\r";
pub const VB_LF: &str = "\n";
pub const VB_CRLF: &str = "\r\n";
#[cfg(windows)]
pub const VB_NEW_LINE: &str = "\r\n";
#[cfg(not(windows))]
pub const VB_NEW_LINE: &str = "\n";
pub const VB_NULL_CHAR: &str = "\0";
pub const VB_NULL_STRING: &str = "";
pub const VB_TAB: &str = "\t";
pub const VB_BACK: &str = "\x08";
pub const VB_FORM_FEED: &str = "\x0C";
pub const VB_VERTICAL_TAB: &str = "\x0B";
pub const VB_UNICODE: i32 = 64;
pub const VB_FROM_UNICODE: i32 = 128;
pub const VB_OK_ONLY: i32 = 0;
pub const VB_OK_CANCEL: i32 = 1;
pub const VB_ABORT_RETRY_IGNORE: i32 = 2;
pub const VB_YES_NO_CANCEL: i32 = 3;
pub const VB_YES_NO: i32 = 4;
pub const VB_RETRY_CANCEL: i32 = 5;
pub const VB_CRITICAL: i32 = 16;
pub const VB_QUESTION: i32 = 32;
pub const VB_EXCLAMATION: i32 = 48;
pub const VB_INFORMATION: i32 = 64;
pub const VB_DEFAULT_BUTTON_1: i32 = 0;
pub const VB_DEFAULT_BUTTON_2: i32 = 256;
pub const VB_DEFAULT_BUTTON_3: i32 = 512;
pub const VB_DEFAULT_BUTTON_4: i32 = 768;
pub const VB_APPLICATION_MODAL: i32 = 0;
pub const VB_SYSTEM_MODAL: i32 = 4096;
pub const VB_MSG_BOX_HELP_BUTTON: i32 = 16384;
pub const VB_MSG_BOX_SET_FOREGROUND: i32 = 65536;
pub const VB_MSG_BOX_RIGHT: i32 = 524288;
pub const VB_MSG_BOX_RTL_READING: i32 = 1048576;
pub const VB_OK: i32 = 1;
pub const VB_CANCEL: i32 = 2;
pub const VB_ABORT: i32 = 3;
pub const VB_RETRY: i32 = 4;
pub const VB_IGNORE: i32 = 5;
pub const VB_YES: i32 = 6;
pub const VB_NO: i32 = 7;
pub const VB_HIDE: i32 = 0;
pub const VB_NORMAL_FOCUS: i32 = 1;
pub const VB_MINIMIZED_FOCUS: i32 = 2;
pub const VB_MAXIMIZED_FOCUS: i32 = 3;
pub const VB_NORMAL_NO_FOCUS: i32 = 4;
pub const VB_MINIMIZED_NO_FOCUS: i32 = 6;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn cr_is_single_carriage_return() {
assert_eq!(VB_CR, "\r");
assert_eq!(VB_CR.len(), 1);
}
#[test]
fn lf_is_single_line_feed() {
assert_eq!(VB_LF, "\n");
assert_eq!(VB_LF.len(), 1);
}
#[test]
fn crlf_is_cr_followed_by_lf() {
assert_eq!(VB_CRLF, "\r\n");
assert_eq!(VB_CRLF.len(), 2);
}
#[test]
fn new_line_matches_platform() {
#[cfg(windows)]
assert_eq!(VB_NEW_LINE, "\r\n");
#[cfg(not(windows))]
assert_eq!(VB_NEW_LINE, "\n");
}
#[test]
fn null_char_is_zero_byte() {
assert_eq!(VB_NULL_CHAR, "\0");
assert_eq!(VB_NULL_CHAR.len(), 1);
}
#[test]
fn null_string_is_empty() {
assert_eq!(VB_NULL_STRING, "");
}
#[test]
fn tab_is_ascii_9() {
assert_eq!(VB_TAB, "\t");
assert_eq!(VB_TAB.len(), 1);
}
#[test]
fn back_is_ascii_8() {
assert_eq!(VB_BACK, "\x08");
}
#[test]
fn form_feed_is_ascii_12() {
assert_eq!(VB_FORM_FEED, "\x0C");
}
#[test]
fn vertical_tab_is_ascii_11() {
assert_eq!(VB_VERTICAL_TAB, "\x0B");
}
#[test]
fn unicode_constants_are_numeric() {
assert_eq!(VB_UNICODE, 64);
assert_eq!(VB_FROM_UNICODE, 128);
}
#[test]
fn msgbox_style_constants_match_vb6() {
assert_eq!(VB_OK_ONLY, 0);
assert_eq!(VB_OK_CANCEL, 1);
assert_eq!(VB_ABORT_RETRY_IGNORE, 2);
assert_eq!(VB_YES_NO_CANCEL, 3);
assert_eq!(VB_YES_NO, 4);
assert_eq!(VB_RETRY_CANCEL, 5);
assert_eq!(VB_CRITICAL, 16);
assert_eq!(VB_QUESTION, 32);
assert_eq!(VB_EXCLAMATION, 48);
assert_eq!(VB_INFORMATION, 64);
assert_eq!(VB_DEFAULT_BUTTON_2, 256);
assert_eq!(VB_DEFAULT_BUTTON_3, 512);
assert_eq!(VB_DEFAULT_BUTTON_4, 768);
assert_eq!(VB_SYSTEM_MODAL, 4096);
assert_eq!(VB_MSG_BOX_HELP_BUTTON, 16384);
assert_eq!(VB_MSG_BOX_SET_FOREGROUND, 65536);
assert_eq!(VB_MSG_BOX_RIGHT, 524288);
assert_eq!(VB_MSG_BOX_RTL_READING, 1048576);
}
#[test]
fn msgbox_result_constants_match_vb6() {
assert_eq!(VB_OK, 1);
assert_eq!(VB_CANCEL, 2);
assert_eq!(VB_ABORT, 3);
assert_eq!(VB_RETRY, 4);
assert_eq!(VB_IGNORE, 5);
assert_eq!(VB_YES, 6);
assert_eq!(VB_NO, 7);
}
}