1
2
3
4
5
6
7
8
9
10
11
12
13
use reqwest::Certificate;
use serde::{de::Error, Deserialize, Deserializer};

pub fn deserialize_pem_string<'de, D>(deserializer: D) -> Result<Certificate, D::Error>
where
    D: Deserializer<'de>,
{
    String::deserialize(deserializer).and_then(|string| {
        Certificate::from_pem(string.as_bytes()).map_err(|err| {
            D::Error::custom(format!("certificate could not be deserialized: {err}"))
        })
    })
}