Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::io::{self, stdin, Read};
- use std::fs::File;
- use std::env;
- struct Input<R> {
- reader: R,
- }
- impl<'a, R> Read for Input<R> where R: Read {
- fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
- self.reader.read(buf)
- }
- }
- fn main() {
- let mut buffer = vec![0; 250];
- // Both File and StdinLock implements Read
- let mut reader = match env::args().nth(2) {
- Some(f) => Input{reader: File::open(f).expect("so bad")},
- None => Input{reader: {let stdin = stdin(); stdin.lock()}},
- };
- reader.read(&mut buffer).unwrap();
- println!("{:?}", buffer);
- }
Add Comment
Please, Sign In to add comment