1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
use std::fs::File; use std::io::{prelude::*, BufReader}; pub fn read_file(filename: &str) -> Vec<String> { let file = File::open(filename).expect("no such file"); let buf = BufReader::new(file); buf.lines() .map(|l| l.expect("Could not parse line")) .collect() } #[macro_export] macro_rules! capture { () => {{ use $crate::color::Color; let line = line!() as i64; let file = file!(); let lines = $crate::codeframe_macro::read_file(file); use $crate::capture::capture_codeframe; let codeframe = capture_codeframe(lines, line, Color::Red); codeframe }}; ($color:expr) => {{ let line = line!() as i64; let file = file!(); let lines = $crate::codeframe_macro::read_file(file); use $crate::capture::capture_codeframe; let codeframe = capture_codeframe(lines, line, $color); codeframe }}; }