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}