(bufman: &BufferManager, cursor: u64)
| 66 | } |
| 67 | |
| 68 | pub fn read_opt_string(bufman: &BufferManager, cursor: u64) -> Result<Option<String>, BufIoError> { |
| 69 | let len = read_len(bufman, cursor)? as usize; |
| 70 | if len == 0 { |
| 71 | return Ok(None); |
| 72 | } |
| 73 | let mut buf = vec![0; len]; |
| 74 | bufman.read_with_cursor(cursor, &mut buf)?; |
| 75 | let str = String::from_utf8(buf) |
| 76 | .map_err(|err| BufIoError::Io(io::Error::new(io::ErrorKind::InvalidData, err)))?; |
| 77 | Ok(Some(str)) |
| 78 | } |
| 79 | |
| 80 | pub trait SimpleSerialize: Sized { |
| 81 | fn serialize(&self, bufman: &BufferManager, cursor: u64) -> Result<u32, BufIoError>; |
no test coverage detected