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).
67pub(crate) mod map;
8mod message;
9pub(crate) mod packed;
10pub(crate) mod repeated;
11pub(crate) mod singular;
12pub(crate) mod unknown_or_group;
1314pub use message::read_singular_message_into_field;
15pub use message::write_message_field_with_cached_size;
16pub use packed::vec_packed_bool_size;
17pub use packed::vec_packed_double_size;
18pub use packed::vec_packed_enum_or_unknown_size;
19pub use packed::vec_packed_fixed32_size;
20pub use packed::vec_packed_fixed64_size;
21pub use packed::vec_packed_float_size;
22pub use packed::vec_packed_int32_size;
23pub use packed::vec_packed_int64_size;
24pub use packed::vec_packed_sfixed32_size;
25pub use packed::vec_packed_sfixed64_size;
26pub use packed::vec_packed_sint32_size;
27pub use packed::vec_packed_sint64_size;
28pub use packed::vec_packed_uint32_size;
29pub use packed::vec_packed_uint64_size;
30pub use repeated::read_repeated_packed_enum_or_unknown_into;
31pub use singular::bytes_size;
32pub use singular::int32_size;
33pub use singular::int64_size;
34pub use singular::sint32_size;
35pub use singular::sint64_size;
36pub use singular::string_size;
37pub use singular::uint32_size;
38pub use singular::uint64_size;
39pub use unknown_or_group::read_unknown_or_skip_group;
40pub use unknown_or_group::skip_field_for_tag;
41pub use unknown_or_group::unknown_fields_size;
4243pub use crate::cached_size::CachedSize;
44pub use crate::lazy::Lazy;
45use crate::varint::encode::encoded_varint64_len;
46pub use crate::wire_format::WireType;
4748/// Given `u64` value compute varint encoded length.
49pub fn compute_raw_varint64_size(value: u64) -> u64 {
50 encoded_varint64_len(value) as u64
51}
5253/// Given `u32` value compute varint encoded length.
54pub(crate) fn compute_raw_varint32_size(value: u32) -> u64 {
55 compute_raw_varint64_size(value as u64)
56}
5758/// Compute tag size. Size of tag does not depend on wire type.
59#[inline]
60pub fn tag_size(field_number: u32) -> u64 {
61 encoded_varint64_len((field_number as u64) << 3) as u64
62}