Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
// Convert number to hex string.
pub fn to_hex (value: i32) -> String {
let value = if value > 255 { 255 } else if value < 0 { 0 } else { value };
format!("{:02X}", value)
}
// Join all hex strings together from rgb input.
pub fn rgb (r: i32, g: i32, b: i32) -> String {
format!("{}{}{}", to_hex(r), to_hex(g), to_hex(b))
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_should_be_black() {
assert_eq!(rgb(255, 255, 255), "FFFFFF".to_string());
}
#[test]
fn it_should_be_black_too() {
assert_eq!(rgb(255, 255, 300), "FFFFFF".to_string());
}
#[test]
fn it_should_be_white() {
assert_eq!(rgb(0, 0, 0), "000000".to_string());
}
#[test]
fn it_should_be_other() {
assert_eq!(rgb(148, 0, 211), "9400D3".to_string());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment