asnfuzzgen-codecs 0.1.3

ASN.1 Codecs for Rust Types representing ASN.1 Types.
Documentation
//! Functionality for decoding character strings

use crate::per::common::decode::decode_string_common;
use crate::{PerCodecData, PerCodecError};

// 27.5.3 and 27.5.4
/// Decode a VisibleString CharacterString Type.
pub fn decode_visible_string(
    data: &mut PerCodecData,
    lb: Option<i128>,
    ub: Option<i128>,
    is_extensible: bool,
) -> Result<String, PerCodecError> {
    decode_string_common(data, lb, ub, is_extensible, 7, false)
}

/// Decode a PrintableString CharacterString Type.
pub fn decode_printable_string(
    data: &mut PerCodecData,
    lb: Option<i128>,
    ub: Option<i128>,
    is_extensible: bool,
) -> Result<String, PerCodecError> {
    decode_string_common(data, lb, ub, is_extensible, 7, false)
}

// UTF-8 String is always - indefinite length case as it's not a fixed character width string. It's
// almost like decoding an octet string.
// 27.6
/// Decode a UTF8String CharacterString Type.
pub fn decode_utf8_string(
    data: &mut PerCodecData,
    lb: Option<i128>,
    ub: Option<i128>,
    is_extensible: bool,
) -> Result<String, PerCodecError> {
    decode_string_common(data, lb, ub, is_extensible, 8, false)
}