rpgpie-certificate-store 0.4.0

Certificate store for rpgpie, based on openpgp-cert-d
// SPDX-FileCopyrightText: Heiko Schaefer <heiko@schaefer.name>
// SPDX-License-Identifier: MIT OR Apache-2.0

use email_address_parser::{EmailAddress, ParsingOptions};

/// heuristic to try and extract a valid email address string from a user id string
pub(crate) fn email_for_userid(userid: &str) -> Option<String> {
    if let Some(e) = EmailAddress::parse(userid, Some(ParsingOptions::new(true))) {
        return Some(e.to_string());
    }

    let start = userid.find('<');
    let end = userid.find('>');
    if let (Some(start), Some(end)) = (start, end) {
        if end > start + 1 {
            if let Some(e) =
                EmailAddress::parse(&userid[start + 1..end], Some(ParsingOptions::new(true)))
            {
                return Some(e.to_string());
            }
        }
    }

    None
}