asn1_rs/asn1_types/strings/
visiblestring.rs

1use crate::{asn1_string, TestValidCharset};
2use crate::{Error, Result};
3#[cfg(not(feature = "std"))]
4use alloc::string::String;
5
6asn1_string!(VisibleString);
7
8impl<'a> TestValidCharset for VisibleString<'a> {
9    fn test_valid_charset(i: &[u8]) -> Result<()> {
10        #[allow(clippy::trivially_copy_pass_by_ref)]
11        fn is_visible(b: &u8) -> bool {
12            0x20 <= *b && *b <= 0x7f
13        }
14        if !i.iter().all(is_visible) {
15            return Err(Error::StringInvalidCharset);
16        }
17        Ok(())
18    }
19}