Skip to main content

nurtex_codec/types/basic/
option.rs

1use crate::Buffer;
2
3impl<T: Buffer> Buffer for Option<T> {
4  fn read_buf(buffer: &mut std::io::Cursor<&[u8]>) -> Option<Self> {
5    if bool::read_buf(buffer)? { Some(T::read_buf(buffer)) } else { None }
6  }
7
8  fn write_buf(&self, buffer: &mut impl std::io::Write) -> std::io::Result<()> {
9    if let Some(s) = self {
10      true.write_buf(buffer)?;
11      s.write_buf(buffer)
12    } else {
13      false.write_buf(buffer)
14    }
15  }
16}