Guest User

Untitled

a guest
Nov 23rd, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. use std::io::{self, stdin, Read};
  2. use std::fs::File;
  3. use std::env;
  4.  
  5. struct Input<R> {
  6. reader: R,
  7. }
  8.  
  9. impl<'a, R> Read for Input<R> where R: Read {
  10. fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
  11. self.reader.read(buf)
  12. }
  13. }
  14.  
  15. fn main() {
  16. let mut buffer = vec![0; 250];
  17.  
  18. // Both File and StdinLock implements Read
  19. let mut reader = match env::args().nth(2) {
  20. Some(f) => Input{reader: File::open(f).expect("so bad")},
  21. None => Input{reader: {let stdin = stdin(); stdin.lock()}},
  22. };
  23. reader.read(&mut buffer).unwrap();
  24. println!("{:?}", buffer);
  25. }
Add Comment
Please, Sign In to add comment