Implement new parser in parse.rs
This commit is contained in:
parent
8e67af6c2c
commit
34334398d8
1 changed files with 15 additions and 8 deletions
23
src/parse.rs
23
src/parse.rs
|
@ -1,4 +1,4 @@
|
|||
use imf_codec::fragments::header;
|
||||
use imf_codec::multipass;
|
||||
use std::io;
|
||||
use std::io::Read;
|
||||
|
||||
|
@ -9,14 +9,21 @@ fn main() {
|
|||
io::stdin().lock().read_to_end(&mut rawmail).unwrap();
|
||||
|
||||
// Parse it
|
||||
let (email, encoding, malformed) = header::from_bytes(&rawmail);
|
||||
println!("Encoding: {:?}, Malformed: {:?}", encoding, malformed);
|
||||
let segment = multipass::segment::Segment::try_from(&rawmail[..]).unwrap();
|
||||
let charng = multipass::guess_charset::GuessCharset::from(segment);
|
||||
let extr = multipass::extract_fields::ExtractFields::try_from(&charng).unwrap();
|
||||
let lazy = multipass::field_lazy::Parsed::from(extr);
|
||||
let eager = multipass::field_eager::Parsed::from(lazy);
|
||||
let section = multipass::header_section::Parsed::from(eager);
|
||||
//let section: multipass::header_section::Parsed = rawmail.as_ref().into();
|
||||
//let (email, encoding, malformed) = header::from_bytes(&rawmail);
|
||||
//println!("Encoding: {:?}, Malformed: {:?}", encoding, malformed);
|
||||
|
||||
let (input, hdrs) = header::section(&email).unwrap();
|
||||
//let (input, hdrs) = header::section(&email).unwrap();
|
||||
|
||||
// Checks/debug
|
||||
println!("{:?}", hdrs);
|
||||
assert!(hdrs.date.is_some());
|
||||
assert!(hdrs.from.len() > 0);
|
||||
assert!(hdrs.bad_fields.len() == 0);
|
||||
println!("{:?}", section);
|
||||
//assert!(hdrs.date.is_some());
|
||||
//assert!(hdrs.from.len() > 0);
|
||||
//assert!(hdrs.bad_fields.len() == 0);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue