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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
//! //! cookies-rs Provide a macro to load your `Cookies.txt` into a `CookieJar`. //! //! # Usage //! //! Add dependencies to `Cargo.toml` //! ```ignore //! cookies-rs = "*" //! ``` //! //! And load Cookies from file: //! //! ```rust //! use cookies_rs::load_cookies; //! //! let jar = load_cookies!("/home/cookies.txt").unwrap(); //! for cookie in jar.iter() { //! println!("{:?}", cookie); //! } //! ``` //! mod parser; use std::io; use std::path::Path; use std::convert::AsRef; use cookie::CookieJar; use parser::Parser; use std::fs::File; #[doc(hidden)] pub fn read_from_file<P: AsRef<Path>>(p: P) -> io::Result<CookieJar> { let f = File::open(p.as_ref())?; let mut parser = Parser::new(f); parser.parse(); Ok(parser.cookie_jar()) } /// # Load Cookies.txt into CookieJar /// /// ```rust /// use cookies_rs::load_cookies; /// /// let jar = load_cookies!("/home/cookies.txt").unwrap(); /// for cookie in jar.iter() { /// println!("{:?}", cookie); /// } /// ``` #[macro_export] macro_rules! load_cookies { ($file:expr) => {{ $crate::read_from_file($file) }}; } #[cfg(test)] mod tests { // #[test] // fn test_macro() { // let jar = load_cookies!("/home/cookies.txt").unwrap(); // for cookie in jar.iter() { // println!("{:?}", cookie); // } // } }