// Convert number to hex string.pubfnto_hex(value:i32)->String{letvalue=ifvalue>255{255}elseifvalue<0{0}else{value};format!("{:02X}",value)}// Join all hex strings together from rgb input.pubfnrgb(r:i32,g:i32,b:i32)->String{format!("{}{}{}",to_hex(r),to_hex(g),to_hex(b))}#[cfg(test)]modtests{usesuper::*;#[test]fnit_should_be_black(){assert_eq!(rgb(255,255,255),"FFFFFF".to_string());}#[test]fnit_should_be_black_too(){assert_eq!(rgb(255,255,300),"FFFFFF".to_string());}#[test]fnit_should_be_white(){assert_eq!(rgb(0,0,0),"000000".to_string());}#[test]fnit_should_be_other(){assert_eq!(rgb(148,0,211),"9400D3".to_string());}}
In rust:
Rust Playground
GitHub Gist