| 678 | } |
| 679 | |
| 680 | fn pack_pascal(vm: &VirtualMachine, arg: PyObjectRef, buf: &mut [u8]) -> PyResult<()> { |
| 681 | if buf.is_empty() { |
| 682 | return Ok(()); |
| 683 | } |
| 684 | let b = ArgBytesLike::try_from_object(vm, arg)?; |
| 685 | b.with_ref(|data| { |
| 686 | let string_length = core::cmp::min(core::cmp::min(data.len(), 255), buf.len() - 1); |
| 687 | buf[0] = string_length as u8; |
| 688 | write_string(&mut buf[1..], data); |
| 689 | }); |
| 690 | Ok(()) |
| 691 | } |
| 692 | |
| 693 | fn write_string(buf: &mut [u8], data: &[u8]) { |
| 694 | let len_from_data = core::cmp::min(data.len(), buf.len()); |