asnfuzzgen_codecs/per/aper/decode/
decode_charstrings.rs

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