forked from bonsai/harakit
		
	hru(1): read stdin until EOF
This commit is contained in:
		
							parent
							
								
									1ee668aed6
								
							
						
					
					
						commit
						d0205b71da
					
				
							
								
								
									
										53
									
								
								src/hru.rs
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								src/hru.rs
									
									
									
									
									
								
							| @ -52,35 +52,40 @@ fn convert(input: u64) -> (f64, u32) { | |||||||
| fn main() -> ExitCode { | fn main() -> ExitCode { | ||||||
| 	let argv = args().collect::<Vec<String>>(); | 	let argv = args().collect::<Vec<String>>(); | ||||||
| 	let mut buf = String::new(); | 	let mut buf = String::new(); | ||||||
| 	let _ = stdin().read_line(&mut buf); | 	while let Ok(_) = stdin().read_line(&mut buf) { | ||||||
|  | 		if buf.is_empty() { return ExitCode::SUCCESS; } | ||||||
| 
 | 
 | ||||||
| 	let n: u64 = match buf.trim().parse() { | 		let n: u64 = match buf.trim().parse() { | ||||||
| 		Ok(f) => f, | 			Ok(f) => { | ||||||
| 		Err(err) => { | 				buf.clear(); | ||||||
| 			eprintln!("{}: {}", argv[0], err); | 				f | ||||||
| 			return ExitCode::from(EX_DATAERR as u8); | 			}, | ||||||
| 		}, | 			Err(err) => { | ||||||
| 	}; | 				eprintln!("{}: {}", argv[0], err); | ||||||
|  | 				return ExitCode::from(EX_DATAERR as u8); | ||||||
|  | 			}, | ||||||
|  | 		}; | ||||||
| 
 | 
 | ||||||
| 	let (number, prefix) = convert(n); | 		let (number, prefix) = convert(n); | ||||||
| 
 | 
 | ||||||
| 	let si_prefix = format!("{}B", match prefix { | 		let si_prefix = format!("{}B", match prefix { | ||||||
| 		3 => "K", | 			3 => "K", | ||||||
| 		6 => "M", | 			6 => "M", | ||||||
| 		9 => "G", | 			9 => "G", | ||||||
| 		12 => "T", | 			12 => "T", | ||||||
| 		15 => "P", | 			15 => "P", | ||||||
| 		18 => "E", | 			18 => "E", | ||||||
| 		21 => "Z", | 			21 => "Z", | ||||||
| 		24 => "Y", | 			24 => "Y", | ||||||
| 		27 => "R", | 			27 => "R", | ||||||
| 		30 => "Q", | 			30 => "Q", | ||||||
| 		_ => "", | 			_ => "", | ||||||
| 	}); | 		}); | ||||||
| 
 | 
 | ||||||
| 	let out = ((number * 10.0).round() / 10.0).to_string(); | 		let out = ((number * 10.0).round() / 10.0).to_string(); | ||||||
| 
 | 
 | ||||||
| 	println!("{} {}", out, si_prefix); | 		println!("{} {}", out, si_prefix); | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	ExitCode::SUCCESS | 	ExitCode::SUCCESS | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user