1 use crate::wire_format::WireType;
2 use crate::CodedInputStream;
3 use crate::CodedOutputStream;
4 use crate::Message;
5 use crate::MessageField;
6 
7 /// Read singular `message` field.
read_singular_message_into_field<M>( is: &mut CodedInputStream, target: &mut MessageField<M>, ) -> crate::Result<()> where M: Message,8 pub fn read_singular_message_into_field<M>(
9     is: &mut CodedInputStream,
10     target: &mut MessageField<M>,
11 ) -> crate::Result<()>
12 where
13     M: Message,
14 {
15     let mut m = M::new();
16     is.merge_message(&mut m)?;
17     *target = MessageField::some(m);
18     Ok(())
19 }
20 
21 /// Write message with field number and length to the stream.
write_message_field_with_cached_size<M>( field_number: u32, message: &M, os: &mut CodedOutputStream, ) -> crate::Result<()> where M: Message,22 pub fn write_message_field_with_cached_size<M>(
23     field_number: u32,
24     message: &M,
25     os: &mut CodedOutputStream,
26 ) -> crate::Result<()>
27 where
28     M: Message,
29 {
30     os.write_tag(field_number, WireType::LengthDelimited)?;
31     os.write_raw_varint32(message.cached_size())?;
32     message.write_to_with_cached_sizes(os)
33 }
34