1 //! # Functions and types used by generated protobuf code 2 //! 3 //! These are not considered to be public API of rust-protobuf, 4 //! so they can be changed any time (provided compatibility with 5 //! previously generated code is preserved). 6 7 pub(crate) mod map; 8 mod message; 9 pub(crate) mod packed; 10 pub(crate) mod repeated; 11 pub(crate) mod singular; 12 pub(crate) mod unknown_or_group; 13 14 pub use message::read_singular_message_into_field; 15 pub use message::write_message_field_with_cached_size; 16 pub use packed::vec_packed_bool_size; 17 pub use packed::vec_packed_double_size; 18 pub use packed::vec_packed_enum_or_unknown_size; 19 pub use packed::vec_packed_fixed32_size; 20 pub use packed::vec_packed_fixed64_size; 21 pub use packed::vec_packed_float_size; 22 pub use packed::vec_packed_int32_size; 23 pub use packed::vec_packed_int64_size; 24 pub use packed::vec_packed_sfixed32_size; 25 pub use packed::vec_packed_sfixed64_size; 26 pub use packed::vec_packed_sint32_size; 27 pub use packed::vec_packed_sint64_size; 28 pub use packed::vec_packed_uint32_size; 29 pub use packed::vec_packed_uint64_size; 30 pub use repeated::read_repeated_packed_enum_or_unknown_into; 31 pub use singular::bytes_size; 32 pub use singular::int32_size; 33 pub use singular::int64_size; 34 pub use singular::sint32_size; 35 pub use singular::sint64_size; 36 pub use singular::string_size; 37 pub use singular::uint32_size; 38 pub use singular::uint64_size; 39 pub use unknown_or_group::read_unknown_or_skip_group; 40 pub use unknown_or_group::skip_field_for_tag; 41 pub use unknown_or_group::unknown_fields_size; 42 43 pub use crate::cached_size::CachedSize; 44 pub use crate::lazy::Lazy; 45 use crate::varint::encode::encoded_varint64_len; 46 pub use crate::wire_format::WireType; 47 48 /// Given `u64` value compute varint encoded length. compute_raw_varint64_size(value: u64) -> u6449pub fn compute_raw_varint64_size(value: u64) -> u64 { 50 encoded_varint64_len(value) as u64 51 } 52 53 /// Given `u32` value compute varint encoded length. compute_raw_varint32_size(value: u32) -> u6454pub(crate) fn compute_raw_varint32_size(value: u32) -> u64 { 55 compute_raw_varint64_size(value as u64) 56 } 57 58 /// Compute tag size. Size of tag does not depend on wire type. 59 #[inline] tag_size(field_number: u32) -> u6460pub fn tag_size(field_number: u32) -> u64 { 61 encoded_varint64_len((field_number as u64) << 3) as u64 62 } 63