gsm_map 1.0.0

GSM MAP (Mobile Application Part) operations per 3GPP TS 29.002 — SMS (MO/MT-ForwardSM, SRI-for-SM), mobility, authentication, USSD, supplementary services — as BER-codable ASN.1 types, with optional Rust-backed Python bindings
Documentation
/// Errors that can occur during GSM MAP message processing.
#[derive(Debug, thiserror::Error)]
pub enum MapError {
    #[error("BER decode error: {0}")]
    DecodeError(String),

    #[error("BER encode error: {0}")]
    EncodeError(String),

    #[error("TCAP error: {0}")]
    TcapError(#[from] tcap::TcapError),

    #[error("invalid operation code: {0}")]
    InvalidOperationCode(i64),

    #[error("missing field: {0}")]
    MissingField(String),
}

impl From<rasn::error::DecodeError> for MapError {
    fn from(e: rasn::error::DecodeError) -> Self {
        Self::DecodeError(format!("{e}"))
    }
}

impl From<rasn::error::EncodeError> for MapError {
    fn from(e: rasn::error::EncodeError) -> Self {
        Self::EncodeError(format!("{e}"))
    }
}