use crate::wire_format::WireType;
use crate::CodedInputStream;
use crate::CodedOutputStream;
use crate::Message;
use crate::MessageField;
pub fn read_singular_message_into_field<M>(
is: &mut CodedInputStream,
target: &mut MessageField<M>,
) -> crate::Result<()>
where
M: Message,
{
let mut m = M::new();
is.merge_message(&mut m)?;
*target = MessageField::some(m);
Ok(())
}
pub fn write_message_field_with_cached_size<M>(
field_number: u32,
message: &M,
os: &mut CodedOutputStream,
) -> crate::Result<()>
where
M: Message,
{
os.write_tag(field_number, WireType::LengthDelimited)?;
os.write_raw_varint32(message.cached_size())?;
message.write_to_with_cached_sizes(os)
}