1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use crate::traits::*;
/// Skips serialization if `None`, serializes as `T` otherwise
impl<T> TlWrite for Option<T>
where
T: TlWrite,
{
const TL_WRITE_BOXED: bool = false;
#[inline(always)]
fn max_size_hint(&self) -> usize {
if let Some(item) = self {
item.max_size_hint()
} else {
0
}
}
#[inline(always)]
fn write_to<P>(&self, packet: &mut P)
where
P: TlPacket,
{
if let Some(item) = self {
item.write_to(packet)
}
}
}