use super::{Reader, Writer};
use crate::error::Result;
pub fn read_mpint<'a>(r: &mut Reader<'a>) -> Result<&'a [u8]> {
r.read_string()
}
#[cfg(feature = "alloc")]
pub fn write_mpint(w: &mut Writer, magnitude: &[u8]) {
let mut start = 0usize;
while start < magnitude.len() && magnitude[start] == 0 {
start += 1;
}
let m = &magnitude[start..];
if m.is_empty() {
w.write_u32(0);
return;
}
if m[0] & 0x80 != 0 {
w.write_u32((m.len() + 1) as u32);
w.write_u8(0);
w.write_raw(m);
} else {
w.write_u32(m.len() as u32);
w.write_raw(m);
}
}