diff options
-rw-r--r-- | src/bin/1.rs | 36 | ||||
-rw-r--r-- | src/lib.rs | 12 | ||||
-rw-r--r-- | src/main.rs | 3 | ||||
-rw-r--r-- | tests/lib.rs | 8 |
4 files changed, 20 insertions, 39 deletions
diff --git a/src/bin/1.rs b/src/bin/1.rs deleted file mode 100644 index f8c1408..0000000 --- a/src/bin/1.rs +++ /dev/null @@ -1,36 +0,0 @@ -extern crate "rustc-serialize" as serialize; - -#[cfg(not(test))] use std::io::prelude::*; - -use serialize::base64::{ToBase64,STANDARD}; -use serialize::hex::FromHex; - -fn hex_to_base64 (hex: &str) -> String { - let bytes = match hex.from_hex() { - Ok(b) => b, - Err(e) => panic!("{}", e), - }; - return bytes.to_base64(STANDARD); -} - -#[cfg(not(test))] -fn main () { - loop { - let mut buf = [0; 6]; - let len = match std::io::stdin().read(&mut buf) { - Ok(n) => n, - Err(e) => panic!("{}", e), - }; - if len == 0 { - break; - } - print!("{}", hex_to_base64(std::str::from_utf8(&buf[..len]).unwrap())); - } -} - -#[test] -fn test_base64 () { - let hex = "49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d"; - let base64 = "SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t"; - assert_eq!(hex_to_base64(hex), base64); -} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..0a64486 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,12 @@ +extern crate "rustc-serialize" as serialize; + +use serialize::base64::{ToBase64,STANDARD}; +use serialize::hex::FromHex; + +pub fn hex_to_base64 (hex: &str) -> String { + let bytes = match hex.from_hex() { + Ok(b) => b, + Err(e) => panic!("{}", e), + }; + return bytes.to_base64(STANDARD); +} diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -} diff --git a/tests/lib.rs b/tests/lib.rs new file mode 100644 index 0000000..c2c79cc --- /dev/null +++ b/tests/lib.rs @@ -0,0 +1,8 @@ +extern crate matasano; + +#[test] +fn problem_1 () { + let hex = "49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d"; + let base64 = "SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t"; + assert_eq!(matasano::hex_to_base64(hex), base64); +} |