x509_client/provided/
debug.rs1use crate::api::X509Iterator;
2use bytes::Bytes;
3use std::convert::Infallible;
4use std::vec;
5
6#[derive(Clone, Debug)]
7pub struct DebugX509Iterator(Option<Bytes>);
8
9impl IntoIterator for DebugX509Iterator {
10 type Item = Bytes;
11 type IntoIter = vec::IntoIter<Self::Item>;
12
13 fn into_iter(self) -> Self::IntoIter {
14 self.0
15 .map_or_else(std::vec::Vec::new, |b| vec![b])
16 .into_iter()
17 }
18}
19
20impl FromIterator<<Self as IntoIterator>::Item> for DebugX509Iterator {
21 fn from_iter<T: IntoIterator<Item = <Self as IntoIterator>::Item>>(iter: T) -> Self {
22 Self(iter.into_iter().next())
23 }
24}
25
26impl X509Iterator for DebugX509Iterator {
27 type X509IteratorError = Infallible;
28
29 fn from_cer<T: AsRef<[u8]>>(src: T) -> Result<Self, Self::X509IteratorError> {
30 Ok(Self(Some(Bytes::copy_from_slice(src.as_ref()))))
31 }
32
33 fn from_pem<T: AsRef<[u8]>>(src: T) -> Result<Self, Self::X509IteratorError> {
34 Ok(Self(Some(Bytes::copy_from_slice(src.as_ref()))))
35 }
36
37 fn from_pkcs7<T: AsRef<[u8]>>(src: T) -> Result<Self, Self::X509IteratorError> {
38 Ok(Self(Some(Bytes::copy_from_slice(src.as_ref()))))
39 }
40}