asnfuzzgen_codecs/per/uper/decode/
decode_charstrings.rs

1//! Functionality for decoding character strings
2
3use crate::per::common::decode::decode_string_common;
4use crate::{PerCodecData, PerCodecError};
5
6// 27.5.3 and 27.5.4
7/// Decode a VisibleString CharacterString Type.
8pub fn decode_visible_string(
9    data: &mut PerCodecData,
10    lb: Option<i128>,
11    ub: Option<i128>,
12    is_extensible: bool,
13) -> Result<String, PerCodecError> {
14    decode_string_common(data, lb, ub, is_extensible, 7, false)
15}
16
17/// Decode a PrintableString CharacterString Type.
18pub fn decode_printable_string(
19    data: &mut PerCodecData,
20    lb: Option<i128>,
21    ub: Option<i128>,
22    is_extensible: bool,
23) -> Result<String, PerCodecError> {
24    decode_string_common(data, lb, ub, is_extensible, 7, false)
25}
26
27// UTF-8 String is always - indefinite length case as it's not a fixed character width string. It's
28// almost like decoding an octet string.
29// 27.6
30/// Decode a UTF8String CharacterString Type.
31pub fn decode_utf8_string(
32    data: &mut PerCodecData,
33    lb: Option<i128>,
34    ub: Option<i128>,
35    is_extensible: bool,
36) -> Result<String, PerCodecError> {
37    decode_string_common(data, lb, ub, is_extensible, 8, false)
38}