Crate iso8583_parser
source ·Expand description
String Manipulation Module
This module provides utilities for string manipulation.
Examples
use iso8583_parser::string_manipulation::StringManipulation;
let mut s = String::from("48656C6C6F2C576F726C64"); // "Hello, World" in hex
// Convert hex to ASCII
let ascii_result = s.hex_to_ascii();
assert_eq!(ascii_result.unwrap(), "Hello,World");
// Get a slice of the string until a specified length
let slice = s.get_slice_until(5);
assert_eq!(slice, "48656");
// Get another slice of the string until a specified length
let slice = s.get_slice_until(5);
assert_eq!(slice, "C6C6F");
// Process a field based on field number, length, and name
s.process_field(1, 12, "test");
use iso8583_parser::string_manipulation::positions_of_set_bits;
let bitmap: Vec<u32> = positions_of_set_bits(u64::from_str_radix("3038058020C19201", 16).unwrap());
assert_eq!(bitmap, vec![3, 4, 11, 12, 13, 22, 24, 25, 35, 41, 42, 48, 49, 52, 55, 64]);
let mut s = String::from("1101303830303539313535301002322E362E31352E3332020330022231021532"); // LTV format in hex
// Parse LTV (Length, Tag, Value) format
let ltvs = s.parse_ltv().unwrap();
for ltv in ltvs {
println!("{}", ltv);
}Re-exports
pub use self::string_manipulation::StringManipulation;pub use self::string_manipulation::LTV;pub use self::string_manipulation::positions_of_set_bits;