pgp 0.2.2

OpenPGP implementation in Rust
Documentation
use std::str;

use crate::email::mime;
use crate::email::types::Email;
use crate::errors::Result;

pub fn parse(msg: &[u8]) -> Result<Email<'_>> {
    let (rest, headers) = mime::parse(msg)?;

    Ok(Email {
        header: headers,
        body: str::from_utf8(rest)?.trim(),
    })
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_parse() {
        assert_eq!(
            parse(b"MIME-Version: 1.0\r\nMy Body").unwrap(),
            Email {
                header: vec![("MIME-Version".to_string(), "1.0".to_string())],
                body: "My Body",
            },
        );
        assert_eq!(
            parse(b"MIME-Version: 1.0\r\n\r\nMy Body\r\n").unwrap(),
            Email {
                header: vec![("MIME-Version".to_string(), "1.0".to_string())],
                body: "My Body",
            },
        );
    }
}