Files
rayhunter/telcom-parser/src/lib.rs
2025-04-14 11:49:24 -07:00

19 lines
541 B
Rust

use asn1_codecs::{uper::UperCodec, PerCodecData, PerCodecError};
use thiserror::Error;
#[allow(warnings, unused, unreachable_patterns, non_camel_case_types)]
pub mod lte_rrc;
#[derive(Error, Debug)]
pub enum ParsingError {
#[error("Failed to decode UPER data: {0}")]
UperDecodeError(PerCodecError),
}
pub fn decode<T>(data: &[u8]) -> Result<T, ParsingError>
where
T: UperCodec<Output = T>,
{
let mut asn_data = PerCodecData::from_slice_uper(data);
T::uper_decode(&mut asn_data).map_err(ParsingError::UperDecodeError)
}