use super::put_len_u32;
use crate::serial::wire::encode::WireEncodeErr;
use crate::serial::wire::MAX_STRING_LEN;
#[inline]
#[must_use]
pub fn put_string(out: &mut Vec<u8>, value: &str) -> Result<(), WireEncodeErr> {
if value.len() > MAX_STRING_LEN {
return Err(WireEncodeErr::fmt_usize2(
"Fix: string length ",
value.len(),
" exceeds IR wire-format limit ",
MAX_STRING_LEN,
"; shorten names/op ids before serialization.",
));
}
put_len_u32(out, value.len(), "string length")?;
out.extend_from_slice(value.as_bytes());
Ok(())
}